Date: Fri, 27 Jun 2003 00:28:59 -0600 (CST) From: Ryan Thompson <ryan@sasknow.com> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/53807: MAINTAINER-UPDATE net/trafshow new feature Message-ID: <200306270628.h5R6SxLM086545@ren.sasknow.com> Resent-Message-ID: <200306270630.h5R6U22k009949@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 53807 >Category: ports >Synopsis: MAINTAINER-UPDATE net/trafshow new feature >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: maintainer-update >Submitter-Id: current-users >Arrival-Date: Thu Jun 26 23:30:01 PDT 2003 >Closed-Date: >Last-Modified: >Originator: Ryan Thompson >Release: FreeBSD 4.7-RELEASE-p6 i386 >Organization: SaskNow Technologies >Environment: System: FreeBSD ren.sasknow.com 4.7-RELEASE-p6 FreeBSD 4.7-RELEASE-p6 #0: Thu Feb 27 12:55:10 CST 2003 hutenosa@ren.sasknow.com:/customer/renhome/obj/usr/src/sys/REN i386 >Description: Supersedes ports/51002. This patch adds a handy column mask feature (-m) to net/trafshow, as revised and submitted to me by Luigi Rizzo <rizzo@icir.org>. Trafshow has not been updated by its author since 1998, so there is little chance of this feature being incorporated into new versions. Thus, I'll maintain it locally. From trafshow(1): -m [src-ip M] [dst-ip M] [src-port M] [dst-port M] [proto M] 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. The patch also bumps PORTREVISION appropriately. <pcecise description of the problem (multiple lines)> >How-To-Repeat: >Fix: diff -ruN trafshow.orig/Makefile trafshow/Makefile --- trafshow.orig/Makefile Fri Jun 27 00:12:54 2003 +++ trafshow/Makefile Thu Jun 26 23:49:26 2003 @@ -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/ diff -ruN trafshow.orig/files/patch-ah trafshow/files/patch-ah --- trafshow.orig/files/patch-ah Wed Dec 31 18:00:00 1969 +++ trafshow/files/patch-ah Fri Jun 27 00:07:03 2003 @@ -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 + + + >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200306270628.h5R6SxLM086545>