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)
{
|