我的任务是消除
<app> uses obsolete (PF_INET,SOCK_PACKET)
来自用户空间客户端的警告。如果这种类型的使用已过时;这项任务的正确、类似的替代品是什么?
编辑:这里有误导性信息。
检查man 7 packet
并man 7 ip
获取更多信息,但看起来您需要的是
socket(PF_PACKET, SOCK_RAW, <protocol>)
"For compatibility with Linux 2.0, the obsolete socket(PF_INET,
SOCK_RAW, protocol) syntax is still supported to open a
packet(7) socket. This is deprecated and should be replaced by
socket(PF_PACKET, SOCK_RAW, protocol) instead. The main
difference is the new sockaddr_ll address structure for generic
link layer information instead of sockaddr_pkt." - ip(7)
虽然我不知道可能需要进行哪些其他更改。
问题是调用 socket(AF_INET, SOCK_PACKET, htons(0x0806)) 的库函数,而不是应用程序本身。