From: Roy Marples Date: Wed, 21 Feb 2007 23:22:25 +0000 (+0000) Subject: Fix regression on Linux for sending packets over non Ethernet devices. X-Git-Tag: v3.2.3~308 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ee173eabe31b0852e30f34a44f7b59f7742aa350;p=thirdparty%2Fdhcpcd.git Fix regression on Linux for sending packets over non Ethernet devices. --- diff --git a/ChangeLog b/ChangeLog index 738ed45f..3462ab18 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,4 @@ +Fix regression on Linux for sending packets over non Ethernet devices. define ARPHRD_IEEE1394 if it doesn not exist, like for Linux-2.4 kernels. dhcpcd-3.0.12 diff --git a/socket.c b/socket.c index 84a6589f..ee945398 100644 --- a/socket.c +++ b/socket.c @@ -495,8 +495,8 @@ int send_packet (const interface_t *iface, const int type, sll.sll_family = AF_PACKET; sll.sll_protocol = htons (type); sll.sll_ifindex = if_nametoindex (iface->name); - sll.sll_halen = iface->hwlen; - memset(sll.sll_addr, 0xff, sizeof (sll.sll_addr)); + sll.sll_halen = ETHER_ADDR_LEN; + memset(sll.sll_addr, 0xff, ETHER_ADDR_LEN); if ((retval = sendto (iface->fd, data, len, 0, (struct sockaddr *) &sll, sizeof (struct sockaddr_ll))) < 0)