summaryrefslogtreecommitdiff
blob: 4565e95a97aa0738e3b09605146b9a805ae843da (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
--- arpstar.c.orig	2007-08-21 16:07:16.000000000 +0200
+++ arpstar.c	2007-08-21 16:10:06.000000000 +0200
@@ -113,7 +113,7 @@
 	struct in_ifaddr * ifa;
 
 	dev=(*skb)->dev;
- 	arp = (*skb)->nh.arph;
+ 	arp = arp_hdr(*skb);
 	arp_ptr= (unsigned char *)(arp+1);
 	sha     = arp_ptr;
 	arp_ptr += dev->addr_len;
@@ -132,7 +132,7 @@
 		goto out;
 	if(arpop==1) /*received ARP request*/
 	{
-		e2dst=(unsigned char *)(*skb)->mac.raw;
+		e2dst=skb_mac_header(*skb);
 		/*check if it's for us and send reply if it is*/
 		ifa=indev->ifa_list;
                 while(ifa!=NULL)
@@ -239,7 +239,7 @@
 	unsigned int status=NF_DROP;
 
  	dev=(*skb)->dev;
-	arp = (*skb)->nh.arph;
+	arp = arp_hdr(*skb);
 	arp_ptr= (unsigned char *)(arp+1);
 	sha     = arp_ptr;
 	arp_ptr += dev->addr_len;
@@ -267,9 +267,9 @@
 {
 	u8 prot=1;
 	u32 ip;
-	if((*skb)->h.ipiph->protocol==prot)		/*looking for icmp*/
+	if(ip_hdr(*skb)->protocol==prot)		/*looking for icmp*/
 	{
-		ip=(*skb)->h.ipiph->saddr;
+		ip=ip_hdr(*skb)->saddr;
 		if(!check_ip(&ip,WAICMP))
 			add_ip(&ip,WAICMP);
 	}
@@ -527,7 +527,7 @@
 
 	if(skb->len>=42||skb->len==28)	/*28 is for wireless drivers that cut off ethernet header even though it's still accessible*/
 	{
-   		arp = skb->nh.arph;
+   		arp = arp_hdr(skb);
 		arp_ptr= (unsigned char *)(arp+1);
 		arpsrc     = arp_ptr;
 		arp_ptr += dev->addr_len;
@@ -535,8 +535,8 @@
 		arp_ptr += 4;
 		arpdst     = arp_ptr;
 		arp_ptr += dev->addr_len;
-		e2dst=(unsigned char *)skb->mac.raw;
-		e2src=(unsigned char *)skb->mac.raw+ADDRLEN;
+		e2dst=skb_mac_header(skb);
+		e2src=skb_mac_header(skb)+ADDRLEN;
 		ifa=indev->ifa_list;
 		while(ifa!=NULL)
 		{