Сокеты Linux C - recvmsg - получение источника ifindex
Я открываю сокет RAW в Linux и читаю все сообщения.
recvmsg(mysock, &msg, 0);
Я просматриваю все cmsg в этом буфере msg и получаю только один.
for (c = CMSG_FIRSTHDR(&msg); c; c = CMSG_NXTHDR(&msg, c)) {
Как я могу извлечь ifindex, по которому он получен?
1 ответ
Нашел. Сначала мне пришлось установить флаг IP_PKTINFO:
setsockopt(sock, IPPROTO_IP, IP_PKTINFO, &hold, sizeof(hold));