]> git.ipfire.org Git - thirdparty/dhcp.git/commitdiff
Fix a struct size problem on Linux/ARM32.
authorTed Lemon <source@isc.org>
Thu, 11 Nov 1999 16:10:59 +0000 (16:10 +0000)
committerTed Lemon <source@isc.org>
Thu, 11 Nov 1999 16:10:59 +0000 (16:10 +0000)
common/ethernet.c
includes/netinet/if_ether.h

index e7cbea2a2c943b3ab922d132884139cc2da7f089..1a1162b7c8dbbbc0ec1922e3ce7e82e83d17243e 100644 (file)
@@ -22,7 +22,7 @@
 
 #ifndef lint
 static char copyright[] =
-"$Id: ethernet.c,v 1.2 1999/10/07 06:35:42 mellon Exp $ Copyright (c) 1996 The Internet Software Consortium.  All rights reserved.\n";
+"$Id: ethernet.c,v 1.3 1999/11/11 16:10:57 mellon Exp $ Copyright (c) 1996 The Internet Software Consortium.  All rights reserved.\n";
 #endif /* not lint */
 
 #include "dhcpd.h"
@@ -59,8 +59,8 @@ void assemble_ethernet_header (interface, buf, bufix, to)
        eh.ether_type = htons (ETHERTYPE_IP);
 #endif
 
-       memcpy (&buf [*bufix], &eh, sizeof eh);
-       *bufix += sizeof eh;
+       memcpy (&buf [*bufix], &eh, ETHER_HEADER_SIZE);
+       *bufix += ETHER_HEADER_SIZE;
 }
 #endif /* PACKET_ASSEMBLY */
 
@@ -75,7 +75,7 @@ ssize_t decode_ethernet_header (interface, buf, bufix, from)
 {
   struct ether_header eh;
 
-  memcpy (&eh, buf + bufix, sizeof eh);
+  memcpy (&eh, buf + bufix, ETHER_HEADER_SIZE);
 
 #ifdef USERLAND_FILTER
   if (ntohs (eh.ether_type) != ETHERTYPE_IP)
index cae53863c54cdc1c1404284ba14f46c2c82009b4..f61b18b62fee9a442fb274d21d5e4cfa81a2ade1 100644 (file)
@@ -72,3 +72,4 @@ struct        ether_header {
 #define        ETHERMTU        1500
 #define        ETHERMIN        (60-14)
 
+#define ETHER_HEADER_SIZE (ETHER_ADDR_LEN * 2 + sizeof (u_int16_t))