X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=avahi-autoipd%2Fmain.c;h=4a51dc378ef4fc559f55689b4ffa3352c10e400b;hb=7c966a2bfbadce6e924fc6dd2053e614b0449ea2;hp=3271d83e8f6f0af56f2d1dbe4ff411e85f481d80;hpb=b54a67fe8a7da842fd086a289e5b61c5b518b03e;p=catta diff --git a/avahi-autoipd/main.c b/avahi-autoipd/main.c index 3271d83..4a51dc3 100644 --- a/avahi-autoipd/main.c +++ b/avahi-autoipd/main.c @@ -62,6 +62,12 @@ #ifndef __linux__ #include + +/* Old versions of PCAP defined it as D_IN */ +#ifndef PCAP_D_IN +#define PCAP_D_IN D_IN +#endif + #endif #include @@ -77,6 +83,8 @@ #include "main.h" #include "iface.h" + + /* An implementation of RFC 3927 */ /* Constants from the RFC */ @@ -510,7 +518,7 @@ static int send_packet(int fd, int iface, ArpPacket *packet, size_t packet_len) sa.sll_halen = ETHER_ADDRLEN; memset(sa.sll_addr, 0xFF, ETHER_ADDRLEN); - if (sendto(fd, packet, packet_len, 0, (struct sockaddr*) &sa, sizeof(sa)) < 0) { + if (sendto(fd, packet->ether_payload, packet_len, 0, (struct sockaddr*) &sa, sizeof(sa)) < 0) { daemon_log(LOG_ERR, "sendto() failed: %s", strerror(errno)); return -1; } @@ -1042,7 +1050,7 @@ static int loop(int iface, uint32_t addr) { FD_ARP, FD_IFACE, FD_SIGNAL, - FD_MAX, + FD_MAX }; int fd = -1, ret = -1;