aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGene Cumm <gene.cumm@gmail.com>2013-07-13 08:16:14 -0400
committerGene Cumm <gene.cumm@gmail.com>2013-07-13 08:16:14 -0400
commit9aaeef3523b07019b4926b67e94ea8c420c74d92 (patch)
treecc2b43fba4d25963f57e7f2125bbfe757d2d77d5
parent3b32118a7303fa7357d607772c383ff9c1218417 (diff)
downloadsyslinux-9aaeef3523b07019b4926b67e94ea8c420c74d92.tar.gz
syslinux-9aaeef3523b07019b4926b67e94ea8c420c74d92.tar.xz
syslinux-9aaeef3523b07019b4926b67e94ea8c420c74d92.zip
lwip/undiif: split arphdr._hwlen_protolen
lwIP already split this in etharp.h Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
-rw-r--r--core/lwip/src/netif/undiif.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/core/lwip/src/netif/undiif.c b/core/lwip/src/netif/undiif.c
index 7791c6b4..f73b90eb 100644
--- a/core/lwip/src/netif/undiif.c
+++ b/core/lwip/src/netif/undiif.c
@@ -100,7 +100,8 @@ PACK_STRUCT_BEGIN
struct arp_hdr {
PACK_STRUCT_FIELD(u16_t hwtype);
PACK_STRUCT_FIELD(u16_t proto);
- PACK_STRUCT_FIELD(u16_t _hwlen_protolen);
+ PACK_STRUCT_FIELD(u8_t hwlen);
+ PACK_STRUCT_FIELD(u8_t protolen);
PACK_STRUCT_FIELD(u16_t opcode);
} PACK_STRUCT_STRUCT;
PACK_STRUCT_END
@@ -394,8 +395,8 @@ undiarp_request(struct netif *netif, struct ip_addr *ipaddr)
hdr->opcode = htons(ARP_REQUEST);
hdr->hwtype = htons(MAC_type);
hdr->proto = htons(ETHTYPE_IP);
- /* set hwlen and protolen together */
- hdr->_hwlen_protolen = htons((netif->hwaddr_len << 8) | sizeof(struct ip_addr));
+ hdr->hwlen = netif->hwaddr_len;
+ hdr->protolen = sizeof(struct ip_addr);
hdr_ptr = (unsigned char *)(hdr + 1);
memcpy(hdr_ptr, netif->hwaddr, netif->hwaddr_len);
@@ -1138,11 +1139,12 @@ undiarp_input(struct netif *netif, struct pbuf *p)
hdr = p->payload;
/* RFC 826 "Packet Reception": */
if ((hdr->hwtype != htons(MAC_type)) ||
- (hdr->_hwlen_protolen != htons((netif->hwaddr_len << 8) | sizeof(struct ip_addr))) ||
+ (hdr->hwlen != netif->hwaddr_len) ||
+ (hdr->protolen != sizeof(struct ip_addr)) ||
(hdr->proto != htons(ETHTYPE_IP))) {
LWIP_DEBUGF(UNDIIF_ARP_DEBUG | UNDIIF_DEBUG | LWIP_DBG_TRACE | LWIP_DBG_LEVEL_WARNING,
("undiarp_input: packet dropped, wrong hw type, hwlen, proto, or protolen (%"U16_F"/%"U16_F"/%"U16_F"/%"U16_F"/%"U16_F")\n",
- hdr->hwtype, ARPH_HWLEN(hdr), hdr->proto, ARPH_PROTOLEN(hdr)));
+ hdr->hwtype, hdr->hwlen, hdr->proto, hdr->protolen));
ETHARP_STATS_INC(etharp.proterr);
ETHARP_STATS_INC(etharp.drop);
printf("malformed arp packet\n");