Я устанавливаю сокет необработанного пакета, используя следующее:
sockFd = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL) );
Затем я пытаюсь установить опцию сокета IP_HDRINCL
, используя:
int one = 1;
if (setsockopt (sockFd, IPPROTO_IP, IP_HDRINCL, &one, sizeof(one)) < 0)
LogPrint(LOG_UNKNOWN,"Warning: Cannot set HDRINCL!\n");
Но я не могу установить эту опцию (я получаю сообщение об ошибке с errno
92 и сообщением «Протокол недоступен». Если я изменяю PF_PACKET
на PF_INET
, то параметры устанавливаются, но я должен использовать PF_PACKET
. Так есть ли способ установить эту опцию с сокетом, созданным выше?
Спасибо большое.