summaryrefslogtreecommitdiffstats
path: root/net/trafshow
diff options
context:
space:
mode:
authorleeym <leeym@FreeBSD.org>2003-06-29 16:54:55 +0000
committerleeym <leeym@FreeBSD.org>2003-06-29 16:54:55 +0000
commitf410d64340de871400ff9e7d0d487de23d425463 (patch)
tree12f79cac9a347a7b3be53f6fee677596494bd9c6 /net/trafshow
parentade7a148acbc6bdbe43218e58303299363101f8e (diff)
downloadFreeBSD-ports-f410d64340de871400ff9e7d0d487de23d425463.zip
FreeBSD-ports-f410d64340de871400ff9e7d0d487de23d425463.tar.gz
adds a handy column mask feature (-m) to net/trafshow
bump PORTREVISION PR: 51002, 53807 Submitted by: Luigi Rizzo <rizzo@icir.org> Ryan Thompson <ryan@sasknow.com>
Diffstat (limited to 'net/trafshow')
-rw-r--r--net/trafshow/Makefile3
-rw-r--r--net/trafshow/files/patch-ah119
2 files changed, 121 insertions, 1 deletions
diff --git a/net/trafshow/Makefile b/net/trafshow/Makefile
index 57d9380..d5dd5b6 100644
--- a/net/trafshow/Makefile
+++ b/net/trafshow/Makefile
@@ -7,7 +7,7 @@
PORTNAME= trafshow
PORTVERSION= 3.1
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= net
MASTER_SITES= ftp://ftp.sasknow.com/pub/trafshow/ \
ftp://ftp.nsk.su/pub/RinetSoftware/
@@ -17,6 +17,7 @@ MAINTAINER= ryan@sasknow.com
COMMENT= Full screen visualization of network traffic
.include <bsd.port.pre.mk>
+
.if defined(WITH_TRAFSHOW_SLANG) || \
(exists(${LOCALBASE}/lib/libslang.a) && !defined(WITHOUT_TRAFSHOW_SLANG))
LIB_DEPENDS= slang.1:${PORTSDIR}/devel/libslang
diff --git a/net/trafshow/files/patch-ah b/net/trafshow/files/patch-ah
new file mode 100644
index 0000000..c8c69ae
--- /dev/null
+++ b/net/trafshow/files/patch-ah
@@ -0,0 +1,119 @@
+--- display.c.orig Sun Aug 23 21:51:48 1998
++++ display.c Fri Dec 6 12:17:55 2002
+@@ -54,6 +54,7 @@
+ static int l_nflag, l_eflag;
+ static int n_entries;
+ static int err_pos;
++extern struct t_entry t_mask; /* traffic mask */
+
+ void
+ init_display(reinit)
+@@ -282,6 +284,13 @@
+ packets_total++;
+ bytes_total += e->bytes;
+ j = page * page_size;
++
++ e->src.s_addr &= t_mask.src.s_addr;
++ e->dst.s_addr &= t_mask.dst.s_addr;
++ e->sport &= t_mask.sport;
++ e->dport &= t_mask.dport;
++ e->proto &= t_mask.proto;
++
+ for (i = 0; i < n_entry; i++) {
+ if (memcmp(&e->eh, &entries[i].eh, sizeof(e->eh)) == 0 &&
+ e->src.s_addr == entries[i].src.s_addr &&
+--- trafshow.c.orig Fri Aug 28 00:15:57 1998
++++ trafshow.c Fri Dec 6 12:34:09 2002
+@@ -48,6 +48,7 @@
+ int pflag = 0; /* don't put the interface into promiscuous mode */
+ int kflag = 1; /* disable keyboard input checking */
+ int eflag = 0; /* show ethernet traffic rather than ip */
++struct t_entry t_mask; /* traffic mask */
+
+ /* global variables */
+ char *program_name; /* myself */
+@@ -78,6 +79,12 @@
+ extern int abort_on_misalignment();
+ extern pcap_handler lookup_if();
+
++ t_mask.src.s_addr = 0xffffffff; /* all bits valid */
++ t_mask.dst.s_addr = 0xffffffff; /* all bits valid */
++ t_mask.sport = 0xffff; /* all bits valid */
++ t_mask.dport = 0xffff; /* all bits valid */
++ t_mask.proto = 0xffff; /* all bits valid */
++
+ cnt = -1;
+ device_name = NULL;
+ infile = NULL;
+@@ -94,7 +87,7 @@
+
+ if (abort_on_misalignment(ebuf) < 0) error(0, ebuf);
+
+- while ((op = getopt(argc, argv, "c:CefF:i:knNOpr:t:vh?")) != EOF)
++ while ((op = getopt(argc, argv, "c:CefF:i:kmnNOpr:t:vh?")) != EOF)
+ switch (op) {
+ case 'C':
+ #ifdef HAVE_SLCURSES
+@@ -114,6 +121,40 @@
+ break;
+ case 'k':
+ kflag = 0;
++ break;
++ case 'm':
++ t_mask.src.s_addr = 0;
++ t_mask.dst.s_addr = 0;
++ t_mask.sport = 0;
++ t_mask.dport = 0;
++ t_mask.proto = 0;
++ for (;optind + 1 <= argc;) {
++ char *s = argv[optind];
++ u_int32_t arg = 0xffffffff;
++ int save=optind;
++
++ optind++;
++ if (optind + 1 <= argc &&
++ isdigit(*(argv[optind])) ) {
++ arg = strtoul(argv[optind], NULL, 0);
++ optind++;
++ }
++
++ if (!strcmp(s, "src-ip"))
++ t_mask.src.s_addr = htonl(arg);
++ else if (!strcmp(s, "dst-ip"))
++ t_mask.dst.s_addr = htonl(arg);
++ else if (!strcmp(s, "src-port"))
++ t_mask.sport = htons((u_short)(arg));
++ else if (!strcmp(s, "dst-port"))
++ t_mask.dport = htons((u_short)(arg));
++ else if (!strcmp(s, "proto"))
++ t_mask.proto = arg;
++ else {
++ optind = save;
++ break;
++ }
++ }
+ break;
+ case 'n':
+ ++nflag;
+--- trafshow.1.orig Fri Aug 28 09:37:38 1998
++++ trafshow.1 Tue Apr 15 22:32:21 2003
+@@ -42,6 +42,16 @@
+ .B \-k
+ Disable input keyboard checking. It is intended to avoid loss of packets.
+ .TP
++.B \-m
++[src-ip M] [dst-ip M] [src-port M] [dst-port M] [proto M]
++.br
++Mask the specified field with mask M (which should be specified
++as an hex number e.g. 0xffff0000) before further processing
++of the packet. This allows to aggregate traffic in the display
++to ease analysis.
++.br
++.The masks for all field not specified will be set to 0.
++.TP
+ .B \-n
+ Don't convert host addresses and port numbers to names.
+ .TP
+
+
+
OpenPOWER on IntegriCloud