Author: arekm Date: Sun Mar 20 21:30:54 2011 GMT Module: packages Tag: HEAD ---- Log message: - rel 3; fixes from fc
---- Files affected: packages/iptraf: iptraf.spec (1.65 -> 1.66) , iptraf-3.0.0-in_trafic.patch (NONE -> 1.1) (NEW), iptraf-3.0.1-compile.fix.patch (NONE -> 1.1) (NEW), iptraf-3.0.1-ipv6-fix.patch (NONE -> 1.1) (NEW), iptraf-3.0.1-ipv6.patch (NONE -> 1.1) (NEW), iptraf-3.0.1-servmon-fix.patch (NONE -> 1.1) (NEW) ---- Diffs: ================================================================ Index: packages/iptraf/iptraf.spec diff -u packages/iptraf/iptraf.spec:1.65 packages/iptraf/iptraf.spec:1.66 --- packages/iptraf/iptraf.spec:1.65 Sat Jan 29 01:06:46 2011 +++ packages/iptraf/iptraf.spec Sun Mar 20 22:30:49 2011 @@ -7,7 +7,7 @@ Summary(uk.UTF-8): IPTraf - консольна програма моніторингу трафіку в мережі Name: iptraf Version: 3.0.1 -Release: 2 +Release: 3 License: GPL Group: Networking/Utilities Source0: ftp://iptraf.seul.org/pub/iptraf/%{name}-%{version}.tar.gz @@ -16,6 +16,12 @@ Patch1: %{name}-iface.patch Patch2: %{name}-show_all_interfaces.patch Patch3: %{name}-strcpy-overlap-memory.patch +# from fc +Patch4: iptraf-3.0.1-compile.fix.patch +Patch5: iptraf-3.0.0-in_trafic.patch +Patch6: iptraf-3.0.1-ipv6.patch +Patch7: iptraf-3.0.1-ipv6-fix.patch +Patch8: iptraf-3.0.1-servmon-fix.patch URL: http://iptraf.seul.org/ BuildRequires: ncurses-ext-devel >= 5.4 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) @@ -69,6 +75,11 @@ %patch1 -p1 %patch2 -p1 %patch3 -p1 +%patch4 -p1 +%patch5 -p1 +%patch6 -p1 +%patch7 -p1 +%patch8 -p1 %build cd src @@ -105,6 +116,9 @@ All persons listed below can be reached at <cvs_login>@pld-linux.org $Log$ +Revision 1.66 2011/03/20 21:30:49 arekm +- rel 3; fixes from fc + Revision 1.65 2011/01/29 00:06:46 sparky - dropped pre-cvs changelog ================================================================ Index: packages/iptraf/iptraf-3.0.0-in_trafic.patch diff -u /dev/null packages/iptraf/iptraf-3.0.0-in_trafic.patch:1.1 --- /dev/null Sun Mar 20 22:30:54 2011 +++ packages/iptraf/iptraf-3.0.0-in_trafic.patch Sun Mar 20 22:30:49 2011 @@ -0,0 +1,11 @@ +--- iptraf-3.0.0/src/serv.c.in 2006-12-11 11:13:27.000000000 +0100 ++++ iptraf-3.0.0/src/serv.c 2006-12-11 11:12:49.000000000 +0100 +@@ -333,7 +333,7 @@ + } + + dport_listent->ibcount += br; +- dport_listent->spans.spanbr_out += br; ++ dport_listent->spans.spanbr_in += br; + dport_listent->icount++; + } + if (sport_listent != NULL || dport_listent != NULL) { ================================================================ Index: packages/iptraf/iptraf-3.0.1-compile.fix.patch diff -u /dev/null packages/iptraf/iptraf-3.0.1-compile.fix.patch:1.1 --- /dev/null Sun Mar 20 22:30:54 2011 +++ packages/iptraf/iptraf-3.0.1-compile.fix.patch Sun Mar 20 22:30:49 2011 @@ -0,0 +1,77 @@ +diff -up iptraf-3.0.1/src/othptab.c.old iptraf-3.0.1/src/othptab.c +--- iptraf-3.0.1/src/othptab.c.old 2007-09-25 11:47:35.000000000 +0200 ++++ iptraf-3.0.1/src/othptab.c 2007-11-02 12:28:24.000000000 +0100 +@@ -19,10 +19,10 @@ details. + #include <stdlib.h> + #include <asm/types.h> + #include <sys/socket.h> +-#include <linux/if_ether.h> +-#include <linux/if_tr.h> +-#include <linux/netdevice.h> +-#include <linux/if_fddi.h> ++#include <netinet/if_ether.h> ++#include <netinet/if_tr.h> ++#include <linux/netdevice.h> ++#include <netinet/if_fddi.h> + #include <winops.h> + #include "arphdr.h" + #include "options.h" +diff -up iptraf-3.0.1/src/Makefile.old iptraf-3.0.1/src/Makefile +--- iptraf-3.0.1/src/Makefile.old 2007-11-02 12:27:07.000000000 +0100 ++++ iptraf-3.0.1/src/Makefile 2007-11-02 12:29:50.000000000 +0100 +@@ -18,7 +18,7 @@ VERSION = -DVERSION=\"$(VERNUMBER)\" + BINDIR = ../../iptraf-$(VERNUMBER).bin.$(ARCH) + + CC = gcc +-LIBS = -L../support -ltextbox -lpanel -lncurses # in this order! ++LIBS = -L../support -ltextbox -lpanelw -lncursesw # in this order! + + # comment this one out to omit debug code when done. + +@@ -39,7 +39,7 @@ LDOPTS = #-static + # you may want to change this to point to your ncurses include directory + # if the ncurses include files are not in the default location. + +-INCLUDEDIR = -I/usr/include/ncurses -I../support ++INCLUDEDIR = -I/usr/include/ncursesw -I../support + + # You can uncomment this one to disable the backspace key in input fields. + # This means you must use the Del key or Ctrl+H combination to erase the +@@ -162,7 +162,7 @@ install: + # and the compiled programs for release as a ready-to-run distribution. + + dist-bin: all +- $(CC) $(LDOPTS) $(PROF) -o iptraf $(OBJS) -L../support -ltextbox /usr/lib/libpanel.a /usr/lib/libncurses.a ++ $(CC) $(LDOPTS) $(PROF) -o iptraf $(OBJS) -L../support -ltextbox /usr/lib/libpanelw.a /usr/lib/libncursesw.a + rm -rf $(BINDIR) + mkdir $(BINDIR) + /bin/cp -p ../CHANGES ../LICENSE ../FAQ ../INSTALL ../README* \ +@@ -178,7 +178,7 @@ dist-bin: all + # Just in case anyone needs to link a static binary + # + static: $(OBJS) +- $(CC) -static $(PROC) -o iptraf $(OBJS) ../support/libtextbox.a -lpanel -lncurses ++ $(CC) -static $(PROC) -o iptraf $(OBJS) ../support/libtextbox.a -lpanelw -lncursesw + $(CC) -static -o rvnamed rvnamed.o getpath.o + $(CC) -static -o rawtime rawtime.c + +diff -up iptraf-3.0.1/src/tcptable.h.old iptraf-3.0.1/src/tcptable.h +--- iptraf-3.0.1/src/tcptable.h.old 2007-09-25 11:46:03.000000000 +0200 ++++ iptraf-3.0.1/src/tcptable.h 2007-11-02 12:35:56.000000000 +0100 +@@ -20,11 +20,11 @@ + #include <arpa/inet.h> + #include <net/if_arp.h> + #include <asm/types.h> +-#include <linux/if_packet.h> +-#include <linux/if_ether.h> +-#include <linux/netdevice.h> +-#include <linux/if_fddi.h> +-#include <linux/if_tr.h> ++#include <linux/if_packet.h> ++#include <netinet/if_ether.h> ++#include <linux/netdevice.h> ++#include <netinet/if_fddi.h> ++#include <netinet/if_tr.h> + // #include <net/if.h> + #include <netinet/ip.h> + #include <netinet/udp.h> ================================================================ Index: packages/iptraf/iptraf-3.0.1-ipv6-fix.patch diff -u /dev/null packages/iptraf/iptraf-3.0.1-ipv6-fix.patch:1.1 --- /dev/null Sun Mar 20 22:30:54 2011 +++ packages/iptraf/iptraf-3.0.1-ipv6-fix.patch Sun Mar 20 22:30:49 2011 @@ -0,0 +1,86 @@ +--- iptraf-3.0.1/src/ifstats.c.ipv6-fix 2008-06-05 13:40:33.000000000 +0200 ++++ iptraf-3.0.1/src/ifstats.c 2008-06-05 13:41:05.000000000 +0200 +@@ -294,7 +294,7 @@ void printifentry(struct iflist *ptmp, W + printlargenum(ptmp->ip6total, win); + wmove(win, target_row, 39 * COLS / 80); + printlargenum(ptmp->noniptotal, win); +- wmove(win, target_row, 29 * COLS / 80); ++ wmove(win, target_row, 49 * COLS / 80); + wprintw(win, "%8lu", ptmp->badtotal); + } + +@@ -329,10 +329,8 @@ void labelstats(WINDOW * win) + wmove(win, 0, 32 * COLS / 80); + wprintw(win, " IPv6 "); + wmove(win, 0, 42 * COLS / 80); +- wprintw(win, " IP "); +- wmove(win, 0, 36 * COLS / 80); + wprintw(win, " NonIP "); +- wmove(win, 0, 51 * COLS / 80); ++ wmove(win, 0, 52 * COLS / 80); + wprintw(win, " BadIP "); + wmove(win, 0, 65 * COLS / 80); + wprintw(win, " Activity "); +--- iptraf-3.0.1/src/othptab.c.ipv6-fix 2008-06-05 13:42:10.000000000 +0200 ++++ iptraf-3.0.1/src/othptab.c 2008-06-05 13:51:12.000000000 +0200 +@@ -189,6 +189,11 @@ struct othptabent *add_othp_entry(struct + ((struct icmphdr *) packet2)->type; + new_entry->un.icmp.code = + ((struct icmphdr *) packet2)->code; ++ } else if (protocol == IPPROTO_ICMPV6) { ++ new_entry->un.icmp6.type = ++ ((struct icmp6_hdr *) packet2)->icmp6_type; ++ new_entry->un.icmp6.code = ++ ((struct icmp6_hdr *) packet2)->icmp6_code; + } else if (protocol == IPPROTO_UDP) { + servlook(servnames, ((struct udphdr *) packet2)->source, + IPPROTO_UDP, new_entry->un.udp.s_sname, 10); +@@ -565,8 +570,8 @@ void printothpentry(struct othptable *ta + case ICMP6_DST_UNREACH_ADMIN: + strcpy(additional, "admin"); + break; +- case ICMP6_DST_UNREACH_NOTNEIGHBOR: +- strcpy(additional, "not neigh"); ++ case ICMP6_DST_UNREACH_BEYONDSCOPE: ++ strcpy(additional, "not beyondsp"); + break; + case ICMP6_DST_UNREACH_ADDR: + strcpy(additional, "unreach addr"); +@@ -576,15 +581,15 @@ void printothpentry(struct othptable *ta + break; + } + break; +- case ICMP6_PACKET_TOO_BIG: ++ case ICMP6_PACKET_TOO_BIG: + strcpy(description, "pkt too big"); + break; +- case ICMP6_TIME_EXCEEDED: +- strcpy(description, "time exceeded"); +- break; ++ case ICMP6_TIME_EXCEEDED: ++ strcpy(description, "time exceeded"); ++ break; + case ICMP6_PARAM_PROB: +- strcpy(description, "param prob"); +- break; ++ strcpy(description, "param prob"); ++ break; + case ICMP6_ECHO_REQUEST: + strcpy(description, "echo req"); + break; +@@ -597,15 +602,6 @@ void printothpentry(struct othptable *ta + case ND_ROUTER_ADVERT: + strcpy(description, "router adv"); + break; +- case ICMP6_MEMBERSHIP_QUERY: +- strcpy(description, "mbrship query"); +- break; +- case ICMP6_MEMBERSHIP_REPORT: +- strcpy(description, "mbrship report"); +- break; +- case ICMP6_MEMBERSHIP_REDUCTION: +- strcpy(description, "mbrship reduc"); +- break; + case ND_NEIGHBOR_SOLICIT: + strcpy(description, "neigh sol"); + break; ================================================================ Index: packages/iptraf/iptraf-3.0.1-ipv6.patch diff -u /dev/null packages/iptraf/iptraf-3.0.1-ipv6.patch:1.1 --- /dev/null Sun Mar 20 22:30:54 2011 +++ packages/iptraf/iptraf-3.0.1-ipv6.patch Sun Mar 20 22:30:49 2011 @@ -0,0 +1,1450 @@ +diff -up iptraf-3.0.1/src/attrs.h.ipv6 iptraf-3.0.1/src/attrs.h +--- iptraf-3.0.1/src/attrs.h.ipv6 2005-09-13 08:42:54.000000000 +0200 ++++ iptraf-3.0.1/src/attrs.h 2008-09-02 13:57:02.000000000 +0200 +@@ -29,3 +29,5 @@ extern int ARPATTR; + extern int GREATTR; + extern int UNKNIPATTR; + extern int UNKNATTR; ++extern int IPV6ATTR; ++extern int ICMPV6ATTR; +diff -up iptraf-3.0.1/src/deskman.c.ipv6 iptraf-3.0.1/src/deskman.c +--- iptraf-3.0.1/src/deskman.c.ipv6 2005-09-13 08:42:54.000000000 +0200 ++++ iptraf-3.0.1/src/deskman.c 2008-09-02 13:57:02.000000000 +0200 +@@ -56,7 +56,8 @@ int GREATTR; + int ARPATTR; + int UNKNIPATTR; + int UNKNATTR; +- ++int IPV6ATTR; ++int ICMPV6ATTR; + + /* draw the basic desktop common to my screen-oriented programs */ + +@@ -89,7 +90,8 @@ void about() + PANEL *panel; + int ch; + +- win = newwin(15, 50, (LINES - 15) / 2, (COLS - 50) / 2); ++ win = newwin(18, 62, (LINES - 17) / 2, (COLS - 62) / 2); ++ + panel = new_panel(win); + + tx_stdwinset(win); +@@ -108,9 +110,12 @@ void about() + mvwprintw(win, 10, 2, + "Public License Version 2 or any later version."); + mvwprintw(win, 11, 2, "See the included LICENSE file for details."); ++ mvwprintw(win, 13, 2, "IPv6 support by Markus Ullmann <[email protected]>"); ++ mvwprintw(win, 14, 2, "inspired by 2.7.0 diff by Guy Martin <[email protected]>"); + + wattrset(win, HIGHATTR); +- mvwprintw(win, 13, 2, ANYKEY_MSG); ++ ++ mvwprintw(win, 16, 2, ANYKEY_MSG); + + update_panels(); + doupdate(); +@@ -252,6 +257,8 @@ void standardcolors(int color) + ARPATTR = COLOR_PAIR(5) | A_BOLD; + GREATTR = COLOR_PAIR(1); + UNKNIPATTR = COLOR_PAIR(19) | A_BOLD; ++ ICMPV6ATTR = COLOR_PAIR(19) | A_BOLD; ++ IPV6ATTR = COLOR_PAIR(19); + UNKNATTR = COLOR_PAIR(4) | A_BOLD; + } else { + STDATTR = A_REVERSE; +@@ -281,6 +288,7 @@ void standardcolors(int color) + ARPATTR = A_BOLD; + GREATTR = A_BOLD; + UNKNIPATTR = A_BOLD; ++ ICMPV6ATTR = A_REVERSE; + UNKNATTR = A_BOLD; + } + +diff -up iptraf-3.0.1/src/ifstats.c.ipv6 iptraf-3.0.1/src/ifstats.c +--- iptraf-3.0.1/src/ifstats.c.ipv6 2005-09-13 08:42:54.000000000 +0200 ++++ iptraf-3.0.1/src/ifstats.c 2008-09-02 13:57:02.000000000 +0200 +@@ -1,4 +1,3 @@ +- + /*** + + ifstats.c - the interface statistics module +@@ -34,6 +33,7 @@ details. + #include <linux/if_packet.h> + #include <net/if.h> + #include <netinet/ip.h> ++#include <netinet/ip6.h> + #include <netinet/tcp.h> + #include <netinet/udp.h> + #include <linux/if_ether.h> +@@ -252,7 +252,7 @@ void updaterates(struct iftab *table, in + + wattrset(table->statwin, HIGHATTR); + do { +- wmove(table->statwin, ptmp->index - idx, 52 * COLS / 80); ++ wmove(table->statwin, ptmp->index - idx, 60 * COLS / 80); + if (unit == KBITS) { + ptmp->rate = + ((float) (ptmp->spanbr * 8 / 1000)) / +@@ -286,13 +286,15 @@ void printifentry(struct iflist *ptmp, W + wmove(win, target_row, 1); + wprintw(win, "%s", ptmp->ifname); + wattrset(win, HIGHATTR); +- wmove(win, target_row, 12 * COLS / 80); ++ wmove(win, target_row, 9 * COLS / 80); + printlargenum(ptmp->total, win); +- wmove(win, target_row, 22 * COLS / 80); ++ wmove(win, target_row, 19 * COLS / 80); + printlargenum(ptmp->iptotal, win); +- wmove(win, target_row, 32 * COLS / 80); ++ wmove(win, target_row, 29 * COLS / 80); ++ printlargenum(ptmp->ip6total, win); ++ wmove(win, target_row, 39 * COLS / 80); + printlargenum(ptmp->noniptotal, win); +- wmove(win, target_row, 42 * COLS / 80); ++ wmove(win, target_row, 29 * COLS / 80); + wprintw(win, "%8lu", ptmp->badtotal); + } + +@@ -320,15 +322,19 @@ void labelstats(WINDOW * win) + { + wmove(win, 0, 1); + wprintw(win, " Iface "); +- wmove(win, 0, 16 * COLS / 80); ++ wmove(win, 0, 12 * COLS / 80); + wprintw(win, " Total "); +- wmove(win, 0, 29 * COLS / 80); ++ wmove(win, 0, 22 * COLS / 80); ++ wprintw(win, " IPv4 "); ++ wmove(win, 0, 32 * COLS / 80); ++ wprintw(win, " IPv6 "); ++ wmove(win, 0, 42 * COLS / 80); + wprintw(win, " IP "); + wmove(win, 0, 36 * COLS / 80); + wprintw(win, " NonIP "); +- wmove(win, 0, 45 * COLS / 80); ++ wmove(win, 0, 51 * COLS / 80); + wprintw(win, " BadIP "); +- wmove(win, 0, 55 * COLS / 80); ++ wmove(win, 0, 65 * COLS / 80); + wprintw(win, " Activity "); + } + +@@ -422,6 +428,8 @@ void ifstats(const struct OPTIONS *optio + char *packet; + int pkt_result = 0; + ++ unsigned int iphlen; ++ + struct sockaddr_ll fromaddr; + unsigned short linktype; + +@@ -590,6 +598,18 @@ void ifstats(const struct OPTIONS *optio + && pkt_result != MORE_FRAGMENTS) + continue; + ++ if ((options->v6inv4asv6) && (fromaddr.sll_protocol == ETH_P_IP) ++ && ((struct iphdr *) packet)->protocol == IPPROTO_IPV6 ) { ++ iphlen = ((struct iphdr *) packet)->ihl * 4; ++ fromaddr.sll_protocol = htons(ETH_P_IPV6); ++ memmove(buf, buf + iphlen, MAX_PACKET_SIZE - iphlen); ++ // Reprocess the IPv6 packet ++ pkt_result = processpacket(buf, &packet, &br, NULL, NULL, NULL, ++ &fromaddr, &linktype, ofilter, MATCH_OPPOSITE_USECONFIG, ifname, NULL); ++ if (pkt_result != PACKET_OK ++ && pkt_result != MORE_FRAGMENTS) ++ continue; ++ } + positionptr(&table, &ptmp, ifname); + + ptmp->total++; +@@ -604,6 +624,8 @@ void ifstats(const struct OPTIONS *optio + (ptmp->badtotal)++; + continue; + } ++ } else if (fromaddr.sll_protocol == ETH_P_IPV6) { ++ ptmp->ip6total++; + } else { + (ptmp->noniptotal)++; + } +@@ -654,19 +676,20 @@ void printdetlabels(WINDOW * win, struct + "Packets Bytes Packets Bytes Packets Bytes"); + wattrset(win, STDATTR); + mvwprintw(win, 4, 2, "Total:"); +- mvwprintw(win, 5, 2, "IP:"); +- mvwprintw(win, 6, 2, "TCP:"); +- mvwprintw(win, 7, 2, "UDP:"); +- mvwprintw(win, 8, 2, "ICMP:"); +- mvwprintw(win, 9, 2, "Other IP:"); +- mvwprintw(win, 10, 2, "Non-IP:"); +- mvwprintw(win, 13, 2, "Total rates:"); +- mvwprintw(win, 16, 2, "Incoming rates:"); +- mvwprintw(win, 19, 2, "Outgoing rates:"); +- +- mvwprintw(win, 13, 45, "Broadcast packets:"); +- mvwprintw(win, 14, 45, "Broadcast bytes:"); +- mvwprintw(win, 18, 45, "IP checksum errors:"); ++ mvwprintw(win, 5, 2, "IPv4:"); ++ mvwprintw(win, 6, 2, "IPv6:"); ++ mvwprintw(win, 7, 2, "TCP:"); ++ mvwprintw(win, 8, 2, "UDP:"); ++ mvwprintw(win, 9, 2, "ICMP:"); ++ mvwprintw(win, 10, 2, "Other IP:"); ++ mvwprintw(win, 11, 2, "Non-IP:"); ++ mvwprintw(win, 14, 2, "Total rates:"); ++ mvwprintw(win, 17, 2, "Incoming rates:"); ++ mvwprintw(win, 20, 2, "Outgoing rates:"); ++ ++ mvwprintw(win, 14, 45, "Broadcast packets:"); ++ mvwprintw(win, 15, 45, "Broadcast bytes:"); ++ mvwprintw(win, 19, 45, "IP checksum errors:"); + + update_panels(); + doupdate(); +@@ -707,38 +730,41 @@ void printdetails(struct iftotals *total + totals->iptotal_in, totals->ipbtotal_in, + totals->iptotal_out, totals->ipbtotal_out); + +- printstatrow(win, 6, totals->tcptotal, totals->tcpbtotal, ++ printstatrow(win, 6, totals->ip6total, totals->ip6btotal, ++ totals->ip6total_in, totals->ip6btotal_in, ++ totals->ip6total_out, totals->ip6btotal_out); ++ ++ printstatrow(win, 7, totals->tcptotal, totals->tcpbtotal, + totals->tcptotal_in, totals->tcpbtotal_in, +- totals->tcptotal_out, totals->tcpbtotal_out); ++ totals->tcptotal_out, totals->tcpbtotal_out); + +- printstatrow(win, 7, totals->udptotal, totals->udpbtotal, ++ printstatrow(win, 8, totals->udptotal, totals->udpbtotal, + totals->udptotal_in, totals->udpbtotal_in, + totals->udptotal_out, totals->udpbtotal_out); + +- printstatrow(win, 8, totals->icmptotal, totals->icmpbtotal, ++ printstatrow(win, 9, totals->icmptotal, totals->icmpbtotal, + totals->icmptotal_in, totals->icmpbtotal_in, + totals->icmptotal_out, totals->icmpbtotal_out); + +- printstatrow(win, 9, totals->othtotal, totals->othbtotal, ++ printstatrow(win, 10, totals->othtotal, totals->othbtotal, + totals->othtotal_in, totals->othbtotal_in, + totals->othtotal_out, totals->othbtotal_out); + + /* Print non-IP totals */ + +- printstatrow(win, 10, totals->noniptotal, totals->nonipbtotal, ++ printstatrow(win, 11, totals->noniptotal, totals->nonipbtotal, + totals->noniptotal_in, totals->nonipbtotal_in, + totals->noniptotal_out, totals->nonipbtotal_out); + + /* Broadcast totals */ +- +- wmove(win, 13, 67); +- printlargenum(totals->bcast, win); + wmove(win, 14, 67); ++ printlargenum(totals->bcast, win); ++ wmove(win, 15, 67); + printlargenum(totals->bcastbytes, win); + + /* Bad packet count */ + +- mvwprintw(win, 18, 68, "%8lu", totals->badtotal); ++ mvwprintw(win, 19, 68, "%8lu", totals->badtotal); + } + + +@@ -757,6 +783,7 @@ void detstats(char *iface, const struct + char buf[MAX_PACKET_SIZE]; + char *packet; + struct iphdr *ipacket = NULL; ++ struct ip6_hdr *ip6packet = NULL; + char *tpacket; + unsigned int iphlen; + +@@ -962,15 +989,15 @@ void detstats(char *iface, const struct + starttime = now; + + wattrset(statwin, HIGHATTR); +- mvwprintw(statwin, 13, 19, "%8.1f %s/sec", activity, ++ mvwprintw(statwin, 14, 19, "%8.1f %s/sec", activity, + unitstring); +- mvwprintw(statwin, 14, 19, "%8.1f packets/sec", pps); +- mvwprintw(statwin, 16, 19, "%8.1f %s/sec", activity_in, ++ mvwprintw(statwin, 15, 19, "%8.1f packets/sec", pps); ++ mvwprintw(statwin, 17, 19, "%8.1f %s/sec", activity_in, + unitstring); +- mvwprintw(statwin, 17, 19, "%8.1f packets/sec", pps_in); +- mvwprintw(statwin, 19, 19, "%8.1f %s/sec", activity_out, ++ mvwprintw(statwin, 18, 19, "%8.1f packets/sec", pps_in); ++ mvwprintw(statwin, 20, 19, "%8.1f %s/sec", activity_out, + unitstring); +- mvwprintw(statwin, 20, 19, "%8.1f packets/sec", pps_out); ++ mvwprintw(statwin, 21, 19, "%8.1f packets/sec", pps_out); + + if (activity > peakactivity) + peakactivity = activity; +@@ -1077,6 +1104,18 @@ void detstats(char *iface, const struct + if (pkt_result != PACKET_OK && pkt_result != MORE_FRAGMENTS) + continue; + ++ if ((options->v6inv4asv6) && (fromaddr.sll_protocol == ETH_P_IP) ++ && ((struct iphdr *) packet)->protocol == IPPROTO_IPV6 ) { ++ iphlen = ((struct iphdr *) packet)->ihl * 4; ++ fromaddr.sll_protocol = htons(ETH_P_IPV6); ++ memmove(buf, buf + iphlen, MAX_PACKET_SIZE - iphlen); ++ // Reprocess the IPv6 packet ++ pkt_result = processpacket(buf, &packet, &br, NULL, NULL, NULL, ++ &fromaddr, &linktype, ofilter, MATCH_OPPOSITE_USECONFIG, ifname, NULL); ++ if (pkt_result != PACKET_OK && pkt_result != MORE_FRAGMENTS) ++ continue; ++ } ++ + totals.total++; + totals.bytestotal += framelen; + +@@ -1185,8 +1224,73 @@ void detstats(char *iface, const struct + } + break; + } ++ } else if (fromaddr.sll_protocol == ETH_P_IPV6) { ++ ++ ip6packet = (struct ip6_hdr *) packet; ++ iplen = ntohs(ip6packet->ip6_plen); ++ ++ totals.ip6total++; ++ totals.ip6btotal += iplen; ++ ++ if (fromaddr.sll_pkttype == PACKET_OUTGOING) { ++ totals.ip6total_out++; ++ totals.ip6btotal_out += iplen; ++ } else { ++ totals.ip6total_in++; ++ totals.ip6btotal_in += iplen; ++ } ++ ++ switch (ip6packet->ip6_nxt) { ++ case IPPROTO_TCP: ++ totals.tcptotal++; ++ totals.tcpbtotal += iplen; ++ ++ if (fromaddr.sll_pkttype == PACKET_OUTGOING) { ++ totals.tcptotal_out++; ++ totals.tcpbtotal_out += iplen; ++ } else { ++ totals.tcptotal_in++; ++ totals.tcpbtotal_in += iplen; ++ } ++ break; ++ case IPPROTO_UDP: ++ totals.udptotal++; ++ totals.udpbtotal += iplen; ++ ++ if (fromaddr.sll_pkttype == PACKET_OUTGOING) { ++ totals.udptotal_out++; ++ totals.udpbtotal_out += iplen; ++ } else { ++ totals.udptotal_in++; ++ totals.udpbtotal_in += iplen; ++ } ++ break; ++ case IPPROTO_ICMPV6: <<Diff was trimmed, longer than 597 lines>> ---- CVS-web: http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/iptraf/iptraf.spec?r1=1.65&r2=1.66&f=u _______________________________________________ pld-cvs-commit mailing list [email protected] http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit
