1 diff -urN dsniff.old/arp.c dsniff.dev/arp.c
2 --- dsniff.old/arp.c 2001-03-15 09:32:58.000000000 +0100
3 +++ dsniff.dev/arp.c 2006-03-03 01:41:10.000000000 +0100
8 -arp_cache_lookup(in_addr_t ip, struct ether_addr *ether)
9 +arp_cache_lookup(in_addr_t ip, struct ether_addr *ether, const char *lif)
17 -arp_cache_lookup(in_addr_t ip, struct ether_addr *ether)
18 +arp_cache_lookup(in_addr_t ip, struct ether_addr *ether, const char *lif)
24 memset((char *)&ar, 0, sizeof(ar));
26 - strncpy(ar.arp_dev, "eth0", sizeof(ar.arp_dev)); /* XXX - *sigh* */
27 + strncpy(ar.arp_dev, lif, strlen(lif));
29 sin = (struct sockaddr_in *)&ar.arp_pa;
30 sin->sin_family = AF_INET;
31 diff -urN dsniff.old/arp.h dsniff.dev/arp.h
32 --- dsniff.old/arp.h 2001-03-15 09:27:08.000000000 +0100
33 +++ dsniff.dev/arp.h 2006-03-03 01:42:23.000000000 +0100
38 -int arp_cache_lookup(in_addr_t ip, struct ether_addr *ether);
39 +int arp_cache_lookup(in_addr_t ip, struct ether_addr *ether, const char *lif);
42 diff -urN dsniff.old/arpspoof.c dsniff.dev/arpspoof.c
43 --- dsniff.old/arpspoof.c 2001-03-15 09:32:58.000000000 +0100
44 +++ dsniff.dev/arpspoof.c 2006-03-03 01:42:00.000000000 +0100
49 - if (arp_cache_lookup(ip, mac) == 0)
50 + if (arp_cache_lookup(ip, mac, intf) == 0)
53 /* XXX - force the kernel to arp. feh. */