sendmsg系统调用是否validation添加到辅助数据中的IPv6源地址?

sendmsg系统调用是否validation添加到辅助数据中的IPv6源地址?,第1张

概述sendmsg系统调用是否validation添加辅助数据中的IPv6源地址?

在IPv4情况下,我会看到sendmsg的以下行为:

假设10.1.2.3是客户端IP。 10.1.2.10在客户端的其中一个接口上configuration。

在UDP消息中,以下控制信息被添加到分组中:

它只是服务器在回复客户端时使用的源地址或接口地址:

linux C ++:访问networking统计信息

僵尸进程不能被杀死

如何把2个部分放在1段(使用ld脚本)

系统调用号码和系统调用处理程序指针之间的冲突

在Ubuntu中安装八度包

CMSg->CMSg_len = sizeof(struct CMSghdr) + sizeof(sa->sin_addr); CMSg->CMSg_level = IPPROTO_IP; CMSg->CMSg_type = IP_SENDSRCADDR_WITH_ERROR; * (struct in_addr *)CMSG_DATA(CMSg) = sa->sin_addr; CMSg = (struct CMSghdr *)((caddr_t) CMSg + AliGN(CMSg->CMSg_len));

消息发送如下:

sendmsg(fd,send_msg,0);

如果我configuration10.1.2.10作为源IP,一旦它被添加到CMSG,事情工作正常。 服务器回复到10.1.2.10。

但是,如果我在客户端的任何接口上configuration了一些不可达IP地址或IP,sendmsg将失败,并显示以下错误:

sendmsg到10.1.2.3(10.1.2.3).1813失败:无法分配请求的地址

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

但是我没有看到与IPv6相同的行为:

假设2001 :: 1是客户端IP。 2001 :: 2001在客户端的其中一个接口上进行configuration。

IPv6源地址添加到控制消息如下:

CMSg->CMSg_level = IPPROTO_IPV6; CMSg->CMSg_type = IPV6_PKTINFO; CMSg->CMSg_len = CMSG_LEN(sizeof(struct in6_pktinfo)); memcpy((struct in6_addr *)CMSG_DATA(CMSg),&(sa6->sin6_addr),sizeof(sa6->sin6_addr)); CMSg = (struct CMSghdr *)((caddr_t) CMSg + AliGN(CMSg->CMSg_len));

它工作正常,如果我configuration2001 :: 2001作为源IP,服务器确实回复到这个地址。

但是,如果我configuration了一个不可达的IPv6源地址,例如1001 :: 1001,sendmsg没有类似于我们在IPv4中看到的错误消息。 消息仍然以2001 :: 1的原始IPv6发送。

有人可以build议什么可以是问题?

谢谢。

系统()后获取子PID

处理2个cron任务之间的“竞争条件”。 什么是最好的方法?

从windows执行远程.sh文件

用于基准和时间戳计数器频率的rdtsc的准确度

Bash,删除空的XML标签

IP_SENDSRCADDR和IPV6_PKTINFO必须是两个不同的实现。 也许在第一种情况下,它只是控制错误。 您是否尝试在IPV6_PKTINFO的辅助数据中设置接口索引? 对于IPV6_PKTINFO,辅助数据的类型是:in6_pktinfo。

struct in6_pktinfo { struct in6_addr ipi6_addr; /* src/dst IPv6 address */ unsigned int ipi6_ifindex; /* send/recv if index */ };

希望这有助于某种方式

总结

以上是内存溢出为你收集整理的sendmsg系统调用是否validation添加到辅助数据中的IPv6源地址?全部内容,希望文章能够帮你解决sendmsg系统调用是否validation添加到辅助数据中的IPv6源地址?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1289556.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存