История изменений
Исправление vel, (текущая версия) :
Оптимист ты однако.
Ты бы проверил для начал, что ehdr->h_proto == ETH_P_IP
Далее проверяем, что ip->version == 4
Потом проверяем, что ip->protocol == IPPROTO_UDP, а потом уже читал данные из udp->
Формально sizeof(struct iphdr) не является константой, так что
udp = (struct udphdr *)((char *)ip +ip->ihl*4)
Исходная версия vel, :
Оптимист ты однако.
Ты бы проверил для начал, что ehdr->h_proto == ETH_P_IP
Далее проверяем, что ip->version == 4 для начала.
Потом проверяем, что ip->protocol == IPPROTO_UDP, а потом уже читал данные из udp->
Формально sizeof(struct iphdr) не является константой, так что
udp = (struct udphdr *)((char *)ip +ip->ihl*4)