summaryrefslogtreecommitdiffstats
path: root/openwrt/package/arpwatch/patches/012_debian_opt_nopromisc
diff options
context:
space:
mode:
Diffstat (limited to 'openwrt/package/arpwatch/patches/012_debian_opt_nopromisc')
-rw-r--r--openwrt/package/arpwatch/patches/012_debian_opt_nopromisc90
1 files changed, 90 insertions, 0 deletions
diff --git a/openwrt/package/arpwatch/patches/012_debian_opt_nopromisc b/openwrt/package/arpwatch/patches/012_debian_opt_nopromisc
new file mode 100644
index 000000000..37fdd5d08
--- /dev/null
+++ b/openwrt/package/arpwatch/patches/012_debian_opt_nopromisc
@@ -0,0 +1,90 @@
+Index: arpwatch/arpwatch.8
+diff -u arpwatch/arpwatch.8:1.1.1.1 arpwatch/arpwatch.8:1.1.1.1.6.1
+--- arpwatch/arpwatch.8:1.1.1.1 Tue Apr 17 13:31:36 2001
++++ arpwatch/arpwatch.8 Tue Apr 17 13:50:23 2001
+@@ -29,6 +29,8 @@
+ [
+ .B -dN
+ ] [
++.B -p
++] [
+ .B -f
+ .I datafile
+ ] [
+@@ -81,6 +83,15 @@
+ The
+ .B -N
+ flag disables reporting any bogons.
++.LP
++The
++.B -p
++flag disables promiscuous operation. ARP broadcasts get through hubs without
++having the interface in promiscuous mode, while saving considerable resources
++that would be wasted on processing gigabytes of non-broadcast traffic. OTOH,
++setting promiscuous mode does not mean getting 100% traffic that would concern
++.B arpwatch .
++YMMV. (Debian specific)
+ .LP
+ The
+ .B -r
+Index: arpwatch/arpwatch.c
+diff -u arpwatch/arpwatch.c:1.1.1.1.2.1 arpwatch/arpwatch.c:1.1.1.1.2.1.4.1
+--- arpwatch/arpwatch.c:1.1.1.1.2.1 Tue Apr 17 13:47:57 2001
++++ arpwatch/arpwatch.c Tue Apr 17 13:50:23 2001
+@@ -159,6 +159,7 @@
+ "i:"
+ "n:"
+ "N"
++ "p"
+ "r:"
+ ;
+
+@@ -206,6 +207,10 @@
+ ++nobogons;
+ break;
+
++ case 'p':
++ ++nopromisc;
++ break;
++
+ case 'r':
+ rfilename = optarg;
+ break;
+@@ -277,7 +282,7 @@
+ snaplen = max(sizeof(struct ether_header),
+ sizeof(struct fddi_header)) + sizeof(struct ether_arp);
+ timeout = 1000;
+- pd = pcap_open_live(interface, snaplen, 1, timeout, errbuf);
++ pd = pcap_open_live(interface, snaplen, !nopromisc, timeout, errbuf);
+ if (pd == NULL) {
+ syslog(LOG_ERR, "pcap open %s: %s", interface, errbuf);
+ exit(1);
+@@ -758,6 +763,7 @@
+ extern char version[];
+ char usage[] =
+ "[-dN] "
++ "[-p] "
+ "[-f datafile] "
+ "[-i interface] "
+ "[-n net[/width]] "
+Index: arpwatch/util.c
+diff -u arpwatch/util.c:1.1.1.1 arpwatch/util.c:1.1.1.1.6.1
+--- arpwatch/util.c:1.1.1.1 Tue Apr 17 13:31:37 2001
++++ arpwatch/util.c Tue Apr 17 13:50:23 2001
+@@ -61,6 +61,7 @@
+
+ int debug = 0;
+ int initializing = 1; /* true if initializing */
++int nopromisc = 0; /* don't activate promisc mode */
+
+ /* syslog() helper routine */
+ void
+Index: arpwatch/util.h
+diff -u arpwatch/util.h:1.1.1.1 arpwatch/util.h:1.1.1.1.6.1
+--- arpwatch/util.h:1.1.1.1 Tue Apr 17 13:31:37 2001
++++ arpwatch/util.h Tue Apr 17 13:50:23 2001
+@@ -17,3 +17,4 @@
+
+ extern int debug;
+ extern int initializing;
++extern int nopromisc;