diff --git a/openwrt/package/Config.in b/openwrt/package/Config.in index d06abd75ee..00e0b73eb7 100644 --- a/openwrt/package/Config.in +++ b/openwrt/package/Config.in @@ -36,7 +36,9 @@ source "package/nfs-server/Config.in" source "package/ser/Config.in" source "package/wol/Config.in" source "package/chillispot/Config.in" +source "package/nocatsplash/Config.in" source "package/fping/Config.in" +source "package/arpwatch/Config.in" comment "Libraries" source "package/zlib/Config.in" diff --git a/openwrt/package/Makefile b/openwrt/package/Makefile index 63b3cb11e1..3cad94ad5a 100644 --- a/openwrt/package/Makefile +++ b/openwrt/package/Makefile @@ -3,6 +3,7 @@ include $(TOPDIR)/rules.mk package-y:=openwrt package-$(BR2_PACKAGE_ARPTABLES) += arptables +package-$(BR2_PACKAGE_ARPWATCH) += arpwatch package-$(BR2_PACKAGE_BRIDGE) += bridge package-$(BR2_PACKAGE_BUSYBOX) += busybox package-$(BR2_PACKAGE_CHILLISPOT) += chillispot @@ -26,6 +27,7 @@ package-$(BR2_PACKAGE_MATRIXSSL) += matrixssl package-$(BR2_PACKAGE_MICROPERL) += microperl package-$(BR2_PACKAGE_NCURSES) += ncurses package-$(BR2_PACKAGE_NFSD) += nfs-server +package-$(BR2_PACKAGE_NOCATSPLASH) += nocatsplash package-$(BR2_PACKAGE_OPENSSL) += openssl package-$(BR2_PACKAGE_OPENNTPD) += openntpd package-$(BR2_PACKAGE_OPENVPN) += openvpn diff --git a/openwrt/package/arpwatch/Config.in b/openwrt/package/arpwatch/Config.in new file mode 100644 index 0000000000..b2ff795aa4 --- /dev/null +++ b/openwrt/package/arpwatch/Config.in @@ -0,0 +1,6 @@ +config BR2_PACKAGE_ARPWATCH + tristate "arpwatch" + default m + help + Ethernet monitor program for keeping track of ethernet/ip address pairings + diff --git a/openwrt/package/arpwatch/Makefile b/openwrt/package/arpwatch/Makefile new file mode 100644 index 0000000000..43e0025c9e --- /dev/null +++ b/openwrt/package/arpwatch/Makefile @@ -0,0 +1,69 @@ +# $Id$ + +include $(TOPDIR)/rules.mk + +PKG_NAME:=arpwatch +PKG_VERSION:=2.1a11 +PKG_RELEASE:=1 +PKG_MD5SUM:=9ecd00db892737431b0e524f3e52e19e + +PKG_SOURCE_URL:=http://nbd.vd-s.ath.cx/openwrt +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) +PKG_CAT:=zcat +PKG_IPK:=$(PACKAGE_DIR)/$(PKG_NAME)_$(PKG_VERSION)-$(PKG_RELEASE)_$(ARCH).ipk +PKG_IPK_DIR:=$(PKG_BUILD_DIR)/ipkg + +$(DL_DIR)/$(PKG_SOURCE): + $(SCRIPT_DIR)/download.pl $(DL_DIR) $(PKG_SOURCE) $(PKG_MD5SUM) $(PKG_SOURCE_URL) + +$(PKG_BUILD_DIR)/.unpacked: $(DL_DIR)/$(PKG_SOURCE) + $(PKG_CAT) $(DL_DIR)/$(PKG_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - + touch $(PKG_BUILD_DIR)/.unpacked + +$(PKG_BUILD_DIR)/.configured: $(PKG_BUILD_DIR)/.unpacked + (cd $(PKG_BUILD_DIR); rm -rf config.cache; \ + $(TARGET_CONFIGURE_OPTS) \ + CFLAGS="$(TARGET_CFLAGS)" \ + ./configure \ + --target=$(GNU_TARGET_NAME) \ + --host=$(GNU_TARGET_NAME) \ + --build=$(GNU_HOST_NAME) \ + --prefix=/usr \ + --exec-prefix=/usr \ + --bindir=/usr/bin \ + --sbindir=/usr/sbin \ + --libexecdir=/usr/lib \ + --sysconfdir=/etc \ + --datadir=/usr/share \ + --localstatedir=/var \ + --mandir=/usr/man \ + --infodir=/usr/info \ + $(DISABLE_NLS) \ + $(DISABLE_LARGEFILE) \ + ); + touch $(PKG_BUILD_DIR)/.configured + +$(PKG_BUILD_DIR)/$(PKG_NAME): $(PKG_BUILD_DIR)/.configured + $(MAKE) CC=$(TARGET_CC) -C $(PKG_BUILD_DIR) + +$(PKG_IPK): $(PKG_BUILD_DIR)/$(PKG_NAME) + $(SCRIPT_DIR)/make-ipkg-dir.sh $(PKG_IPK_DIR) $(PKG_NAME).control $(PKG_VERSION)-$(PKG_RELEASE) $(ARCH) + mkdir -p $(PKG_IPK_DIR)/usr/sbin + cp $(PKG_BUILD_DIR)/arpwatch $(PKG_IPK_DIR)/usr/sbin/ + cp $(PKG_BUILD_DIR)/arpsnmp $(PKG_IPK_DIR)/usr/sbin/ + $(STRIP) $(PKG_IPK_DIR)/usr/sbin/* + mkdir -p $(PACKAGE_DIR) + $(IPKG_BUILD) $(PKG_IPK_DIR) $(PACKAGE_DIR) + +$(IPKG_STATE_DIR)/info/$(PKG_NAME).list: $(PKG_IPK) + $(IPKG) install $(PKG_IPK) + +source: $(DL_DIR)/$(PKG_SOURCE) +prepare: $(PKG_BUILD_DIR)/.unpacked +compile: $(PKG_IPK) +install: $(IPKG_STATE_DIR)/info/$(PKG_NAME).list + +clean: + rm -rf $(PKG_BUILD_DIR) + rm -f $(PKG_IPK) diff --git a/openwrt/package/arpwatch/arpwatch.control b/openwrt/package/arpwatch/arpwatch.control new file mode 100644 index 0000000000..85467d2a77 --- /dev/null +++ b/openwrt/package/arpwatch/arpwatch.control @@ -0,0 +1,6 @@ +Package: arpwatch +Priority: optional +Section: net +Maintainer: Felix Fietkau +Source: buildroot internal +Description: Ethernet monitor program for keeping track of ethernet/ip address pairings diff --git a/openwrt/package/arpwatch/patches/005_debian_fhs b/openwrt/package/arpwatch/patches/005_debian_fhs new file mode 100644 index 0000000000..44d9635b70 --- /dev/null +++ b/openwrt/package/arpwatch/patches/005_debian_fhs @@ -0,0 +1,103 @@ +Index: arpwatch/Makefile.in +diff -u arpwatch/Makefile.in:1.1.1.1 arpwatch/Makefile.in:1.1.1.1.10.1 +--- arpwatch/Makefile.in:1.1.1.1 Tue Apr 17 13:31:36 2001 ++++ arpwatch/Makefile.in Tue Apr 17 13:53:29 2001 +@@ -31,7 +31,8 @@ + # Pathname of directory to install the man page + MANDEST = @mandir@ + # Pathname of directory to install database file +-ARPDIR = $(prefix)/arpwatch ++ARPDIR = /var/lib/arpwatch ++ETHERCODES = /usr/share/arpwatch/ethercodes.dat + + # VPATH + srcdir = @srcdir@ +@@ -45,7 +46,8 @@ + PROG = arpwatch + CCOPT = @V_CCOPT@ + INCLS = -I. @V_INCLS@ +-DEFS = -DDEBUG @DEFS@ -DARPDIR=\"$(ARPDIR)\" -DPATH_SENDMAIL=\"$(SENDMAIL)\" ++DEFS = -DDEBUG @DEFS@ -DARPDIR=\"$(ARPDIR)\" -DPATH_SENDMAIL=\"$(SENDMAIL)\" \ ++ -DETHERCODES=\"$(ETHERCODES)\" + + # Standard CFLAGS + CFLAGS = $(CCOPT) $(DEFS) $(INCLS) +Index: arpwatch/arpsnmp.8 +diff -u arpwatch/arpsnmp.8:1.1.1.1 arpwatch/arpsnmp.8:1.1.1.1.10.1 +--- arpwatch/arpsnmp.8:1.1.1.1 Tue Apr 17 13:31:36 2001 ++++ arpwatch/arpsnmp.8 Tue Apr 17 13:53:29 2001 +@@ -1,4 +1,4 @@ +-.\" @(#) $Id$ (LBL) ++.\" @(#) $Id$ (LBL) + .\" + .\" Copyright (c) 1996, 1997, 1999, 2000 + .\" The Regents of the University of California. All rights reserved. +@@ -69,9 +69,9 @@ + .na + .nh + .nf +-/usr/operator/arpwatch - default directory ++/var/lib/arpwatch - default directory + arp.dat - ethernet/ip address database +-ethercodes.dat - vendor ethernet block list ++/usr/share/arpwatch/ethercodes.dat - vendor ethernet block list + .ad + .hy + .fi +Index: arpwatch/arpwatch.8 +diff -u arpwatch/arpwatch.8:1.1.1.1 arpwatch/arpwatch.8:1.1.1.1.10.1 +--- arpwatch/arpwatch.8:1.1.1.1 Tue Apr 17 13:31:36 2001 ++++ arpwatch/arpwatch.8 Tue Apr 17 13:53:29 2001 +@@ -1,4 +1,4 @@ +-.\" @(#) $Id$ (LBL) ++.\" @(#) $Id$ (LBL) + .\" + .\" Copyright (c) 1992, 1994, 1996, 1997, 2000 + .\" The Regents of the University of California. All rights reserved. +@@ -152,9 +152,9 @@ + .na + .nh + .nf +-/usr/operator/arpwatch - default directory ++/var/lib/arpwatch - default directory + arp.dat - ethernet/ip address database +-ethercodes.dat - vendor ethernet block list ++/usr/share/arpwatch/ethercodes.dat - vendor ethernet block list + .ad + .hy + .fi +Index: arpwatch/arpwatch.h +diff -u arpwatch/arpwatch.h:1.1.1.1 arpwatch/arpwatch.h:1.1.1.1.10.1 +--- arpwatch/arpwatch.h:1.1.1.1 Tue Apr 17 13:31:36 2001 ++++ arpwatch/arpwatch.h Tue Apr 17 13:53:29 2001 +@@ -1,7 +1,7 @@ + /* @(#) $Id$ (LBL) */ + + #define ARPFILE "arp.dat" +-#define ETHERCODES "ethercodes.dat" ++/* #define ETHERCODES "ethercodes.dat" */ + #define CHECKPOINT (15*60) /* Checkpoint time in seconds */ + + #define MEMCMP(a, b, n) memcmp((char *)a, (char *)b, n) +Index: arpwatch/bihourly +diff -u arpwatch/bihourly:1.1.1.1 arpwatch/bihourly:1.1.1.1.10.1 +--- arpwatch/bihourly:1.1.1.1 Tue Apr 17 13:31:36 2001 ++++ arpwatch/bihourly Tue Apr 17 13:53:29 2001 +@@ -6,7 +6,7 @@ + PATH=$PATH:/usr/local/sbin + export PATH + # +-cd /usr/operator/arpwatch ++cd /var/lib/arpwatch + # + list=`cat list` + cname=`cat cname` +@@ -14,7 +14,7 @@ + # + alist="" + for r in $list; do \ +- ./arpfetch $r $cname > $r 2> $errs ++ arpfetch $r $cname > $r 2> $errs + if test -s $errs; then + echo "arpfetch $r failed:" + sed -e 's/^/ /' $errs diff --git a/openwrt/package/arpwatch/patches/010_debian_getopt_patchable b/openwrt/package/arpwatch/patches/010_debian_getopt_patchable new file mode 100644 index 0000000000..7577e0b9ff --- /dev/null +++ b/openwrt/package/arpwatch/patches/010_debian_getopt_patchable @@ -0,0 +1,87 @@ +Index: arpwatch/arpsnmp.c +diff -u arpwatch/arpsnmp.c:1.1.1.1 arpwatch/arpsnmp.c:1.1.1.1.2.1 +--- arpwatch/arpsnmp.c:1.1.1.1 Tue Apr 17 13:31:36 2001 ++++ arpwatch/arpsnmp.c Tue Apr 17 13:47:57 2001 +@@ -78,6 +78,10 @@ + register char *cp; + register int op, i; + char errbuf[256]; ++ char options[] = ++ "d" ++ "f:" ++ ; + + if ((cp = strrchr(argv[0], '/')) != NULL) + prog = cp + 1; +@@ -90,7 +94,7 @@ + } + + opterr = 0; +- while ((op = getopt(argc, argv, "df:")) != EOF) ++ while ((op = getopt(argc, argv, options)) != EOF) + switch (op) { + + case 'd': +@@ -181,9 +185,14 @@ + usage(void) + { + extern char version[]; ++ char usage[] = ++ "[-d] " ++ "[-f datafile] " ++ "file [...]\n" ++ ; + + (void)fprintf(stderr, "Version %s\n", version); + (void)fprintf(stderr, +- "usage: %s [-d] [-f datafile] file [...]\n", prog); ++ "usage: %s %s", prog, usage); + exit(1); + } +Index: arpwatch/arpwatch.c +diff -u arpwatch/arpwatch.c:1.1.1.1 arpwatch/arpwatch.c:1.1.1.1.2.1 +--- arpwatch/arpwatch.c:1.1.1.1 Tue Apr 17 13:31:36 2001 ++++ arpwatch/arpwatch.c Tue Apr 17 13:47:57 2001 +@@ -153,6 +153,14 @@ + register char *interface, *rfilename; + struct bpf_program code; + char errbuf[PCAP_ERRBUF_SIZE]; ++ char options[] = ++ "d" ++ "f:" ++ "i:" ++ "n:" ++ "N" ++ "r:" ++ ; + + if (argv[0] == NULL) + prog = "arpwatch"; +@@ -170,7 +178,7 @@ + interface = NULL; + rfilename = NULL; + pd = NULL; +- while ((op = getopt(argc, argv, "df:i:n:Nr:")) != EOF) ++ while ((op = getopt(argc, argv, options)) != EOF) + switch (op) { + + case 'd': +@@ -748,9 +756,16 @@ + usage(void) + { + extern char version[]; ++ char usage[] = ++ "[-dN] " ++ "[-f datafile] " ++ "[-i interface] " ++ "[-n net[/width]] " ++ "[-r file] " ++ "\n" ++ ; + + (void)fprintf(stderr, "Version %s\n", version); +- (void)fprintf(stderr, "usage: %s [-dN] [-f datafile] [-i interface]" +- " [-n net[/width]] [-r file]\n", prog); ++ (void)fprintf(stderr, "usage: %s %s", prog, usage); + exit(1); + } diff --git a/openwrt/package/arpwatch/patches/011_debian_opt_sendmail_path b/openwrt/package/arpwatch/patches/011_debian_opt_sendmail_path new file mode 100644 index 0000000000..4b2014db3f --- /dev/null +++ b/openwrt/package/arpwatch/patches/011_debian_opt_sendmail_path @@ -0,0 +1,163 @@ +Index: arpwatch/arpsnmp.8 +diff -u arpwatch/arpsnmp.8:1.1.1.1 arpwatch/arpsnmp.8:1.1.1.1.4.1 +--- arpwatch/arpsnmp.8:1.1.1.1 Tue Apr 17 13:31:36 2001 ++++ arpwatch/arpsnmp.8 Tue Apr 17 13:49:16 2001 +@@ -30,7 +30,12 @@ + ] [ + .B -f + .I datafile ++] [ ++.B -s ++.I sendmail_path + ] ++.br ++.ti +8 + .I file + [ + .I ... +@@ -54,6 +59,13 @@ + flag is used to set the ethernet/ip address database filename. + The default is + .IR arp.dat . ++.LP ++The ++.B -s ++flag is used to specify the path to the sendmail program. ++Any program that takes the option -odi and then text from stdin ++can be substituted. This is useful for redirecting reports ++to log files instead of mail. (Debian specific) + .LP + Note that an empty + .I arp.dat +Index: arpwatch/arpsnmp.c +diff -u arpwatch/arpsnmp.c:1.1.1.1.2.1 arpwatch/arpsnmp.c:1.1.1.1.2.1.2.1 +--- arpwatch/arpsnmp.c:1.1.1.1.2.1 Tue Apr 17 13:47:57 2001 ++++ arpwatch/arpsnmp.c Tue Apr 17 13:49:16 2001 +@@ -67,6 +67,7 @@ + __dead void usage(void) __attribute__((volatile)); + + char *prog; ++char *path_sendmail = PATH_SENDMAIL; + + extern int optind; + extern int opterr; +@@ -81,6 +82,7 @@ + char options[] = + "d" + "f:" ++ "s:" + ; + + if ((cp = strrchr(argv[0], '/')) != NULL) +@@ -109,6 +111,10 @@ + arpfile = optarg; + break; + ++ case 's': ++ path_sendmail = optarg; ++ break; ++ + default: + usage(); + } +@@ -188,6 +194,7 @@ + char usage[] = + "[-d] " + "[-f datafile] " ++ "[-s sendmail_path] " + "file [...]\n" + ; + +Index: arpwatch/arpwatch.8 +diff -u arpwatch/arpwatch.8:1.1.1.1 arpwatch/arpwatch.8:1.1.1.1.4.1 +--- arpwatch/arpwatch.8:1.1.1.1 Tue Apr 17 13:31:36 2001 ++++ arpwatch/arpwatch.8 Tue Apr 17 13:49:16 2001 +@@ -44,6 +44,12 @@ + .B -r + .I file + ] ++.br ++.ti +8 ++[ ++.B -s ++.I sendmail_path ++] + .ad + .SH DESCRIPTION + .B Arpwatch +@@ -93,6 +99,13 @@ + of reading from the network. In this case, + .B arpwatch + does not fork. ++.LP ++The ++.B -s ++flag is used to specify the path to the sendmail program. ++Any program that takes the option -odi and then text from stdin ++can be substituted. This is useful for redirecting reports ++to log files instead of mail. (Debian specific) + .LP + Note that an empty + .I arp.dat +Index: arpwatch/arpwatch.c +diff -u arpwatch/arpwatch.c:1.1.1.1.2.1 arpwatch/arpwatch.c:1.1.1.1.2.1.2.1 +--- arpwatch/arpwatch.c:1.1.1.1.2.1 Tue Apr 17 13:47:57 2001 ++++ arpwatch/arpwatch.c Tue Apr 17 13:49:16 2001 +@@ -106,6 +106,7 @@ + #endif + + char *prog; ++char *path_sendmail = PATH_SENDMAIL; + + int can_checkpoint; + int swapped; +@@ -160,6 +161,7 @@ + "n:" + "N" + "r:" ++ "s:" + ; + + if (argv[0] == NULL) +@@ -210,6 +212,10 @@ + rfilename = optarg; + break; + ++ case 's': ++ path_sendmail = optarg; ++ break; ++ + default: + usage(); + } +@@ -761,7 +767,8 @@ + "[-f datafile] " + "[-i interface] " + "[-n net[/width]] " +- "[-r file] " ++ "[-r file]\n\t" ++ "[-s sendmail_path] " + "\n" + ; + +Index: arpwatch/report.c +diff -u arpwatch/report.c:1.1.1.1 arpwatch/report.c:1.1.1.1.4.1 +--- arpwatch/report.c:1.1.1.1 Tue Apr 17 13:31:37 2001 ++++ arpwatch/report.c Tue Apr 17 13:49:16 2001 +@@ -235,6 +235,7 @@ + report(register char *title, register u_int32_t a, register u_char *e1, + register u_char *e2, register time_t *t1p, register time_t *t2p) + { ++ extern char *path_sendmail; + register char *cp, *hn; + register int fd, pid; + register FILE *f; +@@ -242,7 +243,7 @@ + char *fmt = "%20s: %s\n"; + char *watcher = WATCHER; + char *watchee = WATCHEE; +- char *sendmail = PATH_SENDMAIL; ++ char *sendmail = path_sendmail; + char *unknown = ""; + char buf[132]; + static int init = 0; 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 0000000000..37fdd5d087 --- /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; diff --git a/openwrt/package/arpwatch/patches/013_debian_opt_allsubnets b/openwrt/package/arpwatch/patches/013_debian_opt_allsubnets new file mode 100644 index 0000000000..df61eeae69 --- /dev/null +++ b/openwrt/package/arpwatch/patches/013_debian_opt_allsubnets @@ -0,0 +1,103 @@ +Index: arpwatch/arpwatch.8 +diff -u arpwatch/arpwatch.8:1.1.1.1 arpwatch/arpwatch.8:1.1.1.1.8.1 +--- arpwatch/arpwatch.8:1.1.1.1 Tue Apr 17 13:31:36 2001 ++++ arpwatch/arpwatch.8 Tue Apr 17 13:51:23 2001 +@@ -27,6 +27,8 @@ + .na + .B arpwatch + [ ++.B -a ++] [ + .B -dN + ] [ + .B -f +@@ -53,6 +55,17 @@ + uses + .BR pcap (3) + to listen for arp packets on a local ethernet interface. ++.LP ++.B -a ++By default, ++.B arpwatch ++reports bogons (unless ++.B -N ++is given) for IP addresses that are in the same subnet than the ++first IP address of the default interface. If this option is ++specified, ++.B arpwatch ++will report bogons about every IP addresses. (Debian specific) + .LP + The + .B -d +Index: arpwatch/arpwatch.c +diff -u arpwatch/arpwatch.c:1.1.1.1.2.1 arpwatch/arpwatch.c:1.1.1.1.2.1.6.1 +--- arpwatch/arpwatch.c:1.1.1.1.2.1 Tue Apr 17 13:47:57 2001 ++++ arpwatch/arpwatch.c Tue Apr 17 13:51:23 2001 +@@ -154,6 +154,7 @@ + struct bpf_program code; + char errbuf[PCAP_ERRBUF_SIZE]; + char options[] = ++ "a" + "d" + "f:" + "i:" +@@ -181,6 +182,10 @@ + while ((op = getopt(argc, argv, options)) != EOF) + switch (op) { + ++ case 'a': ++ ++allsubnets; ++ break; ++ + case 'd': + ++debug; + #ifndef DEBUG +@@ -389,7 +394,7 @@ + /* Watch for bogons */ + if (isbogon(sia)) { + dosyslog(LOG_INFO, "bogon", sia, sea, sha); +- return; ++ if (!allsubnets) return; + } + + /* Watch for ethernet broadcast */ +@@ -538,7 +543,7 @@ + /* Watch for bogons */ + if (isbogon(sia)) { + dosyslog(LOG_INFO, "bogon", sia, sea, sha); +- return; ++ if (!allsubnets) return; + } + + /* Watch for ethernet broadcast */ +@@ -757,6 +762,7 @@ + { + extern char version[]; + char usage[] = ++ "[-a] " + "[-dN] " + "[-f datafile] " + "[-i interface] " +Index: arpwatch/util.c +diff -u arpwatch/util.c:1.1.1.1 arpwatch/util.c:1.1.1.1.8.1 +--- arpwatch/util.c:1.1.1.1 Tue Apr 17 13:31:37 2001 ++++ arpwatch/util.c Tue Apr 17 13:51:24 2001 +@@ -59,6 +59,7 @@ + u_char zero[6] = { 0, 0, 0, 0, 0, 0 }; + u_char allones[6] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; + ++int allsubnets = 0; /* watch all attached subnets */ + int debug = 0; + int initializing = 1; /* true if initializing */ + +Index: arpwatch/util.h +diff -u arpwatch/util.h:1.1.1.1 arpwatch/util.h:1.1.1.1.8.1 +--- arpwatch/util.h:1.1.1.1 Tue Apr 17 13:31:37 2001 ++++ arpwatch/util.h Tue Apr 17 13:51:24 2001 +@@ -15,5 +15,6 @@ + extern u_char zero[6]; + extern u_char allones[6]; + ++extern int allsubnets; + extern int debug; + extern int initializing; diff --git a/openwrt/package/arpwatch/patches/014_debian_opt_mailto b/openwrt/package/arpwatch/patches/014_debian_opt_mailto new file mode 100644 index 0000000000..50e7491af2 --- /dev/null +++ b/openwrt/package/arpwatch/patches/014_debian_opt_mailto @@ -0,0 +1,161 @@ +Index: arpwatch/arpsnmp.8 +diff -u arpwatch/arpsnmp.8:1.1.1.1 arpwatch/arpsnmp.8:1.1.1.1.12.1 +--- arpwatch/arpsnmp.8:1.1.1.1 Tue Apr 17 13:31:36 2001 ++++ arpwatch/arpsnmp.8 Tue Apr 17 13:54:38 2001 +@@ -28,6 +28,9 @@ + [ + .B -d + ] [ ++.B -m ++.I addr ++] [ + .B -f + .I datafile + ] +@@ -48,6 +51,13 @@ + flag is used enable debugging. This also inhibits mailing the reports. + Instead, they are sent to + .IR stderr . ++.LP ++The ++.B -m ++option is used to specify the e-mail address to which reports will be ++sent. By default, reports are sent to ++.I root ++on the local machine. (Debian specific) + .LP + The + .B -f +Index: arpwatch/arpsnmp.c +diff -u arpwatch/arpsnmp.c:1.1.1.1.2.1 arpwatch/arpsnmp.c:1.1.1.1.2.1.8.1 +--- arpwatch/arpsnmp.c:1.1.1.1.2.1 Tue Apr 17 13:47:57 2001 ++++ arpwatch/arpsnmp.c Tue Apr 17 13:54:38 2001 +@@ -80,6 +80,7 @@ + char errbuf[256]; + char options[] = + "d" ++ "m:" + "f:" + ; + +@@ -105,6 +106,10 @@ + #endif + break; + ++ case 'm': ++ mailaddress = optarg; ++ break; ++ + case 'f': + arpfile = optarg; + break; +@@ -187,6 +192,7 @@ + extern char version[]; + char usage[] = + "[-d] " ++ "[-m addr ] " + "[-f datafile] " + "file [...]\n" + ; +Index: arpwatch/arpwatch.8 +diff -u arpwatch/arpwatch.8:1.1.1.1 arpwatch/arpwatch.8:1.1.1.1.12.1 +--- arpwatch/arpwatch.8:1.1.1.1 Tue Apr 17 13:31:36 2001 ++++ arpwatch/arpwatch.8 Tue Apr 17 13:54:38 2001 +@@ -38,6 +38,10 @@ + .br + .ti +8 + [ ++.B -m ++.I addr ++] ++[ + .B -n + .IR net [/ width + ]] [ +@@ -69,6 +73,13 @@ + The + .B -i + flag is used to override the default interface. ++.LP ++The ++.B -m ++option is used to specify the e-mail address to which reports will be ++sent. By default, reports are sent to ++.I root ++on the local machine. (Debian specific) + .LP + The + .B -n +Index: arpwatch/arpwatch.c +diff -u arpwatch/arpwatch.c:1.1.1.1.2.1 arpwatch/arpwatch.c:1.1.1.1.2.1.8.1 +--- arpwatch/arpwatch.c:1.1.1.1.2.1 Tue Apr 17 13:47:57 2001 ++++ arpwatch/arpwatch.c Tue Apr 17 13:54:38 2001 +@@ -157,6 +157,7 @@ + "d" + "f:" + "i:" ++ "m:" + "n:" + "N" + "r:" +@@ -197,6 +198,10 @@ + interface = optarg; + break; + ++ case 'm': ++ mailaddress = optarg; ++ break; ++ + case 'n': + if (!addnet(optarg)) + usage(); +@@ -760,6 +765,7 @@ + "[-dN] " + "[-f datafile] " + "[-i interface] " ++ "[-m addr] " + "[-n net[/width]] " + "[-r file] " + "\n" +Index: arpwatch/report.c +diff -u arpwatch/report.c:1.1.1.1 arpwatch/report.c:1.1.1.1.12.1 +--- arpwatch/report.c:1.1.1.1 Tue Apr 17 13:31:37 2001 ++++ arpwatch/report.c Tue Apr 17 13:54:38 2001 +@@ -240,7 +240,7 @@ + register FILE *f; + char tempfile[64], cpu[64], os[64]; + char *fmt = "%20s: %s\n"; +- char *watcher = WATCHER; ++ char *watcher = mailaddress; + char *watchee = WATCHEE; + char *sendmail = PATH_SENDMAIL; + char *unknown = ""; +Index: arpwatch/util.c +diff -u arpwatch/util.c:1.1.1.1 arpwatch/util.c:1.1.1.1.12.1 +--- arpwatch/util.c:1.1.1.1 Tue Apr 17 13:31:37 2001 ++++ arpwatch/util.c Tue Apr 17 13:54:38 2001 +@@ -50,10 +50,12 @@ + #include "ec.h" + #include "file.h" + #include "util.h" ++#include "addresses.h" + + char *arpdir = ARPDIR; + char *arpfile = ARPFILE; + char *ethercodes = ETHERCODES; ++char *mailaddress = WATCHER; + + /* Broadcast ethernet addresses */ + u_char zero[6] = { 0, 0, 0, 0, 0, 0 }; +Index: arpwatch/util.h +diff -u arpwatch/util.h:1.1.1.1 arpwatch/util.h:1.1.1.1.12.1 +--- arpwatch/util.h:1.1.1.1 Tue Apr 17 13:31:37 2001 ++++ arpwatch/util.h Tue Apr 17 13:54:38 2001 +@@ -11,6 +11,7 @@ + extern char *arpfile; + extern char *oldarpfile; + extern char *ethercodes; ++extern char *mailaddress; + + extern u_char zero[6]; + extern u_char allones[6]; diff --git a/openwrt/package/arpwatch/patches/021_debian_arp2ethers b/openwrt/package/arpwatch/patches/021_debian_arp2ethers new file mode 100644 index 0000000000..e50b03af11 --- /dev/null +++ b/openwrt/package/arpwatch/patches/021_debian_arp2ethers @@ -0,0 +1,90 @@ +Index: arpwatch/arp2ethers +diff -u arpwatch/arp2ethers:1.1.1.1 arpwatch/arp2ethers:1.1.1.1.14.1 +--- arpwatch/arp2ethers:1.1.1.1 Tue Apr 17 13:31:36 2001 ++++ arpwatch/arp2ethers Tue Apr 17 13:56:38 2001 +@@ -1,5 +1,5 @@ +-#!/bin/csh -f +-# @(#) $Id$ (LBL) ++#!/bin/sh ++# @(#) $Header$ (LBL) + # + # Convert arp.dat to ethers format + # +@@ -12,12 +12,74 @@ + # - append "-old", "-old1", etc. as necessary + # - sort + # ++# 1999-04-12 KELEMEN Peter ++# Use sh(1) instead of csh(1). ++# ++# 2000-03-21 Erik Warmelink ++# Use next instead of continue in included p.awk. + + sort +2rn arp.dat | \ + awk 'NF == 4 { print }' | \ +- awk -f p.awk | \ ++# 1999-04-12 KELEMEN Peter ++# awk -f p.awk | \ ++ awk ' ++# Only print the first ethernet address seen ++ ++{ ++ e = $1 ++ if (seen[e]) ++ next ++ seen[e] = 1 ++ print $0 ++} ++ ' | \ + egrep -v '\.[0-9][0-9]*$' | \ + sed -e 's/ .* / /' | \ +- awk -f d.awk | \ +- awk -f e.awk | \ ++# 1999-04-12 KELEMEN Peter ++# awk -f d.awk | \ ++ awk ' ++# DECnet hacking ++ ++BEGIN { ++ n = 0 ++ sdecnet = "aa:0:4:" ++ ldecnet = length(sdecnet) ++} ++ ++{ ++ ++n ++ e[n] = $1 ++ h[n] = $2 ++ if (sdecnet == substr($1, 1, ldecnet)) ++ decnet[$2] = 1 ++} ++ ++END { ++ for (i = 1; i <= n; ++i) { ++ if (decnet[h[i]] && sdecnet != substr(e[i], 1, ldecnet)) ++ h[i] = h[i] "-ip" ++ print e[i] "\t" h[i] ++ } ++} ++ ' | \ ++# 1999-04-12 KELEMEN Peter ++# awk -f e.awk | \ ++ awk ' ++# Add -old suffix to ethers file, as required. Assumed sorted input ++ ++{ ++ if (!seen[$2]) { ++ seen[$2] = 1 ++ print ++ next ++ } ++ h = $2 "-old" ++ s = h ++ for (n = 1; seen[h]; ++n) ++ h = s n ++ seen[h] = 1 ++ print $1 "\t" h ++ next ++} ++ ' | \ + sort diff --git a/openwrt/package/nocatsplash/Config.in b/openwrt/package/nocatsplash/Config.in new file mode 100644 index 0000000000..87954826d2 --- /dev/null +++ b/openwrt/package/nocatsplash/Config.in @@ -0,0 +1,10 @@ +config BR2_PACKAGE_NOCATSPLASH + tristate "NoCatSplash" + default m + help + NoCatSplash is an Open Public Network Gateway Daemon. + It performs as a [captive/open/active] portal. When run on a gateway/router + on a network, all web requests are redirected until the client either logs + in or clicks "I Accept" to an AUP. The gateway daemon then changes the + firewall rules on the gateway to pass traffic for that client (based on IP + address and MAC address). diff --git a/openwrt/package/nocatsplash/Makefile b/openwrt/package/nocatsplash/Makefile new file mode 100644 index 0000000000..d5d6b36535 --- /dev/null +++ b/openwrt/package/nocatsplash/Makefile @@ -0,0 +1,71 @@ +# $Id$ + +include $(TOPDIR)/rules.mk + +PKG_NAME:=nocatsplash +PKG_VERSION:=0.92 +PKG_RELEASE:=1 +PKG_MD5SUM:=e0fcc0effe52e63bc31070d16d0b4a81 + +PKG_SOURCE_URL:=http://wifi.rulez.org/~josephus/ +PKG_SOURCE:=NoCatSplash-$(PKG_VERSION).tar.gz +PKG_BUILD_DIR:=$(BUILD_DIR)/NoCatSplash-$(PKG_VERSION) +PKG_CAT:=zcat +PKG_IPK:=$(PACKAGE_DIR)/$(PKG_NAME)_$(PKG_VERSION)-$(PKG_RELEASE)_$(ARCH).ipk +PKG_IPK_DIR:=$(PKG_BUILD_DIR)/ipkg + +$(DL_DIR)/$(PKG_SOURCE): + $(SCRIPT_DIR)/download.pl $(DL_DIR) $(PKG_SOURCE) $(PKG_MD5SUM) $(PKG_SOURCE_URL) + +$(PKG_BUILD_DIR)/.unpacked: $(DL_DIR)/$(PKG_SOURCE) + $(PKG_CAT) $(DL_DIR)/$(PKG_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - + touch $(PKG_BUILD_DIR)/.unpacked + +$(PKG_BUILD_DIR)/.configured: $(PKG_BUILD_DIR)/.unpacked + (cd $(PKG_BUILD_DIR); rm -rf config.cache; \ + $(TARGET_CONFIGURE_OPTS) \ + CFLAGS="$(TARGET_CFLAGS)" \ + ./configure \ + --target=$(GNU_TARGET_NAME) \ + --host=$(GNU_TARGET_NAME) \ + --build=$(GNU_HOST_NAME) \ + --prefix=/usr \ + --exec-prefix=/usr \ + --bindir=/usr/bin \ + --sbindir=/usr/sbin \ + --libexecdir=/usr/lib \ + --sysconfdir=/etc \ + --datadir=/usr/share \ + --localstatedir=/var \ + --mandir=/usr/man \ + --infodir=/usr/info \ + $(DISABLE_NLS) \ + $(DISABLE_LARGEFILE) \ + ); + touch $(PKG_BUILD_DIR)/.configured + +$(PKG_BUILD_DIR)/src/splashd: $(PKG_BUILD_DIR)/.configured + $(MAKE) -C $(PKG_BUILD_DIR) \ + CC=$(TARGET_CC) \ + GLIB_CFLAGS="-I$(STAGING_DIR)/usr/include/glib-1.2 -I$(STAGING_DIR)/usr/lib/glib/include" \ + GLIB_LIBS="-L$(STAGING_DIR)/usr/lib -lglib" \ + LIBS="-L$(STAGING_DIR)/usr/lib -lglib" + +$(PKG_IPK): $(PKG_BUILD_DIR)/src/splashd + $(SCRIPT_DIR)/make-ipkg-dir.sh $(PKG_IPK_DIR) $(PKG_NAME).control $(PKG_VERSION)-$(PKG_RELEASE) $(ARCH) + $(MAKE) -C $(PKG_BUILD_DIR) DESTDIR=$(PKG_IPK_DIR) install + $(STRIP) $(PKG_IPK_DIR)/usr/sbin/splashd + mkdir -p $(PACKAGE_DIR) + $(IPKG_BUILD) $(PKG_IPK_DIR) $(PACKAGE_DIR) + +$(IPKG_STATE_DIR)/info/$(PKG_NAME).list: $(PKG_IPK) + $(IPKG) install $(PKG_IPK) + +source: $(DL_DIR)/$(PKG_SOURCE) +prepare: $(PKG_BUILD_DIR)/.unpacked +compile: $(PKG_IPK) +install: $(IPKG_STATE_DIR)/info/$(PKG_NAME).list + +clean: + rm -rf $(PKG_BUILD_DIR) + rm -f $(PKG_IPK) diff --git a/openwrt/package/nocatsplash/nocatsplash.control b/openwrt/package/nocatsplash/nocatsplash.control new file mode 100644 index 0000000000..4bbcb4e35a --- /dev/null +++ b/openwrt/package/nocatsplash/nocatsplash.control @@ -0,0 +1,11 @@ +Package: nocatsplash +Priority: optional +Section: net +Maintainer: Felix Fietkau +Source: buildroot internal +Description: NoCatSplash is an Open Public Network Gateway Daemon. + It performs as a [captive/open/active] portal. When run on a gateway/router + on a network, all web requests are redirected until the client either logs + in or clicks "I Accept" to an AUP. The gateway daemon then changes the + firewall rules on the gateway to pass traffic for that client (based on IP + address and MAC address).