define Package/arpd
SECTION:=net
CATEGORY:=Network
- DEPENDS:=+libpcap +libdnet +libevent +librt @BROKEN
+ DEPENDS:=+libpcap +libdnet +libevent +librt
TITLE:=A daemon to fake ARP replies
URL:=http://niels.xtdnet.nl/honeyd/
endef
if ((arpd_pcap = pcap_open_live(dev, 128, 0, 500, ebuf)) == NULL)
errx(1, "pcap_open_live: %s", ebuf);
-@@ -465,14 +469,14 @@ main(int argc, char *argv[])
+@@ -465,14 +469,15 @@ main(int argc, char *argv[])
{
struct event recv_ev;
extern int (*event_sigcb)(void);
FILE *fp;
dev = NULL;
++ and_pcap_exp = NULL;
debug = 0;
- while ((c = getopt(argc, argv, "di:h?")) != -1) {
switch (c) {
case 'd':
debug = 1;
-@@ -480,6 +484,9 @@ main(int argc, char *argv[])
+@@ -480,6 +485,9 @@ main(int argc, char *argv[])
case 'i':
dev = optarg;
break;
default:
usage();
break;
-@@ -489,9 +496,9 @@ main(int argc, char *argv[])
+@@ -489,9 +497,9 @@ main(int argc, char *argv[])
argv += optind;
if (argc == 0)
--- /dev/null
+--- a/arpd.c
++++ b/arpd.c
+@@ -449,9 +449,6 @@ arpd_recv(int fd, short type, void *ev)
+ void
+ terminate_handler(int sig)
+ {
+- extern int event_gotsig;
+-
+- event_gotsig = 1;
+ arpd_sig = sig;
+ }
+
+@@ -468,7 +465,6 @@ int
+ main(int argc, char *argv[])
+ {
+ struct event recv_ev;
+- extern int (*event_sigcb)(void);
+ char *dev, *and_pcap_exp;
+ int c, debug;
+ FILE *fp;
+@@ -532,8 +528,6 @@ main(int argc, char *argv[])
+ perror("signal");
+ return (-1);
+ }
+- event_sigcb = arpd_signal;
+-
+ event_dispatch();
+
+ return (0);