diff options
author | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2007-11-05 23:04:16 +0000 |
---|---|---|
committer | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2007-11-05 23:04:16 +0000 |
commit | 13a1d731ec51a27983bc9e6fcaa841607a090764 (patch) | |
tree | 93b32ce5f98ff118a21eb072cf111e164fd38686 /nuttx/net/uip/uip-arp.c | |
parent | 4cfb76d4d59acfdadc0f50527533b9c129edde41 (diff) | |
download | px4-nuttx-13a1d731ec51a27983bc9e6fcaa841607a090764.tar.gz px4-nuttx-13a1d731ec51a27983bc9e6fcaa841607a090764.tar.bz2 px4-nuttx-13a1d731ec51a27983bc9e6fcaa841607a090764.zip |
Basic TCP send functional
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@371 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/net/uip/uip-arp.c')
-rw-r--r-- | nuttx/net/uip/uip-arp.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/nuttx/net/uip/uip-arp.c b/nuttx/net/uip/uip-arp.c index 9a82943fa..fa64f9876 100644 --- a/nuttx/net/uip/uip-arp.c +++ b/nuttx/net/uip/uip-arp.c @@ -52,6 +52,9 @@ * Included Files ****************************************************************************/ +#include <nuttx/config.h> +#ifdef CONFIG_NET + #include <sys/types.h> #include <sys/ioctl.h> @@ -144,13 +147,13 @@ static void uip_arp_dump(struct arp_hdr *arp) vdbg(" Sender MAC: %02x:%02x:%02x:%02x:%02x:%02x IP: %d.%d.%d.%d\n", arp->ah_shwaddr[0], arp->ah_shwaddr[1], arp->ah_shwaddr[2], arp->ah_shwaddr[3], arp->ah_shwaddr[4], arp->ah_shwaddr[5], - arp->ah_sipaddr[0] >> 8, arp->ah_sipaddr[0] & 0xff, - arp->ah_sipaddr[1] >> 8, arp->ah_sipaddr[1] & 0xff); + arp->ah_sipaddr[0] & 0xff, arp->ah_sipaddr[0] >> 8, + arp->ah_sipaddr[1] & 0xff, arp->ah_sipaddr[1] >> 8); vdbg(" Dest MAC: %02x:%02x:%02x:%02x:%02x:%02x IP: %d.%d.%d.%d\n", arp->ah_dhwaddr[0], arp->ah_dhwaddr[1], arp->ah_dhwaddr[2], arp->ah_dhwaddr[3], arp->ah_dhwaddr[4], arp->ah_dhwaddr[5], - arp->ah_dipaddr[0] >> 8, arp->ah_dipaddr[0] & 0xff, - arp->ah_dipaddr[1] >> 8, arp->ah_dipaddr[1] & 0xff); + arp->ah_dipaddr[0] & 0xff, arp->ah_dipaddr[0] >> 8, + arp->ah_dipaddr[1] & 0xff, arp->ah_dipaddr[1] >> 8); } #else # define uip_arp_dump(arp) @@ -324,6 +327,7 @@ void uip_arp_ipin(void) void uip_arp_arpin(struct uip_driver_s *dev) { in_addr_t ipaddr; + if (dev->d_len < (sizeof(struct arp_hdr) + UIP_LLH_LEN)) { dev->d_len = 0; @@ -357,8 +361,7 @@ void uip_arp_arpin(struct uip_driver_s *dev) ARPBUF->ah_dipaddr[0] = ARPBUF->ah_sipaddr[0]; ARPBUF->ah_dipaddr[1] = ARPBUF->ah_sipaddr[1]; - ARPBUF->ah_sipaddr[0] = dev->d_ipaddr >> 16; - ARPBUF->ah_sipaddr[1] = dev->d_ipaddr & 0xffff; + uiphdr_ipaddr_copy(ARPBUF->ah_sipaddr, &dev->d_ipaddr); uip_arp_dump(ARPBUF); ETHBUF->type = HTONS(UIP_ETHTYPE_ARP); @@ -503,3 +506,4 @@ void uip_arp_out(struct uip_driver_s *dev) ETHBUF->type = HTONS(UIP_ETHTYPE_IP); dev->d_len += UIP_LLH_LEN; } +#endif /* CONFIG_NET */ |