From c48d0935a1d841f4ffed0675b9f7fd1c0cdfdd41 Mon Sep 17 00:00:00 2001 From: patacongo Date: Mon, 5 Nov 2007 00:14:42 +0000 Subject: [PATCH] Fix problem with ARP request message length git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@369 42af7a65-404d-4744-a932-0658087f49c3 --- net/uip/uip-arp.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/net/uip/uip-arp.c b/net/uip/uip-arp.c index 49bb2487905..7a0498c22b0 100644 --- a/net/uip/uip-arp.c +++ b/net/uip/uip-arp.c @@ -487,7 +487,7 @@ void uip_arp_out(struct uip_driver_s *dev) ETHBUF->type = HTONS(UIP_ETHTYPE_ARP); dev->d_appdata = &dev->d_buf[UIP_TCPIP_HLEN + UIP_LLH_LEN]; - dev->d_len = sizeof(struct arp_hdr); + dev->d_len = sizeof(struct arp_hdr) + UIP_LLH_LEN; return; } @@ -495,9 +495,10 @@ void uip_arp_out(struct uip_driver_s *dev) memcpy(ETHBUF->dest, tabptr->at_ethaddr.addr, IFHWADDRLEN); } + + /* Finish populating the ethernet header */ + memcpy(ETHBUF->src, dev->d_mac.addr, IFHWADDRLEN); - ETHBUF->type = HTONS(UIP_ETHTYPE_IP); - - dev->d_len += sizeof(struct uip_eth_hdr); + dev->d_len += UIP_LLH_LEN; }