packages/net/nprobe/patches/002-ipv6_fix.patch
pavlov aa1dccfd58 nProbe 4.1 package
git-svn-id: svn://svn.openwrt.org/openwrt/packages@7527 3c298f89-4303-0410-b956-a3cf2f4a3e73
2007-06-07 22:25:24 +00:00

36 lines
1023 B
Diff

--- nProbe/nprobe.c 2006-06-09 05:30:39.000000000 -0500
+++ nProbe.new/nprobe.c 2007-05-07 17:35:37.677224000 -0500
@@ -241,8 +241,10 @@
u_short eth_type, off=0, numPkts = 1;
u_int8_t flags = 0, proto = 0;
struct ip ip;
+ #ifndef IPV4_ONLY
struct ip6_hdr ipv6;
struct ip6_ext ipv6ext;
+ #endif
struct tcphdr tp;
struct udphdr up;
struct icmp icmpPkt;
@@ -362,7 +364,9 @@
isFragment = (ntohs(ip.ip_off) & 0x3fff) ? 1 : 0;
off = ntohs(ip.ip_off);
- } else if(eth_type == ETHERTYPE_IPV6) {
+ }
+ #ifndef IPV4_ONLY
+ else if(eth_type == ETHERTYPE_IPV6) {
memcpy(&ipv6, p+ehshift, sizeof(struct ip6_hdr));
if(((ipv6.ip6_vfc >> 4) & 0x0f) != 6) return; /* IP v6 only */
estimatedLen = sizeof(struct ip6_hdr)+ehshift+htons(ipv6.ip6_plen);
@@ -392,7 +396,9 @@
hlen += (ipv6ext.ip6e_len+1)*8;
proto = ipv6ext.ip6e_nxt;
}
- } else
+ }
+ #endif //IPV4_ONLY
+ else
return; /* Anything else that's not IPv4/v6 */
plen = length-ehshift;