$Id$ --- dsniff-2.4.orig/arp.c 2001-03-15 09:32:58.000000000 +0100 +++ dsniff-2.4/arp.c 2007-01-23 00:20:48.000000000 +0100 @@ -39,7 +39,7 @@ #ifdef BSD int -arp_cache_lookup(in_addr_t ip, struct ether_addr *ether) +arp_cache_lookup(in_addr_t ip, struct ether_addr *ether, const char *lif) { int mib[6]; size_t len; @@ -91,7 +91,7 @@ arp_cache_lookup(in_addr_t ip, struct et #endif int -arp_cache_lookup(in_addr_t ip, struct ether_addr *ether) +arp_cache_lookup(in_addr_t ip, struct ether_addr *ether, const char *lif) { int sock; struct arpreq ar; @@ -99,7 +99,7 @@ arp_cache_lookup(in_addr_t ip, struct et memset((char *)&ar, 0, sizeof(ar)); #ifdef __linux__ - strncpy(ar.arp_dev, "eth0", sizeof(ar.arp_dev)); /* XXX - *sigh* */ + strncpy(ar.arp_dev, lif, strlen(lif)); #endif sin = (struct sockaddr_in *)&ar.arp_pa; sin->sin_family = AF_INET;