diff --git a/net-tools-1.60-IA64.patch b/net-tools-1.60-IA64.patch index 0e59c3f..80e5f95 100644 --- a/net-tools-1.60-IA64.patch +++ b/net-tools-1.60-IA64.patch @@ -1,7 +1,7 @@ diff -up net-tools-1.60/ifconfig.c.IA64 net-tools-1.60/ifconfig.c ---- net-tools-1.60/ifconfig.c.IA64 2010-01-02 11:35:39.000000000 +0100 -+++ net-tools-1.60/ifconfig.c 2010-01-02 11:35:39.000000000 +0100 -@@ -894,7 +894,8 @@ int main(int argc, char **argv) +--- net-tools-1.60/ifconfig.c.IA64 2011-12-06 14:36:57.158662389 +0100 ++++ net-tools-1.60/ifconfig.c 2011-12-06 14:36:57.247661276 +0100 +@@ -914,7 +914,8 @@ int main(int argc, char **argv) continue; } @@ -11,23 +11,3 @@ diff -up net-tools-1.60/ifconfig.c.IA64 net-tools-1.60/ifconfig.c if (get_nmbc_parent(ifr.ifr_name, &nm, &bc) < 0) { fprintf(stderr, _("Interface %s not initialized\n"), -diff -up net-tools-1.60/lib/interface.c.IA64 net-tools-1.60/lib/interface.c ---- net-tools-1.60/lib/interface.c.IA64 2010-01-02 11:35:39.000000000 +0100 -+++ net-tools-1.60/lib/interface.c 2010-01-02 12:03:05.000000000 +0100 -@@ -491,14 +491,14 @@ int if_fetch(struct interface *ife) - if (ioctl(skfd, SIOCGOUTFILL, &ifr) < 0) - ife->outfill = 0; - else -- ife->outfill = (unsigned int) ifr.ifr_data; -+ ife->outfill = (unsigned long) ifr.ifr_data; - #endif - #ifdef SIOCGKEEPALIVE - strcpy(ifr.ifr_name, ifname); - if (ioctl(skfd, SIOCGKEEPALIVE, &ifr) < 0) - ife->keepalive = 0; - else -- ife->keepalive = (unsigned int) ifr.ifr_data; -+ ife->keepalive = (unsigned long) ifr.ifr_data; - #endif - } - #endif diff --git a/net-tools-1.60-arbitrary-device-names.patch b/net-tools-1.60-arbitrary-device-names.patch index 8d3533f..112bf10 100644 --- a/net-tools-1.60-arbitrary-device-names.patch +++ b/net-tools-1.60-arbitrary-device-names.patch @@ -1,12 +1,12 @@ diff -up net-tools-1.60/man/en_US/mii-tool.8.arbitrary-device-names net-tools-1.60/man/en_US/mii-tool.8 ---- net-tools-1.60/man/en_US/mii-tool.8.arbitrary-device-names 2011-03-07 16:41:22.000000000 +0100 -+++ net-tools-1.60/man/en_US/mii-tool.8 2011-03-07 16:41:22.000000000 +0100 -@@ -16,7 +16,7 @@ mii-tool \- view, manipulate media-indep +--- net-tools-1.60/man/en_US/mii-tool.8.arbitrary-device-names 2011-12-06 14:45:07.000000000 +0100 ++++ net-tools-1.60/man/en_US/mii-tool.8 2011-12-06 14:47:48.406520671 +0100 +@@ -16,7 +16,7 @@ mii\-tool \- view, manipulate media-inde [\fB\-l\fR, \fB\-\-log\fR] [\fB\-A\fR, \fB\-\-advertise=\fImedia,...\fR] [\fB\-F\fR, \fB\-\-force=\fImedia\fR] -.RI [ "interface\ ..." ] -+.RI "interface\ ..." ++.RI "interface\ ..." .SH NOTE .P @@ -15,25 +15,25 @@ diff -up net-tools-1.60/man/en_US/mii-tool.8.arbitrary-device-names net-tools-1. .PP The default short output reports the negotiated link speed and link -status for each interface. If an interface or interfaces are not --specified on the command line, then \fBmii-tool\fR will check any +-specified on the command line, then \fBmii\-tool\fR will check any -available interfaces from \fBeth0\fR through \fBeth7\fR. +status for each interface. .SH OPTIONS .TP \fB\-v\fR, \fB\-\-verbose\fR diff -up net-tools-1.60/mii-tool.c.arbitrary-device-names net-tools-1.60/mii-tool.c ---- net-tools-1.60/mii-tool.c.arbitrary-device-names 2011-03-07 16:41:22.000000000 +0100 -+++ net-tools-1.60/mii-tool.c 2011-03-07 16:44:52.000000000 +0100 -@@ -419,7 +419,7 @@ static void watch_one_xcvr(int skfd, cha +--- net-tools-1.60/mii-tool.c.arbitrary-device-names 2011-12-06 14:45:07.000000000 +0100 ++++ net-tools-1.60/mii-tool.c 2011-12-06 14:53:39.823127359 +0100 +@@ -424,7 +424,7 @@ static void watch_one_xcvr(int skfd, cha /*--------------------------------------------------------------------*/ - const char *usage = "\ --usage: %s [-VvRrwl] [-A media,... | -F media] [interface ...]\n\ -+usage: %s [-VvRrwl] [-A media,... | -F media] ...\n\ - -V, --version display version information\n\ - -v, --verbose more verbose output\n\ - -R, --reset reset MII to poweron state\n\ -@@ -474,13 +474,10 @@ int main(int argc, char **argv) + const char *usage = +-"usage: %s [-VvRrwl] [-A media,... | -F media] [interface ...]\n" ++"usage: %s [-VvRrwl] [-A media,... | -F media] \n" + " -V, --version display version information\n" + " -v, --verbose more verbose output\n" + " -R, --reset reset MII to poweron state\n" +@@ -491,13 +491,10 @@ int main(int argc, char **argv) /* No remaining args means show all interfaces. */ if (optind == argc) { @@ -51,7 +51,7 @@ diff -up net-tools-1.60/mii-tool.c.arbitrary-device-names net-tools-1.60/mii-too } else { ret = 0; for (i = optind; i < argc; i++) { -@@ -491,15 +488,8 @@ int main(int argc, char **argv) +@@ -508,15 +505,8 @@ int main(int argc, char **argv) if (opt_watch && (ret == 0)) { while (1) { sleep(1); diff --git a/net-tools-1.60-bcast.patch b/net-tools-1.60-bcast.patch index 9489e26..92afdf6 100644 --- a/net-tools-1.60-bcast.patch +++ b/net-tools-1.60-bcast.patch @@ -1,6 +1,7 @@ ---- net-tools-1.60/ifconfig.c.broadcast 2004-11-03 12:05:30.000000000 +0100 -+++ net-tools-1.60/ifconfig.c 2004-11-04 15:39:32.817077232 +0100 -@@ -36,6 +36,7 @@ +diff -up net-tools-1.60/ifconfig.c.bcast net-tools-1.60/ifconfig.c +--- net-tools-1.60/ifconfig.c.bcast 2011-11-21 02:31:57.000000000 +0100 ++++ net-tools-1.60/ifconfig.c 2011-12-02 16:16:06.793742329 +0100 +@@ -35,6 +35,7 @@ #include #include #include @@ -8,70 +9,56 @@ #include #include #include -@@ -138,6 +139,7 @@ - perror("SIOCSIFFLAGS"); - return -1; - } -+ - return (0); - } - -@@ -212,17 +214,41 @@ - exit(0); +@@ -239,9 +240,12 @@ static void version(void) + exit(E_USAGE); } -static int set_netmask(int skfd, struct ifreq *ifr, struct sockaddr *sa) +static int set_netmask(int skfd, struct ifreq *ifr, struct sockaddr *sa, int new_bcast) { int err = 0; -- -- memcpy((char *) &ifr->ifr_netmask, (char *) sa, -- sizeof(struct sockaddr)); -+ struct sockaddr_in * ip_addr, * netmask, *bcast; ++ struct sockaddr_in * ip_addr, * netmask, *bcast; + struct ifreq ifraddr; -+ struct ifreq ifrbcast; -+ -+ memcpy((char *) &ifr->ifr_netmask, (char *) sa, -+ sizeof(struct sockaddr)); - if (ioctl(skfd, SIOCSIFNETMASK, ifr) < 0) { - fprintf(stderr, "SIOCSIFNETMASK: %s\n", ++ struct ifreq ifrbcast; + + memcpy((char *) &ifr->ifr_netmask, (char *) sa, + sizeof(struct sockaddr)); +@@ -250,6 +254,25 @@ static int set_netmask(int skfd, struct strerror(errno)); err = 1; } -+ -+ if (new_bcast) { -+ memcpy(&ifraddr,ifr,sizeof(struct ifreq)); -+ memcpy(&ifrbcast,ifr,sizeof(struct ifreq)); -+ -+ if (ioctl(skfd, SIOCGIFADDR, &ifraddr) < 0) { -+ fprintf(stderr, "SIOCGIFADDR: %s\n", strerror(errno)); -+ err = 1; -+ } -+ -+ ip_addr = (struct sockaddr_in *)&ifraddr.ifr_addr; -+ netmask = (struct sockaddr_in *)&ifr->ifr_netmask; -+ bcast = (struct sockaddr_in *)&ifrbcast.ifr_broadaddr; -+ /* calculate new broadcast adress */ -+ bcast->sin_addr.s_addr = ip_addr->sin_addr.s_addr | ~netmask->sin_addr.s_addr; -+ /* set new broadcast adress */ -+ if (ioctl(skfd, SIOCSIFBRDADDR, &ifrbcast) < 0) { -+ fprintf(stderr, "SIOCSIFBROADCAST: %s\n", strerror(errno)); -+ err = 1; -+ } ++ ++ if (new_bcast) { ++ memcpy(&ifraddr,ifr,sizeof(struct ifreq)); ++ memcpy(&ifrbcast,ifr,sizeof(struct ifreq)); ++ if (ioctl(skfd, SIOCGIFADDR, &ifraddr) < 0) { ++ fprintf(stderr, "SIOCGIFADDR: %s\n", strerror(errno)); ++ err = 1; ++ } ++ ip_addr = (struct sockaddr_in *)&ifraddr.ifr_addr; ++ netmask = (struct sockaddr_in *)&ifr->ifr_netmask; ++ bcast = (struct sockaddr_in *)&ifrbcast.ifr_broadaddr; ++ /* calculate new broadcast adress */ ++ bcast->sin_addr.s_addr = ip_addr->sin_addr.s_addr | ~netmask->sin_addr.s_addr; ++ /* set new broadcast adress */ ++ if (ioctl(skfd, SIOCSIFBRDADDR, &ifrbcast) < 0) { ++ fprintf(stderr, "SIOCSIFBROADCAST: %s\n", strerror(errno)); ++ err = 1; ++ } + } - return 0; + return err; } -@@ -234,7 +260,7 @@ +@@ -262,7 +285,7 @@ int main(int argc, char **argv) struct aftype *ap; struct hwtype *hw; struct ifreq ifr; -- int goterr = 0, didnetmask = 0, donetmask = 0; -+ int goterr = 0, didnetmask = 0, donetmask = 0, dobcast = 1; +- int goterr = 0, didnetmask = 0, neednetmask=0; ++ int goterr = 0, didnetmask = 0, neednetmask=0, dobcast = 1; char **spp; int fd; #if HAVE_AFINET6 -@@ -506,6 +532,7 @@ +@@ -547,6 +570,7 @@ int main(int argc, char **argv) strerror(errno)); goterr = 1; } @@ -79,21 +66,21 @@ spp++; } goterr |= set_flag(ifr.ifr_name, IFF_BROADCAST); -@@ -542,7 +569,7 @@ +@@ -589,7 +613,7 @@ int main(int argc, char **argv) continue; } didnetmask++; -- goterr = set_netmask(ap->fd, &ifr, &sa); -+ goterr = set_netmask(ap->fd, &ifr, &sa, dobcast); +- goterr |= set_netmask(ap->fd, &ifr, &sa); ++ goterr |= set_netmask(ap->fd, &ifr, &sa, dobcast); spp++; continue; } -@@ -964,7 +991,7 @@ - /* set CIDR netmask */ - if (donetmask) { - donetmask = 0; -- goterr = set_netmask(skfd, &ifr, &sa_netmask); -+ goterr = set_netmask(skfd, &ifr, &sa_netmask, dobcast); - didnetmask++; - } +@@ -1045,7 +1069,7 @@ int main(int argc, char **argv) + } + + if (neednetmask) { +- goterr |= set_netmask(skfd, &ifr, &samask); ++ goterr |= set_netmask(skfd, &ifr, &samask, dobcast); + didnetmask++; + } diff --git a/net-tools-1.60-clear-flag.patch b/net-tools-1.60-clear-flag.patch index b8f3c59..b510ac3 100644 --- a/net-tools-1.60-clear-flag.patch +++ b/net-tools-1.60-clear-flag.patch @@ -1,6 +1,7 @@ ---- net-tools-1.60/ifconfig.c.clear-flag 2008-07-08 11:21:33.000000000 +0200 -+++ net-tools-1.60/ifconfig.c 2008-07-08 11:22:55.000000000 +0200 -@@ -465,7 +465,7 @@ int main(int argc, char **argv) +diff -up net-tools-1.60/ifconfig.c.clear-flag net-tools-1.60/ifconfig.c +--- net-tools-1.60/ifconfig.c.clear-flag 2011-12-06 12:58:18.000000000 +0100 ++++ net-tools-1.60/ifconfig.c 2011-12-06 13:02:37.881413090 +0100 +@@ -464,7 +464,7 @@ int main(int argc, char **argv) } if (!strcmp(*spp, "-allmulti")) { goterr |= clr_flag(ifr.ifr_name, IFF_ALLMULTI); @@ -10,15 +11,15 @@ spp++; continue; @@ -488,7 +488,7 @@ int main(int argc, char **argv) - } if (!strcmp(*spp, "-dynamic")) { goterr |= clr_flag(ifr.ifr_name, IFF_DYNAMIC); + spp++; - if (test_flag(ifr.ifr_name, IFF_MULTICAST) > 0) + if (test_flag(ifr.ifr_name, IFF_DYNAMIC) > 0) fprintf(stderr, _("Warning: Interface %s still in DYNAMIC mode.\n"), ifr.ifr_name); - spp++; continue; -@@ -547,7 +547,7 @@ int main(int argc, char **argv) + } +@@ -546,7 +546,7 @@ int main(int argc, char **argv) if (!strcmp(*spp, "-broadcast")) { goterr |= clr_flag(ifr.ifr_name, IFF_BROADCAST); @@ -27,12 +28,12 @@ fprintf(stderr, _("Warning: Interface %s still in BROADCAST mode.\n"), ifr.ifr_name); spp++; continue; -@@ -676,7 +676,7 @@ int main(int argc, char **argv) - } +@@ -685,7 +685,7 @@ int main(int argc, char **argv) if (!strcmp(*spp, "-pointopoint")) { goterr |= clr_flag(ifr.ifr_name, IFF_POINTOPOINT); + spp++; - if (test_flag(ifr.ifr_name, IFF_MULTICAST) > 0) + if (test_flag(ifr.ifr_name, IFF_POINTOPOINT) > 0) fprintf(stderr, _("Warning: Interface %s still in POINTOPOINT mode.\n"), ifr.ifr_name); - spp++; continue; + } diff --git a/net-tools-1.60-coverity.patch b/net-tools-1.60-coverity.patch index e50bef5..e21bb75 100644 --- a/net-tools-1.60-coverity.patch +++ b/net-tools-1.60-coverity.patch @@ -1,20 +1,19 @@ diff -up net-tools-1.60/ipmaddr.c.coverity net-tools-1.60/ipmaddr.c ---- net-tools-1.60/ipmaddr.c.coverity 2001-04-08 19:04:23.000000000 +0200 -+++ net-tools-1.60/ipmaddr.c 2011-04-28 16:35:24.000000000 +0200 -@@ -160,7 +160,11 @@ void read_dev_mcast(struct ma_info **res +--- net-tools-1.60/ipmaddr.c.coverity 2011-11-21 02:31:57.000000000 +0100 ++++ net-tools-1.60/ipmaddr.c 2011-12-06 15:16:27.210032670 +0100 +@@ -160,6 +160,11 @@ void read_dev_mcast(struct ma_info **res len = parse_hex(hexa, (unsigned char*)&m.addr.data); if (len >= 0) { struct ma_info *ma = malloc(sizeof(m)); -- + if (!ma) { + fprintf(stderr, "couldn't allocate memory\n"); + fclose(fp); + return; + } + memcpy(ma, &m, sizeof(m)); ma->addr.bytelen = len; - ma->addr.bitlen = len<<3; -@@ -174,7 +178,7 @@ void read_dev_mcast(struct ma_info **res +@@ -174,7 +179,7 @@ void read_dev_mcast(struct ma_info **res void read_igmp(struct ma_info **result_p) { @@ -23,7 +22,7 @@ diff -up net-tools-1.60/ipmaddr.c.coverity net-tools-1.60/ipmaddr.c char buf[256]; FILE *fp = fopen(_PATH_PROCNET_IGMP, "r"); -@@ -188,8 +192,6 @@ void read_igmp(struct ma_info **result_p +@@ -188,8 +193,6 @@ void read_igmp(struct ma_info **result_p m.addr.bytelen = 4; while (fgets(buf, sizeof(buf), fp)) { @@ -32,7 +31,7 @@ diff -up net-tools-1.60/ipmaddr.c.coverity net-tools-1.60/ipmaddr.c if (buf[0] != '\t') { sscanf(buf, "%d%s", &m.index, m.name); continue; -@@ -201,6 +203,12 @@ void read_igmp(struct ma_info **result_p +@@ -201,6 +204,12 @@ void read_igmp(struct ma_info **result_p sscanf(buf, "%08x%d", (__u32*)&m.addr.data, &m.users); ma = malloc(sizeof(m)); @@ -45,7 +44,7 @@ diff -up net-tools-1.60/ipmaddr.c.coverity net-tools-1.60/ipmaddr.c memcpy(ma, &m, sizeof(m)); maddr_ins(result_p, ma); } -@@ -232,6 +240,11 @@ void read_igmp6(struct ma_info **result_ +@@ -232,6 +241,11 @@ void read_igmp6(struct ma_info **result_ len = parse_hex(hexa, (unsigned char*)&m.addr.data); if (len >= 0) { struct ma_info *ma = malloc(sizeof(m)); @@ -58,8 +57,8 @@ diff -up net-tools-1.60/ipmaddr.c.coverity net-tools-1.60/ipmaddr.c memcpy(ma, &m, sizeof(m)); diff -up net-tools-1.60/iptunnel.c.coverity net-tools-1.60/iptunnel.c ---- net-tools-1.60/iptunnel.c.coverity 2001-04-08 19:04:23.000000000 +0200 -+++ net-tools-1.60/iptunnel.c 2011-04-28 15:26:06.000000000 +0200 +--- net-tools-1.60/iptunnel.c.coverity 2011-11-21 02:31:57.000000000 +0100 ++++ net-tools-1.60/iptunnel.c 2011-12-06 15:17:25.231307304 +0100 @@ -485,6 +485,7 @@ static int do_tunnels_list(struct ip_tun if ((ptr = strchr(buf, ':')) == NULL || (*ptr++ = 0, sscanf(buf, "%s", name) != 1)) { @@ -77,8 +76,8 @@ diff -up net-tools-1.60/iptunnel.c.coverity net-tools-1.60/iptunnel.c } diff -up net-tools-1.60/lib/inet.c.coverity net-tools-1.60/lib/inet.c ---- net-tools-1.60/lib/inet.c.coverity 2000-05-22 23:27:13.000000000 +0200 -+++ net-tools-1.60/lib/inet.c 2011-04-28 14:39:06.000000000 +0200 +--- net-tools-1.60/lib/inet.c.coverity 2011-11-21 02:31:57.000000000 +0100 ++++ net-tools-1.60/lib/inet.c 2011-12-06 15:20:21.183107604 +0100 @@ -211,10 +211,18 @@ static int INET_rresolve(char *name, siz if ((ent == NULL) && (np == NULL)) safe_strncpy(name, inet_ntoa(sin->sin_addr), len); @@ -126,29 +125,9 @@ diff -up net-tools-1.60/lib/inet.c.coverity net-tools-1.60/lib/inet.c item->name = strdup(pe->p_name); item->number = htons(pe->p_proto); add2list(&raw_name, item); -diff -up net-tools-1.60/lib/ipx_gr.c.coverity net-tools-1.60/lib/ipx_gr.c ---- net-tools-1.60/lib/ipx_gr.c.coverity 2011-04-21 14:00:20.000000000 +0200 -+++ net-tools-1.60/lib/ipx_gr.c 2011-04-28 14:16:49.000000000 +0200 -@@ -38,7 +38,7 @@ int IPX_rprint(int options) - char net[128], router_net[128]; - char router_node[128]; - int num; -- FILE *fp = fopen(_PATH_PROCNET_IPX_ROUTE, "r"); -+ FILE *fp = NULL; - struct aftype *ap; - struct sockaddr sa; - -@@ -47,6 +47,7 @@ int IPX_rprint(int options) - return (-1); - } - -+ fp = fopen(_PATH_PROCNET_IPX_ROUTE, "r"); - if (!fp) { - perror(_PATH_PROCNET_IPX_ROUTE); - printf(_("IPX not configured in this system.\n")); diff -up net-tools-1.60/lib/masq_info.c.coverity net-tools-1.60/lib/masq_info.c ---- net-tools-1.60/lib/masq_info.c.coverity 2011-04-21 14:00:20.000000000 +0200 -+++ net-tools-1.60/lib/masq_info.c 2011-04-28 15:34:06.000000000 +0200 +--- net-tools-1.60/lib/masq_info.c.coverity 2011-11-21 02:31:57.000000000 +0100 ++++ net-tools-1.60/lib/masq_info.c 2011-12-06 15:22:21.768600077 +0100 @@ -208,10 +208,9 @@ int ip_masq_info(int numeric_host, int n } for (i = 0; i < ntotal; i++) @@ -158,13 +137,13 @@ diff -up net-tools-1.60/lib/masq_info.c.coverity net-tools-1.60/lib/masq_info.c - } + if (mslist) -+ free(mslist); ++ free(mslist); return 0; } #endif diff -up net-tools-1.60/lib/netrom_gr.c.coverity net-tools-1.60/lib/netrom_gr.c ---- net-tools-1.60/lib/netrom_gr.c.coverity 2000-10-28 12:59:42.000000000 +0200 -+++ net-tools-1.60/lib/netrom_gr.c 2011-04-28 14:15:38.000000000 +0200 +--- net-tools-1.60/lib/netrom_gr.c.coverity 2011-11-21 02:31:57.000000000 +0100 ++++ net-tools-1.60/lib/netrom_gr.c 2011-12-06 15:23:34.471691164 +0100 @@ -39,9 +39,7 @@ int NETROM_rprint(int options) /*int ext = options & FLAG_EXT; int numeric = options & FLAG_NUM_HOST; */ @@ -176,9 +155,9 @@ diff -up net-tools-1.60/lib/netrom_gr.c.coverity net-tools-1.60/lib/netrom_gr.c if (f1 == NULL || f2 == NULL) { diff -up net-tools-1.60/lib/x25.c.coverity net-tools-1.60/lib/x25.c ---- net-tools-1.60/lib/x25.c.coverity 2011-04-21 14:00:20.000000000 +0200 -+++ net-tools-1.60/lib/x25.c 2011-04-28 15:01:47.000000000 +0200 -@@ -106,7 +106,8 @@ X25_input(int type, char *bufp, struct s +--- net-tools-1.60/lib/x25.c.coverity 2011-11-21 02:31:57.000000000 +0100 ++++ net-tools-1.60/lib/x25.c 2011-12-06 15:24:37.189907079 +0100 +@@ -105,7 +105,8 @@ X25_input(int type, char *bufp, struct s } if (strlen(bufp) < 1 || strlen(bufp) > 15 || sigdigits > strlen(bufp)) { @@ -187,10 +166,10 @@ diff -up net-tools-1.60/lib/x25.c.coverity net-tools-1.60/lib/x25.c + *p = '/'; strcpy(X25_errmsg, _("Invalid address")); #ifdef DEBUG - fprintf(stderr, "x25_input(%s): %s !\n", bufp, X25_errmsg); + fprintf(stderr, "x25_input(%s): %s !\n", X25_errmsg, orig); diff -up net-tools-1.60/nameif.c.coverity net-tools-1.60/nameif.c ---- net-tools-1.60/nameif.c.coverity 2011-04-21 14:00:20.000000000 +0200 -+++ net-tools-1.60/nameif.c 2011-04-28 15:55:20.000000000 +0200 +--- net-tools-1.60/nameif.c.coverity 2011-12-06 15:12:17.000000000 +0100 ++++ net-tools-1.60/nameif.c 2011-12-06 15:28:06.417291375 +0100 @@ -154,6 +154,7 @@ void readconf(void) FILE *ifh; char *p; @@ -199,18 +178,17 @@ diff -up net-tools-1.60/nameif.c.coverity net-tools-1.60/nameif.c ifh = fopen(fname, "r"); if (!ifh) -@@ -163,7 +164,7 @@ void readconf(void) +@@ -163,7 +164,6 @@ void readconf(void) linel = 0; linenum = 1; while (getdelim(&line, &linel, '\n', ifh) > 0) { - struct change *ch = xmalloc(sizeof(struct change)); -+ char pos[20]; sprintf(pos, _("line %d"), linenum); -@@ -178,6 +179,11 @@ void readconf(void) +@@ -178,6 +178,11 @@ void readconf(void) n = strcspn(p, " \t"); - if (n > IFNAMSIZ) + if (n > IFNAMSIZ-1) complain(_("interface name too long at line %d"), line); + ch = xmalloc(sizeof(struct change)); + if (!ch) { @@ -221,9 +199,9 @@ diff -up net-tools-1.60/nameif.c.coverity net-tools-1.60/nameif.c ch->ifname[n] = 0; p += n; diff -up net-tools-1.60/netstat.c.coverity net-tools-1.60/netstat.c ---- net-tools-1.60/netstat.c.coverity 2011-04-21 14:00:20.000000000 +0200 -+++ net-tools-1.60/netstat.c 2011-04-28 15:58:44.000000000 +0200 -@@ -461,6 +461,8 @@ static void prg_cache_load(void) +--- net-tools-1.60/netstat.c.coverity 2011-12-06 15:12:17.000000000 +0100 ++++ net-tools-1.60/netstat.c 2011-12-06 15:32:36.060920366 +0100 +@@ -434,6 +434,8 @@ static void prg_cache_load(void) PATH_FD_SUFFl+1); strcpy(line + procfdlen + 1, direfd->d_name); lnamelen=readlink(line,lname,sizeof(lname)-1); @@ -231,17 +209,17 @@ diff -up net-tools-1.60/netstat.c.coverity net-tools-1.60/netstat.c + continue; lname[lnamelen] = '\0'; /*make it a null-terminated string*/ - extract_type_1_socket_inode(lname, &inode, &status); -@@ -902,7 +904,7 @@ static int x25_info(void) + if (extract_type_1_socket_inode(lname, &inode) < 0) +@@ -833,7 +835,7 @@ static int x25_info(void) "ESTABLISHED", "RECOVERY" }; -- if(!(f=fopen(_PATH_PROCNET_X25, "r"))) +- if(!(f=proc_fopen(_PATH_PROCNET_X25))) + if(!f) { if (errno != ENOENT) { perror(_PATH_PROCNET_X25); -@@ -1931,6 +1933,7 @@ static int ipx_info(void) +@@ -1716,6 +1718,7 @@ static int ipx_info(void) printf("\n"); if ((ap = get_afntype(AF_IPX)) == NULL) { EINTERN("netstat.c", "AF_IPX missing"); @@ -249,18 +227,18 @@ diff -up net-tools-1.60/netstat.c.coverity net-tools-1.60/netstat.c return (-1); } fgets(buf, 255, f); -@@ -1944,6 +1947,7 @@ static int ipx_info(void) +@@ -1729,6 +1732,7 @@ static int ipx_info(void) sport = ntohs(sport); } else { - EINTERN("netstat.c", _PATH_PROCNET_IPX " sport format error"); + EINTERN("netstat.c", "ipx socket format error in source port"); + fclose(f); return (-1); } nc = 0; -@@ -1954,6 +1958,7 @@ static int ipx_info(void) +@@ -1739,6 +1743,7 @@ static int ipx_info(void) dport = ntohs(dport); } else { - EINTERN("netstat.c", _PATH_PROCNET_IPX " dport format error"); + EINTERN("netstat.c", "ipx soket format error in destination port"); + fclose(f); return (-1); } diff --git a/net-tools-1.60-cycle.patch b/net-tools-1.60-cycle.patch index 324286a..9d65546 100644 --- a/net-tools-1.60-cycle.patch +++ b/net-tools-1.60-cycle.patch @@ -1,32 +1,34 @@ ---- net-tools-1.60/lib/interface.c.cycle 2003-02-11 14:29:29.000000000 +0100 -+++ net-tools-1.60/lib/interface.c 2003-02-11 14:29:29.000000000 +0100 -@@ -90,6 +90,7 @@ +diff -up net-tools-1.60/lib/interface.c.cycle net-tools-1.60/lib/interface.c +--- net-tools-1.60/lib/interface.c.cycle 2011-12-06 16:23:45.051552704 +0100 ++++ net-tools-1.60/lib/interface.c 2011-12-06 16:23:45.115551904 +0100 +@@ -93,6 +93,7 @@ int if_list_all = 0; /* do we have reque static struct interface *int_list, *int_last; static int if_readlist_proc(char *); +static int if_readlist_rep(char *, struct interface *); - static struct interface *add_interface(char *name) + static struct interface *if_cache_add(char *name) { -@@ -128,11 +129,13 @@ +@@ -138,11 +139,14 @@ struct interface *lookup_interface(char int for_all_interfaces(int (*doit) (struct interface *, void *), void *cookie) { struct interface *ife; + int err; - if (!int_list && (if_readlist() < 0)) + if (!if_list_all && (if_readlist() < 0)) return -1; for (ife = int_list; ife; ife = ife->next) { - int err = doit(ife, cookie); -+ if_readlist_rep(ife->name, ife); ++ if_readlist_rep(ife->name, ife); + err = doit(ife, cookie); ++ if (err) return err; } -@@ -369,6 +372,42 @@ +@@ -376,6 +380,41 @@ static int if_readlist_proc(char *target + fclose(fh); return err; } - + +static int if_readlist_rep(char *target, struct interface *ife) +{ @@ -62,59 +64,60 @@ + fclose(fh); + return err; +} -+ + int if_readlist(void) { - int err = if_readlist_proc(NULL); ---- net-tools-1.60/man/en_US/netstat.8.cycle 2001-01-07 13:43:57.000000000 +0100 -+++ net-tools-1.60/man/en_US/netstat.8 2003-02-11 14:29:29.000000000 +0100 -@@ -30,6 +30,7 @@ - .RB [ \-\-program | \-p ] +diff -up net-tools-1.60/man/en_US/netstat.8.cycle net-tools-1.60/man/en_US/netstat.8 +--- net-tools-1.60/man/en_US/netstat.8.cycle 2011-11-21 02:31:57.000000000 +0100 ++++ net-tools-1.60/man/en_US/netstat.8 2011-12-06 16:23:45.115551904 +0100 +@@ -33,6 +33,7 @@ netstat \- Print network connections, ro .RB [ \-\-verbose | \-v ] .RB [ \-\-continuous | \-c] + .RB [ \-\-wide | \-W] +.RB [delay] .P .B netstat .RB { \-\-route | \-r } -@@ -39,6 +40,7 @@ +@@ -42,6 +43,7 @@ netstat \- Print network connections, ro .RB [ \-\-numeric | \-n ] - .RB [ \-\-numeric-hosts ] [ \-\-numeric-ports ] [ \-\-numeric-ports ] + .RB [ \-\-numeric\-hosts "] [" \-\-numeric\-ports "] [" \-\-numeric\-users ] .RB [ \-\-continuous | \-c] +.RB [delay] .P .B netstat .RB { \-\-interfaces | \-i } -@@ -50,12 +52,14 @@ +@@ -52,12 +54,14 @@ netstat \- Print network connections, ro .RB [ \-\-numeric | \-n ] - .RB [ \-\-numeric-hosts ] [ \-\-numeric-ports ] [ \-\-numeric-ports ] + .RB [ \-\-numeric-hosts "] [" \-\-numeric-ports "] [" \-\-numeric-users ] .RB [ \-\-continuous | \-c] +.RB [delay] .P .B netstat .RB { \-\-groups | \-g } .RB [ \-\-numeric | \-n ] - .RB [ \-\-numeric-hosts ] [ \-\-numeric-ports ] [ \-\-numeric-ports ] + .RB [ \-\-numeric\-hosts "] [" \-\-numeric\-ports "] [" \-\-numeric\-users ] .RB [ \-\-continuous | \-c] +.RB [delay] .P .B netstat .RB { \-\-masquerade | \-M } -@@ -63,12 +67,14 @@ +@@ -65,6 +69,7 @@ netstat \- Print network connections, ro .RB [ \-\-numeric | \-n ] - .RB [ \-\-numeric-hosts ] [ \-\-numeric-ports ] [ \-\-numeric-ports ] + .RB [ \-\-numeric\-hosts "] [" \-\-numeric\-ports "] [" \-\-numeric\-users ] .RB [ \-\-continuous | \-c] +.RB [delay] .P .B netstat .RB { \-\-statistics | -s } - .RB [ \-\-tcp | \-t ] +@@ -72,6 +77,7 @@ netstat \- Print network connections, ro .RB [ \-\-udp | \-u ] + .RB [ \-\-udplite | \-U ] .RB [ \-\-raw | \-w ] +.RB [delay] .P .B netstat .RB { \-\-version | \-V } -@@ -170,6 +176,10 @@ +@@ -188,6 +194,10 @@ option, show interfaces that are not up Print routing information from the FIB. (This is the default.) .SS "\-C" Print routing information from the route cache. @@ -122,21 +125,38 @@ +Netstat will cycle printing through statistics every +.B delay +seconds. - .IR UP . .P .SH OUTPUT ---- net-tools-1.60/netstat.c.cycle 2003-02-11 14:29:29.000000000 +0100 -+++ net-tools-1.60/netstat.c 2003-02-11 15:07:26.000000000 +0100 -@@ -102,7 +102,7 @@ + .P +diff -up net-tools-1.60/netstat.c.cycle net-tools-1.60/netstat.c +--- net-tools-1.60/netstat.c.cycle 2011-12-06 16:23:45.052552691 +0100 ++++ net-tools-1.60/netstat.c 2011-12-06 16:23:45.116551892 +0100 +@@ -106,9 +106,9 @@ #endif /* prototypes for statistics.c */ -void parsesnmp(int, int, int); +int parsesnmp(int, int, int); void inittab(void); +-void parsesnmp6(int, int, int); ++int parsesnmp6(int, int, int); + void inittab6(void); typedef enum { -@@ -1440,6 +1440,8 @@ +@@ -302,10 +302,10 @@ static void prg_cache_clear(void) + prg_cache_loaded=0; + } + +-static void wait_continous(void) ++static void wait_continous(int reptimer) + { + fflush(stdout); +- sleep(1); ++ sleep(reptimer); + } + + static int extract_type_1_socket_inode(const char lname[], unsigned long * inode_p) { +@@ -1610,6 +1610,8 @@ static int ipx_info(void) static int iface_info(void) { @@ -145,7 +165,7 @@ if (skfd < 0) { if ((skfd = sockets_open(0)) < 0) { perror("socket"); -@@ -1449,20 +1451,21 @@ +@@ -1619,20 +1621,21 @@ static int iface_info(void) } if (flag_exp < 2) { ife_short = 1; @@ -160,7 +180,7 @@ } - if (flag_cnt) + if (!flag_cnt) { - free_interface_list(); + if_cache_free(); - else { close(skfd); skfd = -1; @@ -170,24 +190,24 @@ return 0; } -@@ -1478,7 +1481,7 @@ +@@ -1648,7 +1651,7 @@ static void usage(void) { - fprintf(stderr, _("usage: netstat [-veenNcCF] [] -r netstat {-V|--version|-h|--help}\n")); - fprintf(stderr, _(" netstat [-vnNcaeol] [ ...]\n")); -- fprintf(stderr, _(" netstat { [-veenNac] -i | [-cnNe] -M | -s }\n\n")); -+ fprintf(stderr, _(" netstat { [-veenNac] -i | [-cnNe] -M | -s } [delay]\n\n")); + fprintf(stderr, _("usage: netstat [-vWeenNcCF] [] -r netstat {-V|--version|-h|--help}\n")); + fprintf(stderr, _(" netstat [-vWnNcaeol] [ ...]\n")); +- fprintf(stderr, _(" netstat { [-vWeenNac] -i | [-cnNe] -M | -s [-6tuw] }\n\n")); ++ fprintf(stderr, _(" netstat { [-vWeenNac] -i | [-cnNe] -M | -s [-6tuw] } [delay]\n\n")); fprintf(stderr, _(" -r, --route display routing table\n")); fprintf(stderr, _(" -i, --interfaces display interface table\n")); -@@ -1514,6 +1517,7 @@ +@@ -1685,6 +1688,7 @@ int main (int argc, char *argv[]) { int i; int lop; + int reptimer = 1; - struct option longopts[] = + static struct option longopts[] = { AFTRANS_OPTS, -@@ -1655,6 +1659,12 @@ +@@ -1844,6 +1848,12 @@ int main flag_sta++; } @@ -200,88 +220,99 @@ if (flag_int + flag_rou + flag_mas + flag_sta > 1) usage(); -@@ -1666,7 +1676,7 @@ - - flag_arg = flag_tcp + flag_udp + flag_raw + flag_unx + flag_ipx - + flag_ax25 + flag_netrom + flag_igmp + flag_x25; -- -+ - if (flag_mas) { - #if HAVE_FW_MASQUERADE && HAVE_AFINET - #if MORE_THAN_ONE_MASQ_AF -@@ -1678,7 +1688,7 @@ +@@ -1869,7 +1879,7 @@ int main flag_not & FLAG_NUM_PORT, flag_exp); if (i || !flag_cnt) break; -- sleep(1); -+ sleep(reptimer); +- wait_continous(); ++ wait_continous(reptimer); } #else - ENOSUPP("netstat.c", "FW_MASQUERADE"); -@@ -1688,9 +1698,15 @@ - } - + ENOSUPP("netstat", "FW_MASQUERADE"); +@@ -1881,18 +1891,18 @@ int main if (flag_sta) { -+ for(;;) { - inittab(); -- parsesnmp(flag_raw, flag_tcp, flag_udp); -- exit(0); -+ i = parsesnmp(flag_raw, flag_tcp, flag_udp); -+ + if (!afname[0]) + strcpy(afname, DFLT_AF); +- ++ for (;;) { + if (!strcmp(afname, "inet")) { + #if HAVE_AFINET + inittab(); +- parsesnmp(flag_raw, flag_tcp, flag_udp); ++ i = parsesnmp(flag_raw, flag_tcp, flag_udp); + #else + ENOSUPP("netstat", "AF INET"); + #endif + } else if(!strcmp(afname, "inet6")) { + #if HAVE_AFINET6 + inittab6(); +- parsesnmp6(flag_raw, flag_tcp, flag_udp); ++ i = parsesnmp6(flag_raw, flag_tcp, flag_udp); + #else + ENOSUPP("netstat", "AF INET6"); + #endif +@@ -1900,7 +1910,11 @@ int main + printf(_("netstat: No statistics support for specified address family: %s\n"), afname); + exit(1); + } +- exit(0); + if(i || !flag_cnt) + break; + sleep(reptimer); -+ } -+ return(i); ++ } ++ return (i); } if (flag_rou) { -@@ -1712,7 +1728,7 @@ +@@ -1922,7 +1936,7 @@ int main i = route_info(afname, options); if (i || !flag_cnt) break; -- sleep(1); -+ sleep(reptimer); +- wait_continous(); ++ wait_continous(reptimer); } return (i); } -@@ -1721,7 +1737,7 @@ +@@ -1931,7 +1945,7 @@ int main i = iface_info(); if (!flag_cnt || i) break; -- sleep(1); -+ sleep(reptimer); +- wait_continous(); ++ wait_continous(reptimer); } return (i); } -@@ -1847,7 +1863,7 @@ - } +@@ -2084,7 +2098,7 @@ int main + if (!flag_cnt || i) break; -- sleep(1); -+ sleep(reptimer); +- wait_continous(); ++ wait_continous(reptimer); prg_cache_clear(); } return (i); ---- net-tools-1.60/statistics.c.cycle 2001-02-02 19:01:23.000000000 +0100 -+++ net-tools-1.60/statistics.c 2003-02-11 14:29:29.000000000 +0100 -@@ -338,7 +338,7 @@ - } +diff -up net-tools-1.60/statistics.c.cycle net-tools-1.60/statistics.c +--- net-tools-1.60/statistics.c.cycle 2011-11-21 02:31:57.000000000 +0100 ++++ net-tools-1.60/statistics.c 2011-12-06 16:24:24.062065007 +0100 +@@ -502,7 +502,7 @@ void process6_fd(FILE *f) + } -void parsesnmp(int flag_raw, int flag_tcp, int flag_udp) +int parsesnmp(int flag_raw, int flag_tcp, int flag_udp) { FILE *f; -@@ -347,12 +347,15 @@ - f = fopen("/proc/net/snmp", "r"); +@@ -511,14 +511,17 @@ void parsesnmp(int flag_raw, int flag_tc + f = proc_fopen("/proc/net/snmp"); if (!f) { perror(_("cannot open /proc/net/snmp")); - return; + return(1); } - process_fd(f); + + if (process_fd(f, 1, NULL) < 0) + fprintf(stderr, _("Problem while parsing /proc/net/snmp\n")); - if (ferror(f)) + if (ferror(f)) { @@ -292,9 +323,9 @@ fclose(f); -@@ -361,12 +363,15 @@ - if (f) { - process_fd(f); +@@ -528,15 +531,18 @@ void parsesnmp(int flag_raw, int flag_tc + if (process_fd(f, 1, NULL) <0) + fprintf(stderr, _("Problem while parsing /proc/net/netstat\n")); - if (ferror(f)) - perror("/proc/net/netstat"); @@ -302,7 +333,7 @@ + perror("/proc/net/netstat"); + fclose(f); + return(1); -+ } ++ } fclose(f); } @@ -310,4 +341,36 @@ + return(0); } +-void parsesnmp6(int flag_raw, int flag_tcp, int flag_udp) ++int parsesnmp6(int flag_raw, int flag_tcp, int flag_udp) + { + FILE *f; +@@ -545,7 +551,7 @@ void parsesnmp6(int flag_raw, int flag_t + f = fopen("/proc/net/snmp6", "r"); + if (!f) { + perror(_("cannot open /proc/net/snmp6")); +- return; ++ return(1); + } + process6_fd(f); + if (ferror(f)) +@@ -555,13 +561,16 @@ void parsesnmp6(int flag_raw, int flag_t + f = fopen("/proc/net/snmp", "r"); + if (!f) { + perror(_("cannot open /proc/net/snmp")); +- return; ++ return(1); + } + process_fd(f, 0, "Tcp"); +- if (ferror(f)) ++ if (ferror(f)) { + perror("/proc/net/snmp"); ++ return(1); ++ } + + fclose(f); ++ return(0); + } + + void inittab(void) diff --git a/net-tools-1.60-duplicate-tcp.patch b/net-tools-1.60-duplicate-tcp.patch index 1b6f3b0..1014dd9 100644 --- a/net-tools-1.60-duplicate-tcp.patch +++ b/net-tools-1.60-duplicate-tcp.patch @@ -1,6 +1,7 @@ ---- net-tools-1.60/netstat.c.foo Mon Apr 22 14:25:20 2002 -+++ net-tools-1.60/netstat.c Mon Apr 22 14:25:22 2002 -@@ -435,6 +435,162 @@ +diff -up net-tools-1.60/netstat.c.dup-tcp net-tools-1.60/netstat.c +--- net-tools-1.60/netstat.c.dup-tcp 2011-12-02 16:24:08.479720425 +0100 ++++ net-tools-1.60/netstat.c 2011-12-02 16:33:51.668429563 +0100 +@@ -449,6 +449,120 @@ static void prg_cache_load(void) " will not be shown, you would have to be root to see it all.)\n")); } @@ -117,76 +118,26 @@ + + return 0; +} -+ -+#if 0 -+static void tcp_node_hash_report_bucket_size(void) -+{ -+ int max = 0; -+ int min = 0; -+ int num = 0; -+ int total = 0; -+ struct tcp_node *tmp_node; -+ int tmp, i; -+ float avg; -+ -+ for (i=0; i < TCP_HASH_SIZE; i++) { -+ tmp_node = tcp_node_hash[i]; -+ if (!tmp_node) -+ continue; -+ -+ tmp = 0; -+ -+ num++; -+ tmp = 1; -+ -+ while (tmp_node) { -+ tmp++; -+ tmp_node = tmp_node->next; -+ } -+ -+ total += tmp; -+ if (tmp > max) -+ max = tmp; -+ -+ if (min == 0 || tmp < min) -+ min = tmp; -+ } -+ -+ avg = (float)total/(float)num; -+ -+ printf("%d nodes in %d buckets min/max/avg %d/%d/%.2f\n", -+ total, num, min, max, avg); -+ -+} -+#endif + #if HAVE_AFNETROM static const char *netrom_state[] = { -@@ -752,11 +908,20 @@ - fprintf(stderr, _("warning, got bogus tcp line.\n")); +@@ -960,6 +1074,12 @@ static void tcp_do_one(int lnr, const ch return; } -+ - if ((ap = get_afntype(((struct sockaddr *) &localaddr)->sa_family)) == NULL) { - fprintf(stderr, _("netstat: unsupported address family %d !\n"), - ((struct sockaddr *) &localaddr)->sa_family); - return; - } -+ + + /* make sure that we haven't seen this socket pair before */ -+ if (tcp_node_hash_check_and_append(local_addr, local_port, -+ rem_addr, rem_port) < 0) { -+ /* fprintf(stderr, _("warning, got duplicate tcp line.\n")); */ -+ return; ++ if (tcp_node_hash_check_and_append(local_addr, local_port, rem_addr, rem_port) < 0) { ++ /* fprintf(stderr, _("warning, got duplicate tcp line.\n")); */ ++ return; + } + - if (state == TCP_LISTEN) { - time_len = 0; - retr = 0L; -@@ -1880,6 +2045,7 @@ + addr_do_one(local_addr, sizeof(local_addr), 22, ap, &localaddr, local_port, "tcp"); + addr_do_one(rem_addr, sizeof(rem_addr), 22, ap, &remaddr, rem_port, "tcp"); + +@@ -2112,6 +2232,7 @@ int main break; - sleep(reptimer); + wait_continous(reptimer); prg_cache_clear(); + tcp_node_hash_clear(); } diff --git a/net-tools-1.60-fgets.patch b/net-tools-1.60-fgets.patch index 27641da..c15365b 100644 --- a/net-tools-1.60-fgets.patch +++ b/net-tools-1.60-fgets.patch @@ -1,18 +1,7 @@ -Fix for when arp_disp_2() is called without opt_n set. If there is a DNS lookup, an -entry is added to /proc/net/arp after fopen(), resulting in a duplicate entry. - ---- net-tools-1.60/arp.c.fgets 2005-12-10 14:52:04.000000000 -0500 -+++ net-tools-1.60/arp.c 2005-12-11 00:15:59.000000000 -0500 -@@ -528,7 +528,7 @@ static int arp_show(char *name) - int type, flags; - FILE *fp; - char *hostname; -- int num, entries = 0, showed = 0; -+ int num, entries, showed = 0; - - host[0] = '\0'; - -@@ -546,18 +546,21 @@ static int arp_show(char *name) +diff -up net-tools-1.60/arp.c.fgets net-tools-1.60/arp.c +--- net-tools-1.60/arp.c.fgets 2011-12-05 16:34:16.000000000 +0100 ++++ net-tools-1.60/arp.c 2011-12-05 16:54:52.683352733 +0100 +@@ -558,18 +558,21 @@ static int arp_show(char *name) perror(_PATH_PROCNET_ARP); return (-1); } @@ -26,12 +15,12 @@ entry is added to /proc/net/arp after fopen(), resulting in a duplicate entry. strcpy(dev, "-"); /* Read the ARP cache entries. */ - for (; fgets(line, sizeof(line), fp);) { -- num = sscanf(line, "%s 0x%x 0x%x %100s %100s %100s\n", +- num = sscanf(line, "%s 0x%x 0x%x %99s %99s %99s\n", - ip, &type, &flags, hwa, mask, dev); - if (num < 4) + for (num = 0; num < entries; num++) { + fgets(line, sizeof(line), fp); -+ if (sscanf(line, "%s 0x%x 0x%x %100s %100s %100s\n", ++ if (sscanf(line, "%s 0x%x 0x%x %99s %99s %99s\n", + ip, &type, &flags, hwa, mask, dev) < 4) break; diff --git a/net-tools-1.60-ib-warning.patch b/net-tools-1.60-ib-warning.patch index 3b0c9c6..38df67e 100644 --- a/net-tools-1.60-ib-warning.patch +++ b/net-tools-1.60-ib-warning.patch @@ -1,7 +1,7 @@ diff -up net-tools-1.60/lib/ib.c.ib-warning net-tools-1.60/lib/ib.c ---- net-tools-1.60/lib/ib.c.ib-warning 2009-09-01 13:45:55.000000000 +0200 -+++ net-tools-1.60/lib/ib.c 2009-09-01 13:47:43.000000000 +0200 -@@ -48,7 +48,10 @@ static char *pr_ib(unsigned char *ptr) +--- net-tools-1.60/lib/ib.c.ib-warning 2011-11-21 02:31:57.000000000 +0100 ++++ net-tools-1.60/lib/ib.c 2011-12-06 13:40:32.463976896 +0100 +@@ -47,7 +47,10 @@ static const char *pr_ib(const char *ptr pos += sprintf(pos, "%02X:", (*ptr++ & 0377)); } buff[strlen(buff) - 1] = '\0'; @@ -13,3 +13,19 @@ diff -up net-tools-1.60/lib/ib.c.ib-warning net-tools-1.60/lib/ib.c /* snprintf(buff, sizeof(buff), "%02X:%02X:%02X:%02X:%02X:%02X", (ptr[0] & 0377), (ptr[1] & 0377), (ptr[2] & 0377), (ptr[3] & 0377), (ptr[4] & 0377), (ptr[5] & 0377) +diff -up net-tools-1.60/man/en_US/ifconfig.8.ib-warning net-tools-1.60/man/en_US/ifconfig.8 +--- net-tools-1.60/man/en_US/ifconfig.8.ib-warning 2011-12-06 13:40:31.000000000 +0100 ++++ net-tools-1.60/man/en_US/ifconfig.8 2011-12-06 13:41:20.467376771 +0100 +@@ -221,6 +221,12 @@ for more information. + .br + .I /proc/net/if_inet6 + .SH BUGS ++Ifconfig uses obsolete kernel interface. ++It uses the ioctl access method to get the full address information, ++which limits hardware addresses to 8 bytes. ++Since an Infiniband address is 20 bytes, ++only the first 8 bytes of Infiniband address are displayed. ++.LP + While appletalk DDP and IPX addresses will be displayed they cannot be + altered by this command. + .SH SEE ALSO diff --git a/net-tools-1.60-ifconfig-long-iface-crasher.patch b/net-tools-1.60-ifconfig-long-iface-crasher.patch index 87fcc5d..988ad80 100644 --- a/net-tools-1.60-ifconfig-long-iface-crasher.patch +++ b/net-tools-1.60-ifconfig-long-iface-crasher.patch @@ -1,30 +1,30 @@ -diff -Naurp net-tools-1.60-ifconfig-new/lib/interface.c net-tools-1.60-ifconfig/lib/interface.c ---- net-tools-1.60-ifconfig-new/lib/interface.c 2006-03-23 07:02:48.000000000 +0100 -+++ net-tools-1.60-ifconfig/lib/interface.c 2006-03-23 09:58:45.000000000 +0100 -@@ -203,6 +203,7 @@ out: +diff -up net-tools-1.60/lib/interface.c.long_iface net-tools-1.60/lib/interface.c +--- net-tools-1.60/lib/interface.c.long_iface 2011-12-05 18:16:38.000000000 +0100 ++++ net-tools-1.60/lib/interface.c 2011-12-05 19:13:17.343530194 +0100 +@@ -216,6 +216,7 @@ out: - static char *get_name(char **namep, char *p) + char *get_name(char **namep, char *p) { -+ int count = 0; ++ int count = 0; while (isspace(*p)) p++; char *name = *namep = p; -@@ -211,8 +212,13 @@ static char *get_name(char **namep, char +@@ -224,7 +225,13 @@ char *get_name(char **namep, char *p) + break; if (*p == ':') { /* could be an alias */ - char *dot = p, *dotname = name; - *name++ = *p++; -- while (isdigit(*p)) -+ count++; -+ while (isdigit(*p)){ - *name++ = *p++; -+ count++; -+ if (count == (IFNAMSIZ-1)) -+ break; -+ } - if (*p != ':') { /* it wasn't, backup */ - p = dot; - name = dotname; -@@ -223,6 +229,9 @@ static char *get_name(char **namep, char + char *dot = p++; +- while (*p && isdigit(*p)) p++; ++ count++; ++ while (*p && isdigit(*p)) { ++ p++; ++ count++; ++ if (count == (IFNAMSIZ-1)) ++ break; ++ } + if (*p == ':') { + /* Yes it is, backup and copy it. */ + p = dot; +@@ -240,6 +247,9 @@ char *get_name(char **namep, char *p) break; } *name++ = *p++; diff --git a/net-tools-1.60-inet6-lookup.patch b/net-tools-1.60-inet6-lookup.patch index b84c5cd..de4ef15 100644 --- a/net-tools-1.60-inet6-lookup.patch +++ b/net-tools-1.60-inet6-lookup.patch @@ -1,20 +1,26 @@ ---- net-tools-1.60/lib/inet6.c.inet6-lookup 2000-10-28 13:04:00.000000000 +0200 -+++ net-tools-1.60/lib/inet6.c 2003-05-21 15:28:50.000000000 +0200 -@@ -133,28 +133,9 @@ +diff -up net-tools-1.60/lib/inet6.c.inet6-lookup net-tools-1.60/lib/inet6.c +--- net-tools-1.60/lib/inet6.c.inet6-lookup 2011-11-21 02:31:57.000000000 +0100 ++++ net-tools-1.60/lib/inet6.c 2011-12-01 17:10:40.057969536 +0100 +@@ -149,33 +149,9 @@ static const char *INET6_sprint(struct s } -static int INET6_getsock(char *bufp, struct sockaddr *sap) -{ - struct sockaddr_in6 *sin6; +- char *p; - - sin6 = (struct sockaddr_in6 *) sap; - sin6->sin6_family = AF_INET6; - sin6->sin6_port = 0; +- sin6->sin6_scope_id = 0; +- sin6->sin6_flowinfo = 0; - - if (inet_pton(AF_INET6, bufp, sin6->sin6_addr.s6_addr) <= 0) - return (-1); -- +- p = fix_v4_address(bufp, &sin6->sin6_addr); +- if (p != bufp) +- memcpy(bufp, p, strlen(p)+1); - return 16; /* ?;) */ -} - @@ -30,9 +36,10 @@ } ---- net-tools-1.60/lib/inet6_gr.c.inet6-lookup 2001-04-01 16:48:06.000000000 +0200 -+++ net-tools-1.60/lib/inet6_gr.c 2003-05-21 15:28:50.000000000 +0200 -@@ -100,7 +100,7 @@ +diff -up net-tools-1.60/lib/inet6_gr.c.inet6-lookup net-tools-1.60/lib/inet6_gr.c +--- net-tools-1.60/lib/inet6_gr.c.inet6-lookup 2011-11-21 02:31:57.000000000 +0100 ++++ net-tools-1.60/lib/inet6_gr.c 2011-12-01 17:11:21.958445708 +0100 +@@ -108,7 +108,7 @@ int rprint_fib6(int ext, int numeric) addr6p[4], addr6p[5], addr6p[6], addr6p[7]); inet6_aftype.input(1, addr6, (struct sockaddr *) &saddr6); snprintf(addr6, sizeof(addr6), "%s/%d", @@ -41,7 +48,7 @@ prefix_len); /* Fetch and resolve the nexthop address. */ -@@ -109,7 +109,7 @@ +@@ -117,7 +117,7 @@ int rprint_fib6(int ext, int numeric) naddr6p[4], naddr6p[5], naddr6p[6], naddr6p[7]); inet6_aftype.input(1, naddr6, (struct sockaddr *) &snaddr6); snprintf(naddr6, sizeof(naddr6), "%s", @@ -49,9 +56,10 @@ + inet6_aftype.sprint((struct sockaddr *) &snaddr6, numeric)); /* Decode the flags. */ - strcpy(flags, "U"); ---- net-tools-1.60/lib/inet6_sr.c.inet6-lookup 2000-05-22 23:18:37.000000000 +0200 -+++ net-tools-1.60/lib/inet6_sr.c 2003-05-21 15:28:50.000000000 +0200 + +diff -up net-tools-1.60/lib/inet6_sr.c.inet6-lookup net-tools-1.60/lib/inet6_sr.c +--- net-tools-1.60/lib/inet6_sr.c.inet6-lookup 2011-11-21 02:31:57.000000000 +0100 ++++ net-tools-1.60/lib/inet6_sr.c 2011-12-01 17:14:32.707061021 +0100 @@ -32,6 +32,7 @@ #include "net-support.h" #include "pathnames.h" @@ -60,8 +68,7 @@ #include "net-features.h" - -@@ -63,7 +63,7 @@ +@@ -63,7 +64,7 @@ static int INET6_setroute(int action, in if (*args == NULL) return (usage()); @@ -70,7 +77,7 @@ if (!strcmp(target, "default")) { prefix_len = 0; memset(&sa6, 0, sizeof(sa6)); -@@ -112,7 +112,7 @@ +@@ -112,7 +113,7 @@ static int INET6_setroute(int action, in return (usage()); if (rt.rtmsg_flags & RTF_GATEWAY) return (usage()); @@ -79,7 +86,7 @@ if (inet6_aftype.input(1, gateway, (struct sockaddr *) &sa6) < 0) { inet6_aftype.herror(gateway); -@@ -152,7 +152,7 @@ +@@ -152,7 +153,7 @@ static int INET6_setroute(int action, in } if (devname) { memset(&ifr, 0, sizeof(ifr)); diff --git a/net-tools-1.60-interface.patch b/net-tools-1.60-interface.patch index 3a1bc91..8df9d20 100644 --- a/net-tools-1.60-interface.patch +++ b/net-tools-1.60-interface.patch @@ -1,6 +1,33 @@ ---- net-tools-1.60/netstat.c.interface 2003-08-25 17:06:30.000000000 +0200 -+++ net-tools-1.60/netstat.c 2003-08-25 17:08:41.000000000 +0200 -@@ -129,6 +129,7 @@ +diff -up net-tools-1.60/man/en_US/netstat.8.interface net-tools-1.60/man/en_US/netstat.8 +--- net-tools-1.60/man/en_US/netstat.8.interface 2011-12-06 12:30:47.028302044 +0100 ++++ net-tools-1.60/man/en_US/netstat.8 2011-12-06 12:30:47.035301954 +0100 +@@ -46,9 +46,9 @@ netstat \- Print network connections, ro + .RB [delay] + .P + .B netstat +-.RB { \-\-interfaces | \-i } ++.RB { \-\-interfaces | \-I | \-i } + .RB [ \-\-all | \-a ] +-.RB [ \-\-extend | \-e [ \-\-extend | \-e] ] ++.RB [ \-\-extend | \-e ] + .RB [ \-\-verbose | \-v ] + .RB [ \-\-program | \-p ] + .RB [ \-\-numeric | \-n ] +@@ -130,8 +130,8 @@ and + produce the same output. + .SS "\-\-groups , \-g" + Display multicast group membership information for IPv4 and IPv6. +-.SS "\-\-interfaces, \-i" +-Display a table of all network interfaces. ++.SS "\-\-interfaces=\fIiface \fR, \fB\-I=\fIiface \fR, \fB\-i" ++Display a table of all network interfaces, or the specified \fIiface\fR. + .SS "\-\-masquerade , \-M" + Display a list of masqueraded connections. + .SS "\-\-statistics , \-s" +diff -up net-tools-1.60/netstat.c.interface net-tools-1.60/netstat.c +--- net-tools-1.60/netstat.c.interface 2011-12-06 12:30:46.877303930 +0100 ++++ net-tools-1.60/netstat.c 2011-12-06 12:32:32.845979140 +0100 +@@ -135,6 +135,7 @@ char *Release = RELEASE, *Version = "net #define E_IOCTL -3 int flag_int = 0; @@ -8,7 +35,7 @@ int flag_rou = 0; int flag_mas = 0; int flag_sta = 0; -@@ -1441,6 +1442,7 @@ +@@ -1611,6 +1612,7 @@ static int ipx_info(void) static int iface_info(void) { static int count=0; @@ -16,7 +43,7 @@ if (skfd < 0) { if ((skfd = sockets_open(0)) < 0) { -@@ -1455,7 +1457,11 @@ +@@ -1625,7 +1627,11 @@ static int iface_info(void) printf(_("Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg\n")); } @@ -29,82 +56,47 @@ perror(_("missing interface information")); exit(1); } -@@ -1481,30 +1487,31 @@ +@@ -1651,9 +1657,10 @@ static void usage(void) { - fprintf(stderr, _("usage: netstat [-veenNcCF] [] -r netstat {-V|--version|-h|--help}\n")); - fprintf(stderr, _(" netstat [-vnNcaeol] [ ...]\n")); -- fprintf(stderr, _(" netstat { [-veenNac] -i | [-cnNe] -M | -s } [delay]\n\n")); -+ fprintf(stderr, _(" netstat { [-veenNac] -i[] | [-cnNe] -M | -s } [delay]\n\n")); + fprintf(stderr, _("usage: netstat [-vWeenNcCF] [] -r netstat {-V|--version|-h|--help}\n")); + fprintf(stderr, _(" netstat [-vWnNcaeol] [ ...]\n")); +- fprintf(stderr, _(" netstat { [-vWeenNac] -i | [-cnNe] -M | -s [-6tuw] } [delay]\n\n")); ++ fprintf(stderr, _(" netstat { [-vWeenNac] -I[] | [-veenNac] -i | [-cnNe] -M | -s [-6tuw] } [delay]\n\n")); -- fprintf(stderr, _(" -r, --route display routing table\n")); -- fprintf(stderr, _(" -i, --interfaces display interface table\n")); -- fprintf(stderr, _(" -g, --groups display multicast group memberships\n")); -- fprintf(stderr, _(" -s, --statistics display networking statistics (like SNMP)\n")); -+ fprintf(stderr, _(" -r, --route display routing table\n")); -+ fprintf(stderr, _(" -i, --interfaces=[] display interface table\n")); -+ fprintf(stderr, _(" -g, --groups display multicast group memberships\n")); -+ fprintf(stderr, _(" -s, --statistics display networking statistics (like SNMP)\n")); - #if HAVE_FW_MASQUERADE -- fprintf(stderr, _(" -M, --masquerade display masqueraded connections\n\n")); -+ fprintf(stderr, _(" -M, --masquerade display masqueraded connections\n\n")); - #endif -- fprintf(stderr, _(" -v, --verbose be verbose\n")); -- fprintf(stderr, _(" -n, --numeric don't resolve names\n")); -- fprintf(stderr, _(" --numeric-hosts don't resolve host names\n")); -- fprintf(stderr, _(" --numeric-ports don't resolve port names\n")); -- fprintf(stderr, _(" --numeric-users don't resolve user names\n")); -- fprintf(stderr, _(" -N, --symbolic resolve hardware names\n")); -- fprintf(stderr, _(" -e, --extend display other/more information\n")); -- fprintf(stderr, _(" -p, --programs display PID/Program name for sockets\n")); -- fprintf(stderr, _(" -c, --continuous continuous listing\n\n")); -- fprintf(stderr, _(" -l, --listening display listening server sockets\n")); -- fprintf(stderr, _(" -a, --all, --listening display all sockets (default: connected)\n")); -- fprintf(stderr, _(" -o, --timers display timers\n")); -- fprintf(stderr, _(" -F, --fib display Forwarding Information Base (default)\n")); -- fprintf(stderr, _(" -C, --cache display routing cache instead of FIB\n\n")); -+ fprintf(stderr, _(" -v, --verbose be verbose\n")); -+ fprintf(stderr, _(" -n, --numeric don't resolve names\n")); -+ fprintf(stderr, _(" --numeric-hosts don't resolve host names\n")); -+ fprintf(stderr, _(" --numeric-ports don't resolve port names\n")); -+ fprintf(stderr, _(" --numeric-users don't resolve user names\n")); -+ fprintf(stderr, _(" -N, --symbolic resolve hardware names\n")); -+ fprintf(stderr, _(" -e, --extend display other/more information\n")); -+ fprintf(stderr, _(" -p, --programs display PID/Program name for sockets\n")); -+ fprintf(stderr, _(" -c, --continuous continuous listing\n\n")); -+ fprintf(stderr, _(" -l, --listening display listening server sockets\n")); -+ fprintf(stderr, _(" -a, --all, --listening display all sockets (default: connected)\n")); -+ fprintf(stderr, _(" -o, --timers display timers\n")); -+ fprintf(stderr, _(" -F, --fib display Forwarding Information Base (default)\n")); -+ fprintf(stderr, _(" -C, --cache display routing cache instead of FIB\n\n")); - -+ fprintf(stderr, _(" : Name of interface to monitor/list.\n")); - fprintf(stderr, _(" ={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --netrom\n")); - fprintf(stderr, _(" =Use '-A ' or '--'; default: %s\n"), DFLT_AF); - fprintf(stderr, _(" List of possible address families (which support routing):\n")); -@@ -1522,7 +1529,7 @@ + fprintf(stderr, _(" -r, --route display routing table\n")); ++ fprintf(stderr, _(" -I, --interfaces= display interface table for \n")); + fprintf(stderr, _(" -i, --interfaces display interface table\n")); + fprintf(stderr, _(" -g, --groups display multicast group memberships\n")); + fprintf(stderr, _(" -s, --statistics display networking statistics (like SNMP)\n")); +@@ -1693,7 +1700,7 @@ int main { AFTRANS_OPTS, {"version", 0, 0, 'V'}, - {"interfaces", 0, 0, 'i'}, -+ {"interfaces", 2, 0, 'i'}, ++ {"interfaces", 2, 0, 'I'}, {"help", 0, 0, 'h'}, {"route", 0, 0, 'r'}, #if HAVE_FW_MASQUERADE -@@ -1560,7 +1567,7 @@ +@@ -1734,7 +1741,7 @@ int main getroute_init(); /* Set up AF routing support */ afname[0] = '\0'; -- while ((i = getopt_long(argc, argv, "MCFA:acdegphinNorstuVv?wxl", longopts, &lop)) != EOF) -+ while ((i = getopt_long(argc, argv, "MCFA:acdegphi::nNorstuVv?wxl", longopts, &lop)) != EOF) +- while ((i = getopt_long(argc, argv, "A:CFMacdeghilnNoprsStuUvVWwx64?", longopts, &lop)) != EOF) ++ while ((i = getopt_long(argc, argv, "A:CFMacdeghiI::lnNoprsStuUvVWwx64?", longopts, &lop)) != EOF) switch (i) { case -1: break; -@@ -1602,6 +1609,8 @@ +@@ -1775,6 +1782,13 @@ int main + case 'p': flag_prg++; break; ++ case 'I': ++ if (optarg && strcmp(optarg, "(null)")) ++ if (optarg[0] == '=') optarg++; ++ if (optarg && strcmp(optarg, "(null)")) ++ flag_int_name = strdup(optarg); ++ flag_int++; ++ break; case 'i': -+ if (optarg && strcmp(optarg, "(null)")) -+ flag_int_name = strdup(optarg); flag_int++; break; - case 'n': diff --git a/net-tools-1.60-interface_stack.patch b/net-tools-1.60-interface_stack.patch index c16f539..87aeb51 100644 --- a/net-tools-1.60-interface_stack.patch +++ b/net-tools-1.60-interface_stack.patch @@ -1,13 +1,24 @@ -Bugzilla Bug 176714 – *** stack smashing detected ***: /sbin/ifconfig terminated - ---- lib/interface.c-old 2005-12-30 11:08:15.000000000 -0800 -+++ lib/interface.c 2005-12-30 11:17:02.000000000 -0800 -@@ -201,10 +201,11 @@ +diff -up net-tools-1.60/include/interface.h.stack net-tools-1.60/include/interface.h +--- net-tools-1.60/include/interface.h.stack 2011-11-21 02:31:57.000000000 +0100 ++++ net-tools-1.60/include/interface.h 2011-12-06 16:14:06.477785871 +0100 +@@ -73,7 +73,7 @@ extern int do_if_print(struct interface + + extern int procnetdev_version(char *buf); + extern int get_dev_fields(char *bp, struct interface *ife); +-extern char * get_name(char *name, char *p); ++extern char * get_name(char **namep, char *p); + + extern void ife_print(struct interface *ptr); + +diff -up net-tools-1.60/lib/interface.c.stack net-tools-1.60/lib/interface.c +--- net-tools-1.60/lib/interface.c.stack 2011-12-06 16:12:32.515960556 +0100 ++++ net-tools-1.60/lib/interface.c 2011-12-06 16:12:32.520960494 +0100 +@@ -214,10 +214,11 @@ out: return err; } --static char *get_name(char *name, char *p) -+static char *get_name(char **namep, char *p) +-char *get_name(char *name, char *p) ++char *get_name(char **namep, char *p) { while (isspace(*p)) p++; @@ -15,9 +26,9 @@ Bugzilla Bug 176714 – *** stack smashing detected ***: /sbin/ifconfig terminat while (*p) { if (isspace(*p)) break; -@@ -305,9 +306,10 @@ +@@ -320,9 +321,10 @@ int get_dev_fields(char *bp, struct inte + static int if_readlist_proc(char *target) { - static int proc_read; FILE *fh; - char buf[512]; struct interface *ife; @@ -25,11 +36,11 @@ Bugzilla Bug 176714 – *** stack smashing detected ***: /sbin/ifconfig terminat + char *line = NULL; + size_t linelen = 0; - if (proc_read) - return 0; -@@ -320,8 +322,11 @@ + fh = fopen(_PATH_PROCNET_DEV, "r"); + if (!fh) { +@@ -330,8 +332,11 @@ static int if_readlist_proc(char *target _PATH_PROCNET_DEV, strerror(errno)); - return if_readconf(); + return -2; } - fgets(buf, sizeof buf, fh); /* eat line */ - fgets(buf, sizeof buf, fh); @@ -41,7 +52,7 @@ Bugzilla Bug 176714 – *** stack smashing detected ***: /sbin/ifconfig terminat #if 0 /* pretty, but can't cope with missing fields */ fmt = proc_gen_fmt(_PATH_PROCNET_DEV, 1, fh, -@@ -346,13 +351,13 @@ +@@ -356,13 +361,13 @@ static int if_readlist_proc(char *target if (!fmt) return -1; #else @@ -56,10 +67,10 @@ Bugzilla Bug 176714 – *** stack smashing detected ***: /sbin/ifconfig terminat + while (getline(&line, &linelen, fh) != -1) { + char *s, *name; + s = get_name(&name, line); - ife = add_interface(name); + ife = if_cache_add(name); get_dev_fields(s, ife); ife->statistics_valid = 1; -@@ -368,6 +373,8 @@ +@@ -377,6 +382,8 @@ static int if_readlist_proc(char *target #if 0 free(fmt); #endif @@ -68,7 +79,7 @@ Bugzilla Bug 176714 – *** stack smashing detected ***: /sbin/ifconfig terminat fclose(fh); return err; } -@@ -376,8 +383,9 @@ +@@ -384,8 +391,9 @@ static int if_readlist_proc(char *target static int if_readlist_rep(char *target, struct interface *ife) { FILE *fh; @@ -79,7 +90,7 @@ Bugzilla Bug 176714 – *** stack smashing detected ***: /sbin/ifconfig terminat fh = fopen(_PATH_PROCNET_DEV, "r"); if (!fh) { -@@ -385,15 +393,18 @@ +@@ -393,15 +401,18 @@ static int if_readlist_rep(char *target, _PATH_PROCNET_DEV, strerror(errno)); return if_readconf(); } @@ -104,7 +115,7 @@ Bugzilla Bug 176714 – *** stack smashing detected ***: /sbin/ifconfig terminat get_dev_fields(s, ife); if (target && !strcmp(target,name)) { -@@ -406,6 +417,8 @@ +@@ -414,6 +425,8 @@ static int if_readlist_rep(char *target, err = -1; } diff --git a/net-tools-1.60-ipx.patch b/net-tools-1.60-ipx.patch index d4458b9..bf132c0 100644 --- a/net-tools-1.60-ipx.patch +++ b/net-tools-1.60-ipx.patch @@ -1,7 +1,7 @@ -diff -urN net-tools-1.60/lib/ipx_gr.c net-tools-1.60.new/lib/ipx_gr.c ---- net-tools-1.60/lib/ipx_gr.c 2000-10-28 12:59:42.000000000 +0200 -+++ net-tools-1.60.new/lib/ipx_gr.c 2003-05-20 10:54:37.000000000 +0200 -@@ -64,7 +64,7 @@ +diff -up net-tools-1.60/lib/ipx_gr.c.ipx net-tools-1.60/lib/ipx_gr.c +--- net-tools-1.60/lib/ipx_gr.c.ipx 2011-11-21 02:31:57.000000000 +0100 ++++ net-tools-1.60/lib/ipx_gr.c 2011-12-01 17:02:53.261805292 +0100 +@@ -70,7 +70,7 @@ int IPX_rprint(int options) continue; /* Fetch and resolve the Destination */ @@ -10,27 +10,27 @@ diff -urN net-tools-1.60/lib/ipx_gr.c net-tools-1.60.new/lib/ipx_gr.c strcpy(net, ap->sprint(&sa, numeric)); /* Fetch and resolve the Router Net */ -diff -urN net-tools-1.60/netstat.c net-tools-1.60.new/netstat.c ---- net-tools-1.60/netstat.c 2003-05-20 11:00:57.000000000 +0200 -+++ net-tools-1.60.new/netstat.c 2003-05-20 10:58:25.000000000 +0200 -@@ -1412,13 +1412,13 @@ +diff -up net-tools-1.60/netstat.c.ipx net-tools-1.60/netstat.c +--- net-tools-1.60/netstat.c.ipx 2011-12-01 17:02:53.000000000 +0100 ++++ net-tools-1.60/netstat.c 2011-12-01 17:06:26.071144809 +0100 +@@ -1582,13 +1582,13 @@ static int ipx_info(void) } /* Fetch and resolve the Source */ - (void) ap->input(4, sad, &sa); + (void) ap->input(0, sad, &sa); - safe_strncpy(buf, ap->sprint(&sa, flag_not), sizeof(buf)); + safe_strncpy(buf, ap->sprint(&sa, flag_not & FLAG_NUM_HOST), sizeof(buf)); snprintf(sad, sizeof(sad), "%s:%04X", buf, sport); if (!nc) { /* Fetch and resolve the Destination */ - (void) ap->input(4, dad, &sa); + (void) ap->input(0, dad, &sa); - safe_strncpy(buf, ap->sprint(&sa, flag_not), sizeof(buf)); + safe_strncpy(buf, ap->sprint(&sa, flag_not & FLAG_NUM_HOST), sizeof(buf)); snprintf(dad, sizeof(dad), "%s:%04X", buf, dport); } else -diff -urN net-tools-1.60/version.h net-tools-1.60.new/version.h ---- net-tools-1.60/version.h 1970-01-01 01:00:00.000000000 +0100 -+++ net-tools-1.60.new/version.h 2003-05-19 16:07:49.000000000 +0200 +diff -up net-tools-1.60/version.h.ipx net-tools-1.60/version.h +--- net-tools-1.60/version.h.ipx 2011-12-01 17:02:53.265805240 +0100 ++++ net-tools-1.60/version.h 2011-12-01 17:02:53.265805240 +0100 @@ -0,0 +1 @@ +#define RELEASE "net-tools 1.60" diff --git a/net-tools-1.60-man.patch b/net-tools-1.60-man.patch index a2d3ad4..ab8b7ce 100644 --- a/net-tools-1.60-man.patch +++ b/net-tools-1.60-man.patch @@ -1,6 +1,6 @@ diff -up net-tools-1.60/man/de_DE/arp.8.man net-tools-1.60/man/de_DE/arp.8 ---- net-tools-1.60/man/de_DE/arp.8.man 2000-10-28 12:59:42.000000000 +0200 -+++ net-tools-1.60/man/de_DE/arp.8 2011-07-21 17:52:05.796565807 +0200 +--- net-tools-1.60/man/de_DE/arp.8.man 2011-11-21 02:31:57.000000000 +0100 ++++ net-tools-1.60/man/de_DE/arp.8 2011-12-06 13:38:28.094531727 +0100 @@ -120,11 +120,9 @@ Flagge) kann .B Netmaske f\(:ur ARP-Eintr\(:age f\(:ur ganze Subnetze angegeben werde. Von dieser @@ -28,57 +28,9 @@ diff -up net-tools-1.60/man/de_DE/arp.8.man net-tools-1.60/man/de_DE/arp.8 .SH AUTOREN Fred N. van Kempen, mit vielen Verbesserungen vom Verwalter der Net-Tools Bernd Eckenfels . -diff -up net-tools-1.60/man/de_DE/hostname.1.man net-tools-1.60/man/de_DE/hostname.1 ---- net-tools-1.60/man/de_DE/hostname.1.man 1999-03-15 21:31:16.000000000 +0100 -+++ net-tools-1.60/man/de_DE/hostname.1 2011-07-21 17:52:05.796565807 +0200 -@@ -15,8 +15,6 @@ dnsdomainname \- den DNS Domainnamen des - nisdomainname \- den NIS/YP Domainnamen anzeigen oder setzen - .br - ypdomainname \- den NIS/YP Domainnamen anzeigen oder setzen --.br --nodename \- den DECnet-Knotennamen anzeigen oder setzen - - .SH SYNOPSIS - .B hostname -@@ -101,12 +99,6 @@ Funktion ermittelt wird, an. Dieser Nam - des Systems genannt. - - .LP --.B nodename --druckt den DECnet-Knotennamen des Systems, wie er von der --.BR getnodename (2) --Function ermittelt wird, aus. -- --.LP - .B dnsdomainname - druckt den Domainteil des FQDN (Fully Qualified Domain Name oder zu deutsch - vollst\(:andig spezifizierter Domainname) aus. Der vollst\(:andige FQDN -@@ -117,8 +109,8 @@ ausgegeben. - .SS "NAME SETZEN" - Wenn mit nur einem Argument oder mit der - .B \-\-file --Option aufgerufen, dann setzen diese Kommandos den Rechnernamen, den NIS/YP --Domainnamen oder den DECnet-Knotennamen. -+Option aufgerufen, dann setzen diese Kommandos den Rechnernamen oder den NIS/YP -+Domainnamen. - - .LP - Nur der Superuser darf den Namen \(:andern. -@@ -198,11 +190,6 @@ Kurzanleitung ausdrucken und beenden. - .I "\-i, \-\-ip-address" - Die IP-Adresse(n) des Rechners anzeigen und beenden. - .TP --.I "\-n, \-\-node" --Den DECnet-Knotennamen anzeigen. Wenn ein Argument oder die --.B \-\-file name --Option angegeben wird, dann kann Root auch einen neuen Knotennamen setzen. --.TP - .I "\-s, \-\-short" - Den Kurznamen anzeigen. Dies ist der ab dem ersten Punkt abgeschnittene - Rechnername. diff -up net-tools-1.60/man/de_DE/ifconfig.8.man net-tools-1.60/man/de_DE/ifconfig.8 ---- net-tools-1.60/man/de_DE/ifconfig.8.man 2000-10-28 12:59:42.000000000 +0200 -+++ net-tools-1.60/man/de_DE/ifconfig.8 2011-07-21 17:52:05.797565794 +0200 +--- net-tools-1.60/man/de_DE/ifconfig.8.man 2011-11-21 02:31:57.000000000 +0100 ++++ net-tools-1.60/man/de_DE/ifconfig.8 2011-12-06 13:38:28.094531727 +0100 @@ -180,20 +180,21 @@ Seit Kernel Version 2.2 gibt es keine ex Schnittstellenaliase mehr. Die Statistiken f\(:ur die Originaladresse werden mit allen Aliasen auf das gleiche Ger\(:at geteilt. Um Statistiken per @@ -106,8 +58,8 @@ diff -up net-tools-1.60/man/de_DE/ifconfig.8.man net-tools-1.60/man/de_DE/ifconf Fred N. van Kempen, .br diff -up net-tools-1.60/man/de_DE/netstat.8.man net-tools-1.60/man/de_DE/netstat.8 ---- net-tools-1.60/man/de_DE/netstat.8.man 1999-03-15 21:31:20.000000000 +0100 -+++ net-tools-1.60/man/de_DE/netstat.8 2011-07-21 17:52:05.797565794 +0200 +--- net-tools-1.60/man/de_DE/netstat.8.man 2011-11-21 02:31:57.000000000 +0100 ++++ net-tools-1.60/man/de_DE/netstat.8 2011-12-06 13:38:28.142531127 +0100 @@ -475,12 +475,9 @@ Befehl explizite Regeln zugef\(:ugt werd .PP @@ -125,9 +77,9 @@ diff -up net-tools-1.60/man/de_DE/netstat.8.man net-tools-1.60/man/de_DE/netstat .PP .SH PROBLEME diff -up net-tools-1.60/man/de_DE/route.8.man net-tools-1.60/man/de_DE/route.8 ---- net-tools-1.60/man/de_DE/route.8.man 2000-01-02 23:53:44.000000000 +0100 -+++ net-tools-1.60/man/de_DE/route.8 2011-07-21 17:52:05.798565781 +0200 -@@ -334,7 +334,7 @@ Nur wenn die Hardwareadresse f\(:ur die +--- net-tools-1.60/man/de_DE/route.8.man 2011-11-21 02:31:57.000000000 +0100 ++++ net-tools-1.60/man/de_DE/route.8 2011-12-06 13:38:28.201530389 +0100 +@@ -334,7 +334,7 @@ Nur wenn die Hardwareadresse f\(:ur die .I /proc/net/rt_cache .LP .SH SIEHE AUCH @@ -137,45 +89,41 @@ diff -up net-tools-1.60/man/de_DE/route.8.man net-tools-1.60/man/de_DE/route.8 .SH GESCHICHTE .B Route diff -up net-tools-1.60/man/en_US/arp.8.man net-tools-1.60/man/en_US/arp.8 ---- net-tools-1.60/man/en_US/arp.8.man 2011-07-21 17:52:05.725566741 +0200 -+++ net-tools-1.60/man/en_US/arp.8 2011-07-21 17:52:05.798565781 +0200 -@@ -44,6 +44,10 @@ arp \- manipulate the system ARP cache - .RB [ "-i if" ] - .B -f [filename] +--- net-tools-1.60/man/en_US/arp.8.man 2011-11-21 02:31:57.000000000 +0100 ++++ net-tools-1.60/man/en_US/arp.8 2011-12-06 13:38:28.251529764 +0100 +@@ -63,6 +63,10 @@ arp \- manipulate the system ARP cache + .B \-f + .RI [ filename ] +.SH NOTE +.P -+This program is obsolete. For replacement check \fBip neighbor\fR. ++This program is obsolete. For replacement check \fBip neigh\fR. + .SH DESCRIPTION .B Arp - manipulates the kernel's ARP cache in various ways. The primary options -@@ -150,8 +154,8 @@ but this is not official. If no filename + manipulates or displays the kernel's IPv4 network neighbour cache. It can add +@@ -178,8 +182,8 @@ but this is not official. If no filename is used as default. .sp 1 The format of the file is simple; it -only contains ASCII text lines with a hostname, and a hardware -address separated by whitespace. Additionally the +only contains ASCII text lines with a hardware -+address and a hostname separated by whitespace. Additionally the ++address and a hostname separated by whitespace. Additionally the .BR "pub" , " temp" " and" " netmask" flags can be used. .LP -@@ -179,8 +183,10 @@ flag. - .I /etc/hosts +@@ -218,6 +222,6 @@ published proxy ARP entries and permanen .br .I /etc/ethers -+ .SH SEE ALSO -rarp(8), route(8), ifconfig(8), netstat(8) +.BR ip(8) -+ .SH AUTHORS - Fred N. van Kempen, with a lot of improvements - from net-tools Maintainer Bernd Eckenfels . + Fred N. van Kempen , Bernd Eckenfels . diff -up net-tools-1.60/man/en_US/ethers.5.man net-tools-1.60/man/en_US/ethers.5 ---- net-tools-1.60/man/en_US/ethers.5.man 1999-01-09 16:55:31.000000000 +0100 -+++ net-tools-1.60/man/en_US/ethers.5 2011-07-21 17:52:05.799565768 +0200 +--- net-tools-1.60/man/en_US/ethers.5.man 2011-11-21 02:31:57.000000000 +0100 ++++ net-tools-1.60/man/en_US/ethers.5 2011-12-06 13:38:28.301529135 +0100 @@ -26,6 +26,3 @@ can be resolved by DNS or a dot separate .SH FILES \"{{{ /etc/ethers @@ -183,50 +131,13 @@ diff -up net-tools-1.60/man/en_US/ethers.5.man net-tools-1.60/man/en_US/ethers.5 -.SH "SEE ALSO" \"{{{ -rarp(8) -.\"}}} -diff -up net-tools-1.60/man/en_US/hostname.1.man net-tools-1.60/man/en_US/hostname.1 ---- net-tools-1.60/man/en_US/hostname.1.man 1999-02-27 13:11:14.000000000 +0100 -+++ net-tools-1.60/man/en_US/hostname.1 2011-07-21 17:52:05.799565768 +0200 -@@ -10,8 +10,6 @@ dnsdomainname \- show the system's DNS d - nisdomainname \- show or set system's NIS/YP domain name - .br - ypdomainname \- show or set the system's NIS/YP domain name --.br --nodename \- show or set the system's DECnet node name - - .SH SYNOPSIS - .B hostname -@@ -96,12 +94,6 @@ will print the name of the system as ret - function. This is also known as the YP/NIS domain name of the system. - - .LP --.B nodename --will print the DECnet node name of the system as returned by the --.BR getnodename (2) --function. -- --.LP - .B dnsdomainname - will print the domain part of the FQDN (Fully Qualified Domain Name). The - complete FQDN of the system is returned with -@@ -184,11 +176,6 @@ Print a usage message and exit. - .I "\-i, \-\-ip-address" - Display the IP address(es) of the host. - .TP --.I "\-n, \-\-node" --Display the DECnet node name. If a parameter is given (or --.B \-\-file name --) the root can also set a new node name. --.TP - .I "\-s, \-\-short" - Display the short host name. This is the host name cut at the first dot. - .TP diff -up net-tools-1.60/man/en_US/ifconfig.8.man net-tools-1.60/man/en_US/ifconfig.8 ---- net-tools-1.60/man/en_US/ifconfig.8.man 2000-10-28 12:59:42.000000000 +0200 -+++ net-tools-1.60/man/en_US/ifconfig.8 2011-07-21 17:52:05.800565755 +0200 +--- net-tools-1.60/man/en_US/ifconfig.8.man 2011-11-21 02:31:57.000000000 +0100 ++++ net-tools-1.60/man/en_US/ifconfig.8 2011-12-06 13:39:00.576125653 +0100 @@ -5,6 +5,13 @@ ifconfig \- configure a network interfac - .B "ifconfig [interface]" + .B "ifconfig [-v] [-a] [-s] [interface]" .br - .B "ifconfig interface [aftype] options | address ..." + .B "ifconfig [-v] interface [aftype] options | address ..." + +.SH NOTE +.P @@ -248,18 +159,9 @@ diff -up net-tools-1.60/man/en_US/ifconfig.8.man net-tools-1.60/man/en_US/ifconf +is not RFC-compliant and therefore its use is discouraged and may go away. .SH OPTIONS .TP - .B interface -@@ -173,23 +185,30 @@ alias interfaces anymore. The statistics - are shared with all alias addresses on the same device. If you want per-address - statistics you should add explicit accounting - rules for the address using the --.BR ipchains(8) -+.BR iptables(8) - command. - .LP - Interrupt problems with Ethernet device drivers fail with EAGAIN. See --.I http://cesdis.gsfc.nasa.gov/linux/misc/irq-conflict.html -+.I http://www.scyld.com/expert/irq-conflict.html + .B -a +@@ -205,8 +217,6 @@ it is most likely a interrupt conflict. + .I http://www.scyld.com/expert/irq\-conflict.html for more information. .SH FILES -.I /proc/net/socket @@ -267,28 +169,20 @@ diff -up net-tools-1.60/man/en_US/ifconfig.8.man net-tools-1.60/man/en_US/ifconf .I /proc/net/dev .br .I /proc/net/if_inet6 - .SH BUGS -+Ifconfig uses obsolete kernel interface. -+It uses the ioctl access method to get the full address information, -+which limits hardware addresses to 8 bytes. -+Since an Infiniband address is 20 bytes, -+only the first 8 bytes of Infiniband address are displayed. -+.LP +@@ -214,7 +224,8 @@ for more information. While appletalk DDP and IPX addresses will be displayed they cannot be altered by this command. -+ .SH SEE ALSO --route(8), netstat(8), arp(8), rarp(8), ipchains(8) +-route(8), netstat(8), arp(8), rarp(8), ipchains(8), iptables(8), ifup(8), interfaces(5). +.BR ip(8), +.BR iptables(8) -+ - .SH AUTHORS - Fred N. van Kempen, .br + http://physics.nist.gov/cuu/Units/binary.html - Prefixes for binary multiples + .SH AUTHORS diff -up net-tools-1.60/man/en_US/mii-tool.8.man net-tools-1.60/man/en_US/mii-tool.8 ---- net-tools-1.60/man/en_US/mii-tool.8.man 2000-05-21 16:21:38.000000000 +0200 -+++ net-tools-1.60/man/en_US/mii-tool.8 2011-07-21 17:52:05.800565755 +0200 -@@ -18,6 +18,12 @@ mii-tool \- view, manipulate media-indep +--- net-tools-1.60/man/en_US/mii-tool.8.man 2011-11-21 02:31:57.000000000 +0100 ++++ net-tools-1.60/man/en_US/mii-tool.8 2011-12-06 13:38:28.400527901 +0100 +@@ -18,6 +18,12 @@ mii\-tool \- view, manipulate media-inde [\fB\-F\fR, \fB\-\-force=\fImedia\fR] .RI [ "interface\ ..." ] @@ -301,9 +195,9 @@ diff -up net-tools-1.60/man/en_US/mii-tool.8.man net-tools-1.60/man/en_US/mii-to .SH DESCRIPTION This utility checks or sets the status of a network interface's Media Independent Interface (MII) unit. Most fast ethernet adapters use an -@@ -72,6 +78,9 @@ media technologies. Multiple technologi - commas. Valid media are \fB100baseT4\fR, \fB100baseTx-FD\fR, - \fB100baseTx-HD\fR, \fB10baseT-FD\fR, and \fB10baseT-HD\fR. +@@ -87,6 +93,9 @@ SIOCGMIIPHY on 'eth?' failed: Operation + The interface in question does not support MII queries. Most likely, it does not have + MII transceivers, at all. +.SH SEE ALSO +ethtool(8) @@ -312,12 +206,12 @@ diff -up net-tools-1.60/man/en_US/mii-tool.8.man net-tools-1.60/man/en_US/mii-to David Hinds \- dhinds@pcmcia.sourceforge.org .br diff -up net-tools-1.60/man/en_US/nameif.8.man net-tools-1.60/man/en_US/nameif.8 ---- net-tools-1.60/man/en_US/nameif.8.man 2000-10-18 19:26:29.000000000 +0200 -+++ net-tools-1.60/man/en_US/nameif.8 2011-07-21 17:52:05.801565742 +0200 -@@ -5,6 +5,12 @@ nameif \- name network interfaces based - .B "nameif [-c configfile] [-s]" +--- net-tools-1.60/man/en_US/nameif.8.man 2011-11-21 02:31:57.000000000 +0100 ++++ net-tools-1.60/man/en_US/nameif.8 2011-12-06 13:38:28.451527263 +0100 +@@ -5,6 +5,12 @@ nameif \- name network interfaces based + .B "nameif [\-c configfile] [\-s]" .br - .B "nameif [-c configfile] [-s] {interface macaddress}" + .B "nameif [\-c configfile] [\-s] {interface macaddress}" + +.SH NOTE +.P @@ -339,11 +233,11 @@ diff -up net-tools-1.60/man/en_US/nameif.8.man net-tools-1.60/man/en_US/nameif.8 .SH BUGS Only works for Ethernet currently. diff -up net-tools-1.60/man/en_US/netstat.8.man net-tools-1.60/man/en_US/netstat.8 ---- net-tools-1.60/man/en_US/netstat.8.man 2011-07-21 17:52:05.772566121 +0200 -+++ net-tools-1.60/man/en_US/netstat.8 2011-07-21 17:52:05.801565742 +0200 -@@ -92,6 +92,14 @@ netstat \- Print network connections, ro - .RB [ \-\-netrom ] - .RB [ \-\-ddp ] +--- net-tools-1.60/man/en_US/netstat.8.man 2011-12-06 13:38:27.771535767 +0100 ++++ net-tools-1.60/man/en_US/netstat.8 2011-12-06 13:38:28.509526538 +0100 +@@ -101,6 +101,14 @@ netstat \- Print network connections, ro + .RB [ \-\-ddp | \-\-appletalk ] + .RB [ \-\-econet | \-\-ec ] +.SH NOTE +.P @@ -356,17 +250,17 @@ diff -up net-tools-1.60/man/en_US/netstat.8.man net-tools-1.60/man/en_US/netstat .SH DESCRIPTION .B Netstat prints information about the Linux networking subsystem. The type of -@@ -169,7 +177,8 @@ Show the PID and name of the program to +@@ -187,7 +195,8 @@ Show the PID and name of the program to .SS "\-l, \-\-listening" Show only listening sockets. (These are omitted by default.) .SS "\-a, \-\-all" -Show both listening and non-listening sockets. With the +Show both listening and non-listening (for TCP this means established +connections) sockets. With the - .B --interfaces - option, show interfaces that are not marked + .B \-\-interfaces + option, show interfaces that are not up .SS "\-F" -@@ -436,11 +445,9 @@ status information via the following fil +@@ -458,11 +467,9 @@ status information via the following fil .fi .P .SH SEE ALSO @@ -382,12 +276,12 @@ diff -up net-tools-1.60/man/en_US/netstat.8.man net-tools-1.60/man/en_US/netstat .SH BUGS Occasionally strange information may appear if a socket changes diff -up net-tools-1.60/man/en_US/route.8.man net-tools-1.60/man/en_US/route.8 ---- net-tools-1.60/man/en_US/route.8.man 2000-05-21 20:59:03.000000000 +0200 -+++ net-tools-1.60/man/en_US/route.8 2011-07-21 17:53:29.577465534 +0200 +--- net-tools-1.60/man/en_US/route.8.man 2011-11-21 02:31:57.000000000 +0100 ++++ net-tools-1.60/man/en_US/route.8 2011-12-06 13:38:28.559525913 +0100 @@ -52,6 +52,11 @@ If] .RB [ \-\-version ] .RB [ \-h ] - .RB [ \--help ] + .RB [ \-\-help ] + +.SH NOTE +.P @@ -403,7 +297,7 @@ diff -up net-tools-1.60/man/en_US/route.8.man net-tools-1.60/man/en_US/route.8 -set the TCP Maximum Segment Size (MSS) for connections over this route -to M bytes. -The default is the device MTU minus headers, or a lower MTU when path mtu --discovery occured. This setting can be used to force smaller TCP packets on the +-discovery occurred. This setting can be used to force smaller TCP packets on the -other end when path mtu discovery does not work (usually because of -misconfigured firewalls that block ICMP Fragmentation Needed) +sets MTU (Maximum Transmission Unit) of the route to M bytes. @@ -412,25 +306,7 @@ diff -up net-tools-1.60/man/en_US/route.8.man net-tools-1.60/man/en_US/route.8 .TP .B window W set the TCP window size for connections over this route to W -@@ -182,7 +184,7 @@ modifiers (metric - netmask - gw - dev) - .B route add -net 127.0.0.0 - adds the normal loopback entry, using netmask 255.0.0.0 (class A net, - determined from the destination address) and associated with the --"lo" device (assuming this device was prviously set up correctly with -+"lo" device (assuming this device was previously set up correctly with - .BR ifconfig (8)). - - .TP -@@ -289,7 +291,7 @@ be either route cache misses (-F) or hit - Interface to which packets for this route will be sent. - .TP - .B MSS --Default maximum segement size for TCP connections over this route. -+Default maximum segment size for TCP connections over this route. - .TP - .B Window - Default window size for TCP connections over this route. -@@ -314,7 +316,7 @@ Whether or not the hardware address for +@@ -317,7 +319,7 @@ Whether or not the hardware address for .I /proc/net/rt_cache .LP .SH SEE ALSO @@ -439,48 +315,9 @@ diff -up net-tools-1.60/man/en_US/route.8.man net-tools-1.60/man/en_US/route.8 .LP .SH HISTORY .B Route -diff -up net-tools-1.60/man/fr_FR/hostname.1.man net-tools-1.60/man/fr_FR/hostname.1 ---- net-tools-1.60/man/fr_FR/hostname.1.man 1999-04-18 21:23:46.000000000 +0200 -+++ net-tools-1.60/man/fr_FR/hostname.1 2011-07-21 17:52:05.802565729 +0200 -@@ -9,8 +9,6 @@ dnsdomainname \- affiche le nom de domai - nisdomainname \- affiche ou définit le nom de domaine NIS/YP du système - .br - ypdomainname \- affiche ou définit le nom de domaine NIS/YP du système --.br --nodename \- affiche ou définit le nom de domaine DECnet du système - - .SH SYNOPSIS - .B hostname -@@ -87,14 +85,6 @@ fournit le nom du système tel qu'il est - .BR getdomainname (2) - . Ceci est connu comme nom de domaine YP/NIS du système. - -- --.LP --.B nodename --fournit le nom de noeud DECnet du système tel qu'il est retourné par la --fonction --.BR getnodename (2) --. -- - .LP - .B dnsdomainname - fournit la partie domaine du nom complètement qualifié - FQDN (Fully -@@ -180,11 +170,6 @@ Affiche un message d'aide et se termine. - .I "\-i, \-\-ip-address" - Affiche la (les) adresse(s) IP de l'hôte. - .TP --.I "\-n, \-\-node" --Affiche le nom de noeud DECnet. Si un paramètre est fourni (ou --.B \-\-file nom_fichier --) le super-utilisateur peut également définir un nouveau nom de neud. --.TP - .I "\-s, \-\-short" - Affiche le nom d'hôte en format court. Il s'agit du nom d'hôte coupé au - premier point. diff -up net-tools-1.60/man/fr_FR/ifconfig.8.man net-tools-1.60/man/fr_FR/ifconfig.8 ---- net-tools-1.60/man/fr_FR/ifconfig.8.man 2000-10-28 12:59:42.000000000 +0200 -+++ net-tools-1.60/man/fr_FR/ifconfig.8 2011-07-21 17:52:05.803565716 +0200 +--- net-tools-1.60/man/fr_FR/ifconfig.8.man 2011-11-21 02:31:57.000000000 +0100 ++++ net-tools-1.60/man/fr_FR/ifconfig.8 2011-12-06 13:38:28.609525290 +0100 @@ -183,20 +183,21 @@ pour les interfaces en alias. Les statis adresse sont partagées avec toutes les adresses alias du même périphérique. Si vous voulez des adresses par interface, vous devez ajouter des règles de @@ -508,9 +345,9 @@ diff -up net-tools-1.60/man/fr_FR/ifconfig.8.man net-tools-1.60/man/fr_FR/ifconf Fred N. van Kempen, .br diff -up net-tools-1.60/man/fr_FR/netstat.8.man net-tools-1.60/man/fr_FR/netstat.8 ---- net-tools-1.60/man/fr_FR/netstat.8.man 1999-04-18 21:24:01.000000000 +0200 -+++ net-tools-1.60/man/fr_FR/netstat.8 2011-07-21 17:52:05.804565703 +0200 -@@ -469,12 +469,9 @@ devez définir des règles spécifiques à l +--- net-tools-1.60/man/fr_FR/netstat.8.man 2011-11-21 02:31:57.000000000 +0100 ++++ net-tools-1.60/man/fr_FR/netstat.8 2011-12-06 13:38:28.651524763 +0100 +@@ -468,12 +468,9 @@ devez définir des règles spécifiques à l .PP .SH VOIR AUSSI @@ -527,8 +364,8 @@ diff -up net-tools-1.60/man/fr_FR/netstat.8.man net-tools-1.60/man/fr_FR/netstat .PP .SH BUGS diff -up net-tools-1.60/man/fr_FR/route.8.man net-tools-1.60/man/fr_FR/route.8 ---- net-tools-1.60/man/fr_FR/route.8.man 2000-01-02 23:53:44.000000000 +0100 -+++ net-tools-1.60/man/fr_FR/route.8 2011-07-21 17:52:05.805565690 +0200 +--- net-tools-1.60/man/fr_FR/route.8.man 2011-11-21 02:31:57.000000000 +0100 ++++ net-tools-1.60/man/fr_FR/route.8 2011-12-06 13:38:28.701524138 +0100 @@ -320,7 +320,7 @@ Indique si oui ou non l'adresse matériel .I /proc/net/rt_cache .LP @@ -539,8 +376,8 @@ diff -up net-tools-1.60/man/fr_FR/route.8.man net-tools-1.60/man/fr_FR/route.8 .SH HISTORIQUE .B Route diff -up net-tools-1.60/man/pt_BR/ifconfig.8.man net-tools-1.60/man/pt_BR/ifconfig.8 ---- net-tools-1.60/man/pt_BR/ifconfig.8.man 1999-01-09 16:55:59.000000000 +0100 -+++ net-tools-1.60/man/pt_BR/ifconfig.8 2011-07-21 17:52:05.806565677 +0200 +--- net-tools-1.60/man/pt_BR/ifconfig.8.man 2011-11-21 02:31:57.000000000 +0100 ++++ net-tools-1.60/man/pt_BR/ifconfig.8 2011-12-06 13:38:28.759523414 +0100 @@ -144,32 +144,26 @@ O nome ou endereço IP da máquina (um nom um endereço IP) da interface. Este parâmetro é necessário, apesar da sintaxe atualmente não requisitá-lo. @@ -582,8 +419,8 @@ diff -up net-tools-1.60/man/pt_BR/ifconfig.8.man net-tools-1.60/man/pt_BR/ifconf Fred N. van Kempen, Alan Cox, diff -up net-tools-1.60/man/pt_BR/netstat.8.man net-tools-1.60/man/pt_BR/netstat.8 ---- net-tools-1.60/man/pt_BR/netstat.8.man 1999-01-09 16:56:03.000000000 +0100 -+++ net-tools-1.60/man/pt_BR/netstat.8 2011-07-21 17:52:05.807565664 +0200 +--- net-tools-1.60/man/pt_BR/netstat.8.man 2011-11-21 02:31:57.000000000 +0100 ++++ net-tools-1.60/man/pt_BR/netstat.8 2011-12-06 13:38:28.800522902 +0100 @@ -434,12 +434,9 @@ configurar regras explícitas usando o co .PP @@ -601,9 +438,9 @@ diff -up net-tools-1.60/man/pt_BR/netstat.8.man net-tools-1.60/man/pt_BR/netstat .PP .SH BUGS diff -up net-tools-1.60/man/pt_BR/route.8.man net-tools-1.60/man/pt_BR/route.8 ---- net-tools-1.60/man/pt_BR/route.8.man 2000-01-02 23:53:44.000000000 +0100 -+++ net-tools-1.60/man/pt_BR/route.8 2011-07-21 17:52:05.808565651 +0200 -@@ -312,7 +312,7 @@ parâmetros do protocolo TCP sem esperar +--- net-tools-1.60/man/pt_BR/route.8.man 2011-11-21 02:31:57.000000000 +0100 ++++ net-tools-1.60/man/pt_BR/route.8 2011-12-06 13:38:28.842522378 +0100 +@@ -312,7 +312,7 @@ parâmetros do protocolo TCP sem esperar .I /etc/init.d/network .LP .SH VEJA TAMBÉM diff --git a/net-tools-1.60-mii-refactor.patch b/net-tools-1.60-mii-refactor.patch index 8f5a582..c9920e8 100644 --- a/net-tools-1.60-mii-refactor.patch +++ b/net-tools-1.60-mii-refactor.patch @@ -1,20 +1,21 @@ diff -up net-tools-1.60/mii-tool.c.mii-refactor net-tools-1.60/mii-tool.c ---- net-tools-1.60/mii-tool.c.mii-refactor 2009-10-30 16:25:23.000000000 +0100 -+++ net-tools-1.60/mii-tool.c 2009-10-30 16:45:01.000000000 +0100 -@@ -50,9 +50,11 @@ static char version[] = +--- net-tools-1.60/mii-tool.c.mii-refactor 2011-11-21 02:31:57.000000000 +0100 ++++ net-tools-1.60/mii-tool.c 2011-12-06 16:31:04.114063667 +0100 +@@ -51,10 +51,12 @@ static char Version[] = "$Id: mii-tool.c #include #include #endif -#include "mii.h" +#include +#include + #include "version.h" #define MAX_ETH 8 /* Maximum # of interfaces */ +#define LPA_ABILITY_MASK 0x07e0 /* Table of known MII's */ - static struct { -@@ -112,7 +114,7 @@ static struct ifreq ifr; + static const struct { +@@ -117,7 +119,7 @@ static struct ifreq ifr; static int mdio_read(int skfd, int location) { @@ -23,7 +24,7 @@ diff -up net-tools-1.60/mii-tool.c.mii-refactor net-tools-1.60/mii-tool.c mii->reg_num = location; if (ioctl(skfd, SIOCGMIIREG, &ifr) < 0) { fprintf(stderr, "SIOCGMIIREG on %s failed: %s\n", ifr.ifr_name, -@@ -124,7 +126,7 @@ static int mdio_read(int skfd, int locat +@@ -129,7 +131,7 @@ static int mdio_read(int skfd, int locat static void mdio_write(int skfd, int location, int value) { @@ -32,50 +33,76 @@ diff -up net-tools-1.60/mii-tool.c.mii-refactor net-tools-1.60/mii-tool.c mii->reg_num = location; mii->val_in = value; if (ioctl(skfd, SIOCSMIIREG, &ifr) < 0) { -@@ -140,13 +142,13 @@ const struct { - u_short value; +@@ -145,17 +147,17 @@ const struct { + u_short value[2]; } media[] = { /* The order through 100baseT4 matches bits in the BMSR */ -- { "10baseT-HD", MII_AN_10BASET_HD }, -- { "10baseT-FD", MII_AN_10BASET_FD }, -- { "100baseTx-HD", MII_AN_100BASETX_HD }, -- { "100baseTx-FD", MII_AN_100BASETX_FD }, -- { "100baseT4", MII_AN_100BASET4 }, -- { "100baseTx", MII_AN_100BASETX_FD | MII_AN_100BASETX_HD }, -- { "10baseT", MII_AN_10BASET_FD | MII_AN_10BASET_HD }, -+ { "10baseT-HD", LPA_10HALF }, -+ { "10baseT-FD", LPA_10FULL }, -+ { "100baseTx-HD", LPA_100HALF }, -+ { "100baseTx-FD", LPA_100FULL }, -+ { "100baseT4", LPA_100BASE4 }, -+ { "100baseTx", LPA_100FULL | LPA_100HALF }, -+ { "10baseT", LPA_10FULL | LPA_10HALF }, +- { "10baseT-HD", {MII_AN_10BASET_HD} }, +- { "10baseT-FD", {MII_AN_10BASET_FD} }, +- { "100baseTx-HD", {MII_AN_100BASETX_HD} }, +- { "100baseTx-FD", {MII_AN_100BASETX_FD} }, +- { "100baseT4", {MII_AN_100BASET4} }, +- { "100baseTx", {MII_AN_100BASETX_FD | MII_AN_100BASETX_HD} }, +- { "10baseT", {MII_AN_10BASET_FD | MII_AN_10BASET_HD} }, +- +- { "1000baseT-HD", {0, MII_BMCR2_1000HALF} }, +- { "1000baseT-FD", {0, MII_BMCR2_1000FULL} }, +- { "1000baseT", {0, MII_BMCR2_1000HALF|MII_BMCR2_1000FULL} }, ++ { "10baseT-HD", {LPA_10HALF} }, ++ { "10baseT-FD", {LPA_10FULL} }, ++ { "100baseTx-HD", {LPA_100HALF} }, ++ { "100baseTx-FD", {LPA_100FULL} }, ++ { "100baseT4", {LPA_100BASE4} }, ++ { "100baseTx", {LPA_100FULL | LPA_100HALF} }, ++ { "10baseT", {LPA_10FULL | LPA_10HALF} }, ++ ++ { "1000baseT-HD", {0, ADVERTISE_1000HALF} }, ++ { "1000baseT-FD", {0, ADVERTISE_1000FULL} }, ++ { "1000baseT", {0, ADVERTISE_1000HALF|ADVERTISE_1000FULL} }, }; #define NMEDIA (sizeof(media)/sizeof(media[0])) -@@ -157,8 +159,8 @@ static int parse_media(char *arg) +@@ -166,8 +168,8 @@ static int parse_media(char *arg, unsign char *s; mask = strtoul(arg, &s, 16); if ((*arg != '\0') && (*s == '\0')) { - if ((mask & MII_AN_ABILITY_MASK) && -- !(mask & ~MII_AN_ABILITY_MASK)) +- !(mask & ~MII_AN_ABILITY_MASK)) { + if ((mask & LPA_ABILITY_MASK) && -+ !(mask & ~LPA_ABILITY_MASK)) - return mask; - goto failed; - } else { -@@ -202,13 +204,22 @@ int show_basic_mii(int sock, int phy_id) - char buf[100]; - int i, mii_val[32]; - int bmcr, bmsr, advert, lkpar; -- ++ !(mask & ~LPA_ABILITY_MASK)) { + *bmcr2 = 0; + return mask; + } +@@ -198,18 +200,19 @@ static const char *media_list(unsigned m + int i; + *buf = '\0'; + +- if (mask & MII_BMCR_SPEED1000) { +- if (mask2 & MII_BMCR2_1000HALF) { ++ if (mask & BMCR_SPEED1000) { ++ if (mask2 & ADVERTISE_1000HALF) { + strcat(buf, " "); + strcat(buf, "1000baseT-HD"); + if (best) goto out; + } +- if (mask2 & MII_BMCR2_1000FULL) { ++ if (mask2 & ADVERTISE_1000FULL) { + strcat(buf, " "); + strcat(buf, "1000baseT-FD"); + if (best) goto out; + } + } ++ + mask >>= 5; + for (i = 4; i >= 0; i--) { + if (mask & (1< 1) ? 32 : 8); i++) +- for (i = 0; i < ((verbose > 1) ? 32 : MII_BASIC_MAX); i++) - mii_val[i] = mdio_read(sock, i); -- -+ for (i = 0; i < ((verbose > 1) ? 32 : 8); i++) { ++ for (i = 0; i < ((verbose > 1) ? 32 : (MII_STAT1000+1)); i++) { + if ((i == MII_BMCR) || (i == MII_BMSR) || (i == MII_PHYSID1) || + (i == MII_PHYSID2) || (i == MII_ADVERTISE) || (i == MII_LPA) || + (i == MII_EXPANSION) || (i == MII_CTRL1000) || (i == MII_STAT1000) || @@ -88,15 +115,16 @@ diff -up net-tools-1.60/mii-tool.c.mii-refactor net-tools-1.60/mii-tool.c + else + mii_val[i] = 0; + } - if (mii_val[MII_BMCR] == 0xffff) { + + if (mii_val[MII_BMCR] == 0xffff || mii_val[MII_BMSR] == 0x0000) { fprintf(stderr, " No MII transceiver present!.\n"); - return -1; -@@ -216,28 +227,28 @@ int show_basic_mii(int sock, int phy_id) +@@ -243,31 +257,31 @@ int show_basic_mii(int sock, int phy_id) /* Descriptive rename. */ bmcr = mii_val[MII_BMCR]; bmsr = mii_val[MII_BMSR]; - advert = mii_val[MII_ANAR]; lkpar = mii_val[MII_ANLPAR]; + advert = mii_val[MII_ADVERTISE]; lkpar = mii_val[MII_LPA]; + bmcr2 = mii_val[MII_CTRL1000]; lpa2 = mii_val[MII_STAT1000]; sprintf(buf, "%s: ", ifr.ifr_name); - if (bmcr & MII_BMCR_AN_ENA) { @@ -107,7 +135,7 @@ diff -up net-tools-1.60/mii-tool.c.mii-refactor net-tools-1.60/mii-tool.c - strcat(buf, (lkpar & MII_AN_ACK) ? + strcat(buf, (lkpar & LPA_LPACK) ? "negotiated" : "no autonegotiation,"); - strcat(buf, media_list(advert & lkpar, 1)); + strcat(buf, media_list(advert & lkpar, bmcr2 & lpa2>>2, 1)); strcat(buf, ", "); } else { strcat(buf, "autonegotiation failed, "); @@ -118,17 +146,20 @@ diff -up net-tools-1.60/mii-tool.c.mii-refactor net-tools-1.60/mii-tool.c } } else { sprintf(buf+strlen(buf), "%s Mbit, %s duplex, ", -- (bmcr & MII_BMCR_100MBIT) ? "100" : "10", -- (bmcr & MII_BMCR_DUPLEX) ? "full" : "half"); -+ (bmcr & BMCR_SPEED100) ? "100" : "10", -+ (bmcr & BMCR_FULLDPLX) ? "full" : "half"); +- ((bmcr2 & (MII_BMCR2_1000HALF | MII_BMCR2_1000FULL)) & lpa2 >> 2) ++ ((bmcr2 & (ADVERTISE_1000HALF | ADVERTISE_1000FULL)) & lpa2 >> 2) + ? "1000" +- : (bmcr & MII_BMCR_100MBIT) ? "100" : "10", +- (bmcr & MII_BMCR_DUPLEX) ? "full" : "half"); ++ : (bmcr & BMCR_SPEED100) ? "100" : "10", ++ (bmcr & BMCR_FULLDPLX) ? "full" : "half"); } - strcat(buf, (bmsr & MII_BMSR_LINK_VALID) ? "link ok" : "no link"); + strcat(buf, (bmsr & BMSR_LSTATUS) ? "link ok" : "no link"); if (opt_watch) { if (opt_log) { -@@ -273,32 +284,32 @@ int show_basic_mii(int sock, int phy_id) +@@ -303,32 +317,32 @@ int show_basic_mii(int sock, int phy_id) ((mii_val[2]<<6)|(mii_val[3]>>10))&0xff, (mii_val[3]>>4)&0x3f, mii_val[3]&0x0f); printf(" basic mode: "); @@ -166,14 +197,14 @@ diff -up net-tools-1.60/mii-tool.c.mii-refactor net-tools-1.60/mii-tool.c printf("remote fault, "); - printf((bmsr & MII_BMSR_LINK_VALID) ? "link ok" : "no link"); + printf((bmsr & BMSR_LSTATUS) ? "link ok" : "no link"); - printf("\n capabilities:%s", media_list(bmsr >> 6, 0)); - printf("\n advertising: %s", media_list(advert, 0)); + printf("\n capabilities:%s", media_list(bmsr >> 6, bmcr2, 0)); + printf("\n advertising: %s", media_list(advert, lpa2 >> 2, 0)); - if (lkpar & MII_AN_ABILITY_MASK) + if (lkpar & LPA_ABILITY_MASK) - printf("\n link partner:%s", media_list(lkpar, 0)); + printf("\n link partner:%s", media_list(lkpar, bmcr2, 0)); printf("\n"); } -@@ -310,7 +321,7 @@ int show_basic_mii(int sock, int phy_id) +@@ -340,7 +354,7 @@ int show_basic_mii(int sock, int phy_id) static int do_one_xcvr(int skfd, char *ifname, int maybe) { @@ -182,14 +213,14 @@ diff -up net-tools-1.60/mii-tool.c.mii-refactor net-tools-1.60/mii-tool.c /* Get the vitals from the interface. */ strncpy(ifr.ifr_name, ifname, IFNAMSIZ); -@@ -328,23 +339,23 @@ static int do_one_xcvr(int skfd, char *i +@@ -358,23 +372,23 @@ static int do_one_xcvr(int skfd, char *i if (opt_reset) { printf("resetting the transceiver...\n"); - mdio_write(skfd, MII_BMCR, MII_BMCR_RESET); + mdio_write(skfd, MII_BMCR, BMCR_RESET); } - if (nway_advertise) { + if (nway_advertise > 0) { - mdio_write(skfd, MII_ANAR, nway_advertise | 1); + mdio_write(skfd, MII_ADVERTISE, nway_advertise | 1); opt_restart = 1; @@ -213,7 +244,7 @@ diff -up net-tools-1.60/mii-tool.c.mii-refactor net-tools-1.60/mii-tool.c mdio_write(skfd, MII_BMCR, bmcr); } -@@ -358,7 +369,7 @@ static int do_one_xcvr(int skfd, char *i +@@ -388,7 +402,7 @@ static int do_one_xcvr(int skfd, char *i static void watch_one_xcvr(int skfd, char *ifname, int index) { diff --git a/net-tools-1.60-nameif_strncpy.patch b/net-tools-1.60-nameif_strncpy.patch index 7568e21..c2b0762 100644 --- a/net-tools-1.60-nameif_strncpy.patch +++ b/net-tools-1.60-nameif_strncpy.patch @@ -1,13 +1,14 @@ ---- net-tools-1.60/nameif.c.ncpy 2006-10-03 14:24:21.000000000 +0200 -+++ net-tools-1.60/nameif.c 2006-10-03 14:22:43.000000000 +0200 -@@ -100,8 +100,8 @@ +diff -up net-tools-1.60/nameif.c.strncpy net-tools-1.60/nameif.c +--- net-tools-1.60/nameif.c.strncpy 2011-12-06 12:35:36.123687853 +0100 ++++ net-tools-1.60/nameif.c 2011-12-06 12:35:36.270686015 +0100 +@@ -100,8 +100,8 @@ int setname(char *oldname, char *newnam struct ifreq ifr; opensock(); memset(&ifr,0,sizeof(struct ifreq)); - strcpy(ifr.ifr_name, oldname); - strcpy(ifr.ifr_newname, newname); -+ strncpy(ifr.ifr_name, oldname, IF_NAMESIZE); -+ strncpy(ifr.ifr_newname, newname, IF_NAMESIZE); ++ strncpy(ifr.ifr_name, oldname, IFNAMSIZ); ++ strncpy(ifr.ifr_newname, newname, IFNAMSIZ); return ioctl(ctl_sk, SIOCSIFNAME, &ifr); } diff --git a/net-tools-1.60-netstat-p-basename.patch b/net-tools-1.60-netstat-p-basename.patch index c569079..b9fe077 100644 --- a/net-tools-1.60-netstat-p-basename.patch +++ b/net-tools-1.60-netstat-p-basename.patch @@ -1,7 +1,7 @@ diff -up net-tools-1.60/netstat.c.p-basename net-tools-1.60/netstat.c ---- net-tools-1.60/netstat.c.p-basename 2011-06-09 12:01:59.907721330 +0200 -+++ net-tools-1.60/netstat.c 2011-06-09 12:02:28.437352480 +0200 -@@ -413,7 +413,7 @@ static void prg_cache_load(void) +--- net-tools-1.60/netstat.c.p-basename 2011-12-06 14:54:17.023662287 +0100 ++++ net-tools-1.60/netstat.c 2011-12-06 14:56:27.852026709 +0100 +@@ -395,7 +395,7 @@ static void prg_cache_load(void) { char line[LINE_MAX],eacces=0; int procfdlen,fd,cmdllen,lnamelen; @@ -10,12 +10,7 @@ diff -up net-tools-1.60/netstat.c.p-basename net-tools-1.60/netstat.c unsigned long inode; const char *cs,*cmdlp; DIR *dirproc=NULL,*dirfd=NULL; -@@ -484,10 +484,12 @@ static void prg_cache_load(void) - continue; - if (cmdllen < sizeof(cmdlbuf) - 1) - cmdlbuf[cmdllen]='\0'; -- if ((cmdlp = strrchr(cmdlbuf, '/'))) -+ if (cmdlbuf[0] == '/' && (cmdlp = strrchr(cmdlbuf, '/'))) +@@ -459,6 +459,8 @@ static void prg_cache_load(void) cmdlp++; else cmdlp = cmdlbuf; diff --git a/net-tools-1.60-netstat-probe.patch b/net-tools-1.60-netstat-probe.patch index d6d7342..ce3313e 100644 --- a/net-tools-1.60-netstat-probe.patch +++ b/net-tools-1.60-netstat-probe.patch @@ -1,7 +1,7 @@ diff -up net-tools-1.60/netstat.c.probe net-tools-1.60/netstat.c ---- net-tools-1.60/netstat.c.probe 2008-10-15 12:47:41.000000000 +0200 -+++ net-tools-1.60/netstat.c 2008-10-15 12:49:48.000000000 +0200 -@@ -1061,6 +1061,11 @@ static void tcp_do_one(int lnr, const ch +--- net-tools-1.60/netstat.c.probe 2011-12-06 13:06:40.626378359 +0100 ++++ net-tools-1.60/netstat.c 2011-12-06 13:06:40.650378062 +0100 +@@ -1150,6 +1150,11 @@ static void tcp_do_one(int lnr, const ch (double) time_len / HZ, retr, timeout); break; diff --git a/net-tools-1.60-return.patch b/net-tools-1.60-return.patch deleted file mode 100644 index 8ef10f5..0000000 --- a/net-tools-1.60-return.patch +++ /dev/null @@ -1,28 +0,0 @@ ---- net-tools-1.60/nameif.c.return 2004-08-03 18:01:37.000000000 +0900 -+++ net-tools-1.60/nameif.c 2004-08-03 18:03:37.000000000 +0900 -@@ -27,6 +27,7 @@ - const char *fname = default_conf; - int use_syslog; - int ctl_sk = -1; -+int frag = 0; - - void err(char *msg) - { -@@ -288,13 +289,15 @@ - while (clist) { - struct change *ch = clist; - clist = clist->next; -- if (!ch->found) -+ if (!ch->found){ - warning(_("interface '%s' not found"), ch->ifname); -+ frag = 1; -+ } - free(ch); - } - - if (use_syslog) - closelog(); -- return 0; -+ return frag; - } - diff --git a/net-tools-1.60-scanf-format.patch b/net-tools-1.60-scanf-format.patch index f78d8d1..a0d91ed 100644 --- a/net-tools-1.60-scanf-format.patch +++ b/net-tools-1.60-scanf-format.patch @@ -1,20 +1,8 @@ -diff -up net-tools-1.60/arp.c.scanf-format net-tools-1.60/arp.c ---- net-tools-1.60/arp.c.scanf-format 2011-02-04 14:37:11.000000000 +0100 -+++ net-tools-1.60/arp.c 2011-02-04 14:37:11.000000000 +0100 -@@ -557,7 +557,7 @@ static int arp_show(char *name) - /* Read the ARP cache entries. */ - for (num = 0; num < entries; num++) { - fgets(line, sizeof(line), fp); -- if (sscanf(line, "%s 0x%x 0x%x %100s %100s %100s\n", -+ if (sscanf(line, "%s 0x%x 0x%x %99s %99s %99s\n", - ip, &type, &flags, hwa, mask, dev) < 4) - break; - diff -up net-tools-1.60/lib/inet6_gr.c.scanf-format net-tools-1.60/lib/inet6_gr.c ---- net-tools-1.60/lib/inet6_gr.c.scanf-format 2011-02-04 14:37:11.000000000 +0100 -+++ net-tools-1.60/lib/inet6_gr.c 2011-02-04 14:39:54.000000000 +0100 -@@ -78,7 +78,7 @@ int rprint_fib6(int ext, int numeric) - "Flags Metric Ref Use Iface\n")); +--- net-tools-1.60/lib/inet6_gr.c.scanf-format 2011-12-06 13:14:57.000000000 +0100 ++++ net-tools-1.60/lib/inet6_gr.c 2011-12-06 13:21:01.417616990 +0100 +@@ -82,7 +82,7 @@ int rprint_fib6(int ext, int numeric) + "Flag Met Ref Use If\n")); while (fgets(buff, 1023, fp)) { - num = sscanf(buff, "%4s%4s%4s%4s%4s%4s%4s%4s %02x %4s%4s%4s%4s%4s%4s%4s%4s %02x %4s%4s%4s%4s%4s%4s%4s%4s %08x %08x %08x %08x %s\n", @@ -23,120 +11,59 @@ diff -up net-tools-1.60/lib/inet6_gr.c.scanf-format net-tools-1.60/lib/inet6_gr. addr6p[4], addr6p[5], addr6p[6], addr6p[7], &prefix_len, diff -up net-tools-1.60/lib/inet_gr.c.scanf-format net-tools-1.60/lib/inet_gr.c ---- net-tools-1.60/lib/inet_gr.c.scanf-format 2000-10-28 12:59:42.000000000 +0200 -+++ net-tools-1.60/lib/inet_gr.c 2011-02-04 14:55:41.000000000 +0100 -@@ -68,19 +68,19 @@ int rprint_fib(int ext, int numeric) +--- net-tools-1.60/lib/inet_gr.c.scanf-format 2011-11-21 02:31:57.000000000 +0100 ++++ net-tools-1.60/lib/inet_gr.c 2011-12-06 13:23:25.408816852 +0100 +@@ -68,7 +68,7 @@ int rprint_fib(int ext, int numeric) mss = 0; fmt = proc_gen_fmt(_PATH_PROCNET_ROUTE, 0, fp, - "Iface", "%16s", -- "Destination", "%128s", -- "Gateway", "%128s", + "Iface", "%15s", -+ "Destination", "%127s", -+ "Gateway", "%127s", + "Destination", "%127s", + "Gateway", "%127s", "Flags", "%X", - "RefCnt", "%d", - "Use", "%d", - "Metric", "%d", -- "Mask", "%128s", -+ "Mask", "%127s", - "MTU", "%d", +@@ -80,7 +80,7 @@ int rprint_fib(int ext, int numeric) "Window", "%d", "IRTT", "%d", NULL); -- /* "%16s %128s %128s %X %d %d %d %128s %d %d %d\n" */ +- /* "%16s %127s %127s %X %d %d %d %127s %d %d %d\n" */ + /* "%15s %127s %127s %X %d %d %d %127s %d %d %d\n" */ if (!fmt) return 1; -@@ -268,21 +268,21 @@ int rprint_cache(int ext, int numeric) +@@ -268,7 +268,7 @@ int rprint_cache(int ext, int numeric) "MSS Window irtt HH Arp\n")); fmt = proc_gen_fmt(_PATH_PROCNET_RTCACHE, 0, fp, - "Iface", "%16s", -- "Destination", "%128s", -- "Gateway", "%128s", + "Iface", "%15s", -+ "Destination", "%127s", -+ "Gateway", "%127s", + "Destination", "%127s", + "Gateway", "%127s", "Flags", "%X", - "RefCnt", "%d", - "Use", "%d", - "Metric", "%d", -- "Source", "%128s", -+ "Source", "%127s", - "MTU", "%d", - "Window", "%d", - "IRTT", "%d", +@@ -282,7 +282,7 @@ int rprint_cache(int ext, int numeric) "HH", "%d", "ARP", "%d", NULL); -- /* "%16s %128s %128s %X %d %d %d %128s %d %d %d %d %d\n" */ +- /* "%16s %127s %127s %X %d %d %d %127s %d %d %d %d %d\n" */ + /* "%15s %127s %127s %X %d %d %d %127s %d %d %d %d %d\n" */ } if (format == 2) { -@@ -291,23 +291,23 @@ int rprint_cache(int ext, int numeric) +@@ -291,7 +291,7 @@ int rprint_cache(int ext, int numeric) "Flags Metric Ref Use Iface " "MSS Window irtt TOS HHRef HHUptod SpecDst\n")); fmt = proc_gen_fmt(_PATH_PROCNET_RTCACHE, 0, fp, - "Iface", "%16s", -- "Destination", "%128s", -- "Gateway", "%128s", + "Iface", "%15s", -+ "Destination", "%127s", -+ "Gateway", "%127s", + "Destination", "%127s", + "Gateway", "%127s", "Flags", "%X", - "RefCnt", "%d", - "Use", "%d", - "Metric", "%d", -- "Source", "%128s", -+ "Source", "%127s", - "MTU", "%d", - "Window", "%d", - "IRTT", "%d", - "TOS", "%d", - "HHRef", "%d", +@@ -307,7 +307,7 @@ int rprint_cache(int ext, int numeric) "HHUptod", "%d", -- "SpecDst", "%128s", -+ "SpecDst", "%127s", + "SpecDst", "%127s", NULL); -- /* "%16s %128s %128s %X %d %d %d %128s %d %d %d %d %d %128s\n" */ +- /* "%16s %127s %127s %X %d %d %d %127s %d %d %d %d %d %127s\n" */ + /* "%15s %127s %127s %X %d %d %d %127s %d %d %d %d %d %127s\n" */ } -diff -up net-tools-1.60/lib/interface.c.scanf-format net-tools-1.60/lib/interface.c ---- net-tools-1.60/lib/interface.c.scanf-format 2011-02-04 14:37:11.000000000 +0100 -+++ net-tools-1.60/lib/interface.c 2011-02-04 14:37:11.000000000 +0100 -@@ -713,7 +713,7 @@ void ife_print_long(struct interface *pt - #endif - #if HAVE_AFINET6 - FILE *f; -- char addr6[40], devname[20]; -+ char addr6[40], devname[21]; - struct sockaddr_in6 sap; - int plen, scope, dad_status, if_idx; - extern struct aftype inet6_aftype; -diff -up net-tools-1.60/netstat.c.scanf-format net-tools-1.60/netstat.c ---- net-tools-1.60/netstat.c.scanf-format 2011-02-04 14:37:11.000000000 +0100 -+++ net-tools-1.60/netstat.c 2011-02-04 14:37:11.000000000 +0100 -@@ -1103,7 +1103,7 @@ static void udp_do_one(int lnr, const ch - - more[0] = '\0'; - num = sscanf(line, -- "%d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %X %lX:%lX %X:%lX %lX %d %d %lu %512s\n", -+ "%d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %X %lX:%lX %X:%lX %lX %d %d %lu %511s\n", - &d, local_addr, &local_port, - rem_addr, &rem_port, &state, - &txq, &rxq, &timer_run, &time_len, &retr, &uid, &timeout, &inode, more); -@@ -1536,7 +1536,7 @@ static void raw_do_one(int lnr, const ch - - more[0] = '\0'; - num = sscanf(line, -- "%d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %X %lX:%lX %X:%lX %lX %d %d %lu %512s\n", -+ "%d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %X %lX:%lX %X:%lX %lX %d %d %lu %511s\n", - &d, local_addr, &local_port, rem_addr, &rem_port, &state, - &txq, &rxq, &timer_run, &time_len, &retr, &uid, &timeout, &inode, more); - diff --git a/net-tools-1.60-sctp.patch b/net-tools-1.60-sctp.patch deleted file mode 100644 index 6292999..0000000 --- a/net-tools-1.60-sctp.patch +++ /dev/null @@ -1,617 +0,0 @@ ---- net-tools-1.60/statistics.c.sctp 2006-04-13 10:06:45.000000000 -0400 -+++ net-tools-1.60/statistics.c 2006-04-13 10:06:45.000000000 -0400 -@@ -20,7 +20,7 @@ - #define UFWARN(x) - #endif - --int print_static,f_raw,f_tcp,f_udp,f_unknown = 1; -+int print_static,f_raw,f_tcp,f_udp,f_sctp,f_unknown = 1; - - enum State { - number = 0, opt_number, i_forward, i_inp_icmp, i_outp_icmp, i_rto_alg, -@@ -225,6 +225,27 @@ - { "TCPLoss", N_("%u TCP data loss events") }, - }; - -+struct entry Sctptab[] = -+{ -+ {"SctpCurrEstab", N_("%u Current Associations"), number}, -+ {"SctpActiveEstabs", N_("%u Active Associations"), number}, -+ {"SctpPassiveEstabs", N_("%u Passive Associations"), number}, -+ {"SctpAborteds", N_("%u Number of Aborteds "), number}, -+ {"SctpShutdowns", N_("%u Number of Graceful Terminations"), number}, -+ {"SctpOutOfBlues", N_("%u Number of Out of Blue packets"), number}, -+ {"SctpChecksumErrors", N_("%u Number of Packets with invalid Checksum"), number}, -+ {"SctpOutCtrlChunks", N_("%u Number of control chunks sent"), number}, -+ {"SctpOutOrderChunks", N_("%u Number of ordered chunks sent"), number}, -+ {"SctpOutUnorderChunks", N_("%u Number of Unordered chunks sent"), number}, -+ {"SctpInCtrlChunks", N_("%u Number of control chunks received"), number}, -+ {"SctpInOrderChunks", N_("%u Number of ordered chunks received"), number}, -+ {"SctpInUnorderChunks", N_("%u Number of Unordered chunks received"), number}, -+ {"SctpFragUsrMsgs", N_("%u Number of messages fragmented"), number}, -+ {"SctpReasmUsrMsgs", N_("%u Number of messages reassembled "), number}, -+ {"SctpOutSCTPPacks", N_("%u Number of SCTP packets sent"), number}, -+ {"SctpInSCTPPacks", N_("%u Number of SCTP packets received"), number}, -+}; -+ - struct tabtab { - char *title; - struct entry *tab; -@@ -238,6 +259,7 @@ - {"Icmp", Icmptab, sizeof(Icmptab), &f_raw}, - {"Tcp", Tcptab, sizeof(Tcptab), &f_tcp}, - {"Udp", Udptab, sizeof(Udptab), &f_udp}, -+ {"Sctp", Sctptab, sizeof(Sctptab), &f_sctp}, - {"TcpExt", Tcpexttab, sizeof(Tcpexttab), &f_tcp}, - {NULL} - }; -@@ -385,12 +407,39 @@ - return; - } - -+/* Process a file with name-value lines (like /proc/net/sctp/snmp) */ -+void process_fd2(FILE *f, const char *filename) -+{ -+ char buf1[1024]; -+ char *sp; -+ struct tabtab *tab; -+ -+ tab = newtable(snmptabs, "Sctp"); -+ -+ while (fgets(buf1, sizeof buf1, f)) { -+ sp = buf1 + strcspn(buf1, " \t\n"); -+ if (!sp) -+ goto formaterr; -+ *sp = '\0'; -+ sp++; -+ -+ sp += strspn(sp, " \t\n"); - --int parsesnmp(int flag_raw, int flag_tcp, int flag_udp) -+ if (*sp != '\0' && *(tab->flag)) -+ printval(tab, buf1, strtoul(sp, 0, 10)); -+ } -+ return; -+ -+formaterr: -+ fprintf(stderr,_("error parsing %s\n"), filename); -+ return; -+} -+ -+int parsesnmp(int flag_raw, int flag_tcp, int flag_udp, int flag_sctp) - { - FILE *f; - -- f_raw = flag_raw; f_tcp = flag_tcp; f_udp = flag_udp; -+ f_raw = flag_raw; f_tcp = flag_tcp; f_udp = flag_udp; f_sctp = flag_sctp; - - f = fopen("/proc/net/snmp", "r"); - if (!f) { -@@ -418,6 +467,16 @@ - - fclose(f); - } -+ -+ f = fopen("/proc/net/sctp/snmp", "r"); -+ if (f) { -+ process_fd2(f,"/proc/net/sctp/snmp"); -+ if (ferror(f)) -+ perror("/proc/net/sctp/snmp"); -+ -+ fclose(f); -+ } -+ - return(0); - } - ---- net-tools-1.60/netstat.c.sctp 2006-04-13 10:06:45.000000000 -0400 -+++ net-tools-1.60/netstat.c 2006-04-13 10:10:23.000000000 -0400 -@@ -58,6 +58,7 @@ - * - *990420 {1.38} Tuan Hoang removed a useless assignment from igmp_do_one() - *20010404 {1.39} Arnaldo Carvalho de Melo - use setlocale -+ *20050516 {1.40} Ivan Skytte Joergensen:Added SCTP support - * - * This program is free software; you can redistribute it - * and/or modify it under the terms of the GNU General -@@ -108,7 +109,7 @@ - #endif - - /* prototypes for statistics.c */ --int parsesnmp(int, int, int); -+int parsesnmp(int, int, int, int); - void inittab(void); - - typedef enum { -@@ -119,6 +120,29 @@ - SS_DISCONNECTING /* in process of disconnecting */ - } socket_state; - -+ -+#define SCTP_NSTATES 9 /* The number of states in array*/ -+ -+static const char *sctp_state[] = { -+ N_("EMPTY"), -+ N_("CLOSED"), -+ N_("COOKIE_WAIT"), -+ N_("COOKIE_ECHOED"), -+ N_("ESTABLISHED"), -+ N_("SHUTDOWN_PENDING"), -+ N_("SHUTDOWN_SENT"), -+ N_("SHUTDOWN_RECEIVED"), -+ N_("SHUTDOWN_ACK_SENT") -+}; -+ -+#define SCTP_NTYPES 3 /* The number of types in array */ -+ -+static const char *sctp_type[] = { -+ N_("udp"), -+ N_("udp-high-bw"), -+ N_("tcp") -+}; -+ - #define SO_ACCEPTCON (1<<16) /* performed a listen */ - #define SO_WAITDATA (1<<17) /* wait data to read */ - #define SO_NOSPACE (1<<18) /* no space to write */ -@@ -150,6 +174,7 @@ - int flag_raw = 0; - int flag_tcp = 0; - int flag_udp = 0; -+int flag_sctp= 0; - int flag_igmp= 0; - int flag_rom = 0; - int flag_exp = 1; -@@ -1189,6 +1214,365 @@ - udp_do_one); - } - -+static const char *sctp_socket_type_str(int type) { -+ if(type>=0 && type=0 && state=0 && state<=10) -+ return tcp_state[state]; -+ else { -+ static char state_str_buf[64]; -+ sprintf(state_str_buf,"UNKNOWN(%d)",state); -+ return state_str_buf; -+ } -+} -+ -+static struct aftype *process_sctp_addr_str(const char *addr_str, struct sockaddr *sa) -+{ -+ if (strchr(addr_str,':')) { -+#if HAVE_AFINET6 -+ extern struct aftype inet6_aftype; -+ /* Demangle what the kernel gives us */ -+ struct in6_addr in6; -+ char addr6_str[INET6_ADDRSTRLEN]; -+ unsigned u0,u1,u2,u3,u4,u5,u6,u7; -+ sscanf(addr_str, "%04X:%04X:%04X:%04X:%04X:%04X:%04X:%04X", -+ &u0, &u1, &u2, &u3, &u4, &u5, &u6, &u7); -+ in6.s6_addr16[0] = htons(u0); -+ in6.s6_addr16[1] = htons(u1); -+ in6.s6_addr16[2] = htons(u2); -+ in6.s6_addr16[3] = htons(u3); -+ in6.s6_addr16[4] = htons(u4); -+ in6.s6_addr16[5] = htons(u5); -+ in6.s6_addr16[6] = htons(u6); -+ in6.s6_addr16[7] = htons(u7); -+ -+ inet_ntop(AF_INET6, &in6, addr6_str, sizeof(addr6_str)); -+ inet6_aftype.input(1, addr6_str, sa); -+ sa->sa_family = AF_INET6; -+#endif -+ } else { -+ ((struct sockaddr_in*)sa)->sin_addr.s_addr = inet_addr(addr_str); -+ sa->sa_family = AF_INET; -+ } -+ return get_afntype(sa->sa_family); -+} -+ -+static void sctp_eps_do_one(int lnr, char *line) -+{ -+ char buffer[1024]; -+ int type, state, port; -+ int uid; -+ unsigned long inode; -+ -+ struct aftype *ap; -+#if HAVE_AFINET6 -+ struct sockaddr_in6 localaddr; -+#else -+ struct sockaddr_in localaddr; -+#endif -+ const char *sty_str; -+ const char *sst_str; -+ const char *lport_str; -+ const char *uid_str; -+ const char *inode_str; -+ const char *pladdr_str; -+ char *laddrs_str; -+ -+ if(lnr == 0) { -+ /* ENDPT SOCK STY SST HBKT LPORT uid inode pladdr LADDRS*/ -+ return; -+ } -+ -+ strtok(line," \t\n"); /*skip ptr*/ -+ strtok(0," \t\n"); /*skip ptr*/ -+ sty_str = strtok(0," \t\n"); -+ sst_str = strtok(0," \t\n"); -+ strtok(0," \t\n"); /*skip hash bucket*/ -+ lport_str=strtok(0," \t\n"); -+ uid_str = strtok(0," \t\n"); -+ inode_str = strtok(0," \t\n"); -+ pladdr_str = strtok(0," \t\n"); -+ laddrs_str=strtok(0,"\t\n"); -+ -+ type = atoi(sty_str); -+ state = atoi(sst_str); -+ port = atoi(lport_str); -+ uid = atoi(uid_str); -+ inode = strtoul(inode_str,0,0); -+ -+ if(flag_sctp<=1) { -+ /* only print the primary address */ -+ char local_addr[64]; -+ char local_port[16]; -+ -+ ap = process_sctp_addr_str(pladdr_str, (struct sockaddr*)&localaddr); -+ if(ap) -+ safe_strncpy(local_addr, -+ ap->sprint((struct sockaddr *) &localaddr, flag_not), -+ sizeof(local_addr)); -+ else -+ sprintf(local_addr,_("unsupported address family %d"), ((struct sockaddr*)&localaddr)->sa_family); -+ -+ snprintf(local_port, sizeof(local_port), "%s", -+ get_sname(htons(port), "sctp", -+ flag_not & FLAG_NUM_PORT)); -+ -+ printf("sctp "); -+ sprintf(buffer,"%s:%s", local_addr, local_port); -+ printf("%-47s", buffer); -+ printf(" %-12s", sctp_socket_state_str(state)); -+ } else { -+ /*print all addresses*/ -+ const char *this_local_addr; -+ int first=1; -+ char local_port[16]; -+ snprintf(local_port, sizeof(local_port), "%s", -+ get_sname(htons(port), "sctp", -+ flag_not & FLAG_NUM_PORT)); -+ for(this_local_addr=strtok(laddrs_str," \t\n"); -+ this_local_addr; -+ this_local_addr=strtok(0," \t\n")) -+ { -+ char local_addr[64]; -+ ap = process_sctp_addr_str(this_local_addr, (struct sockaddr*)&localaddr); -+ if(ap) -+ safe_strncpy(local_addr, -+ ap->sprint((struct sockaddr *) &localaddr, flag_not), -+ sizeof(local_addr)); -+ else -+ sprintf(local_addr,_("unsupported address family %d"), ((struct sockaddr*)&localaddr)->sa_family); -+ -+ if(!first) printf("\n"); -+ if(first) -+ printf("sctp "); -+ else -+ printf(" "); -+ sprintf(buffer,"%s:%s", local_addr, local_port); -+ printf("%-47s", buffer); -+ printf(" %-12s", first?sctp_socket_state_str(state):""); -+ first = 0; -+ } -+ } -+ -+ finish_this_one(uid,inode,""); -+} -+ -+static void sctp_assoc_do_one(int lnr, char *line) -+{ -+ char buffer[1024]; -+ int type, state, state2, lport,rport; -+ int uid; -+ unsigned rxqueue,txqueue; -+ unsigned long inode; -+ -+ struct aftype *ap; -+#if HAVE_AFINET6 -+ struct sockaddr_in6 localaddr,remoteaddr; -+#else -+ struct sockaddr_in localaddr,remoteaddr; -+#endif -+ const char *sty_str; -+ const char *sst_str; -+ const char *st_str; -+ const char *txqueue_str; -+ const char *rxqueue_str; -+ const char *lport_str,*rport_str; -+ const char *uid_str; -+ const char *inode_str; -+ const char *pladdr_str; -+ char *laddrs_str; -+ const char *praddr_str; -+ char *raddrs_str; -+ -+ if(lnr == 0) { -+ /* ASSOC SOCK STY SST ST HBKT tx_queue rx_queue uid inode LPORT RPORT pladdr praddr LADDRS <-> RADDRS*/ -+ return; -+ } -+ -+ strtok(line," \t\n"); /*skip ptr*/ -+ strtok(0," \t\n"); /*skip ptr*/ -+ sty_str = strtok(0," \t\n"); -+ sst_str = strtok(0," \t\n"); -+ st_str = strtok(0," \t\n"); -+ strtok(0," \t\n"); /*skip hash bucket*/ -+ txqueue_str = strtok(0," \t\n"); -+ rxqueue_str = strtok(0," \t\n"); -+ uid_str = strtok(0," \t\n"); -+ inode_str = strtok(0," \t\n"); -+ lport_str=strtok(0," \t\n"); -+ rport_str=strtok(0," \t\n"); -+ pladdr_str = strtok(0," \t\n"); -+ praddr_str = strtok(0," \t\n"); -+ laddrs_str=strtok(0,"<->\t\n"); -+ raddrs_str=strtok(0,"<->\t\n"); -+ -+ type = atoi(sty_str); -+ state = atoi(sst_str); -+ state2 = atoi(st_str); -+ txqueue = atoi(txqueue_str); -+ rxqueue = atoi(rxqueue_str); -+ uid = atoi(uid_str); -+ inode = strtoul(inode_str,0,0); -+ lport = atoi(lport_str); -+ rport = atoi(rport_str); -+ -+ if(flag_sctp<=1) { -+ /* only print the primary addresses */ -+ char local_addr[64]; -+ char local_port[16]; -+ char remote_addr[64]; -+ char remote_port[16]; -+ -+ ap = process_sctp_addr_str(pladdr_str, (struct sockaddr*)&localaddr); -+ if(ap) -+ safe_strncpy(local_addr, -+ ap->sprint((struct sockaddr *) &localaddr, flag_not), -+ sizeof(local_addr)); -+ else -+ sprintf(local_addr,_("unsupported address family %d"), ((struct sockaddr*)&localaddr)->sa_family); -+ -+ snprintf(local_port, sizeof(local_port), "%s", -+ get_sname(htons(lport), "sctp", -+ flag_not & FLAG_NUM_PORT)); -+ -+ ap = process_sctp_addr_str(praddr_str, (struct sockaddr*)&remoteaddr); -+ if(ap) -+ safe_strncpy(remote_addr, -+ ap->sprint((struct sockaddr *) &remoteaddr, flag_not), -+ sizeof(remote_addr)); -+ else -+ sprintf(remote_addr,_("unsupported address family %d"), ((struct sockaddr*)&remoteaddr)->sa_family); -+ -+ snprintf(remote_port, sizeof(remote_port), "%s", -+ get_sname(htons(rport), "sctp", -+ flag_not & FLAG_NUM_PORT)); -+ -+ printf("sctp"); -+ printf(" %6u %6u ", rxqueue, txqueue); -+ sprintf(buffer,"%s:%s", local_addr, local_port); -+ printf("%-23s", buffer); -+ printf(" "); -+ sprintf(buffer,"%s:%s", remote_addr, remote_port); -+ printf("%-23s", buffer); -+ printf(" %-12s", sctp_socket_state_str(state)); -+ } else { -+ /*print all addresses*/ -+ const char *this_local_addr; -+ const char *this_remote_addr; -+ char *ss1,*ss2; -+ int first=1; -+ char local_port[16]; -+ char remote_port[16]; -+ snprintf(local_port, sizeof(local_port), "%s", -+ get_sname(htons(lport), "sctp", -+ flag_not & FLAG_NUM_PORT)); -+ snprintf(remote_port, sizeof(remote_port), "%s", -+ get_sname(htons(rport), "sctp", -+ flag_not & FLAG_NUM_PORT)); -+ -+ this_local_addr=strtok_r(laddrs_str," \t\n",&ss1); -+ this_remote_addr=strtok_r(raddrs_str," \t\n",&ss2); -+ while(this_local_addr || this_remote_addr) { -+ char local_addr[64]; -+ char remote_addr[64]; -+ if(this_local_addr) { -+ ap = process_sctp_addr_str(this_local_addr, (struct sockaddr*)&localaddr); -+ if(ap) -+ safe_strncpy(local_addr, -+ ap->sprint((struct sockaddr *) &localaddr, flag_not), -+ sizeof(local_addr)); -+ else -+ sprintf(local_addr,_("unsupported address family %d"), ((struct sockaddr*)&localaddr)->sa_family); -+ } -+ if(this_remote_addr) { -+ ap = process_sctp_addr_str(this_remote_addr, (struct sockaddr*)&remoteaddr); -+ if(ap) -+ safe_strncpy(remote_addr, -+ ap->sprint((struct sockaddr *) &remoteaddr, flag_not), -+ sizeof(remote_addr)); -+ else -+ sprintf(remote_addr,_("unsupported address family %d"), ((struct sockaddr*)&remoteaddr)->sa_family); -+ } -+ -+ if(!first) printf("\n"); -+ if(first) -+ printf("sctp %6u %6u ", rxqueue, txqueue); -+ else -+ printf(" "); -+ if(this_local_addr) { -+ if(first) -+ sprintf(buffer,"%s:%s", local_addr, local_port); -+ else -+ sprintf(buffer,"%s", local_addr); -+ printf("%-23s", buffer); -+ } else -+ printf("%-23s", ""); -+ printf(" "); -+ if(this_remote_addr) { -+ if(first) -+ sprintf(buffer,"%s:%s", remote_addr, remote_port); -+ else -+ sprintf(buffer,"%s", remote_addr); -+ printf("%-23s", buffer); -+ } else -+ printf("%-23s", ""); -+ -+ printf(" %-12s", first?sctp_socket_state_str(state):""); -+ -+ first = 0; -+ this_local_addr=strtok_r(0," \t\n",&ss1); -+ this_remote_addr=strtok_r(0," \t\n",&ss2); -+ } -+ } -+ -+ finish_this_one(uid,inode,""); -+} -+ -+static int sctp_info_eps(void) -+{ -+#if !defined(_PATH_PROCNET_SCTP_EPS) -+#define _PATH_PROCNET_SCTP_EPS "/proc/net/sctp/eps" -+#endif -+ INFO_GUTS(_PATH_PROCNET_SCTP_EPS, "AF INET (sctp)", -+ sctp_eps_do_one); -+} -+ -+static int sctp_info_assocs(void) -+{ -+#if !defined(_PATH_PROCNET_SCTP_ASSOCS) -+#define _PATH_PROCNET_SCTP_ASSOCS "/proc/net/sctp/assocs" -+#endif -+ INFO_GUTS(_PATH_PROCNET_SCTP_ASSOCS, "AF INET (sctp)", -+ sctp_assoc_do_one); -+} -+ -+static int sctp_info(void) -+{ -+ if(flag_all) -+ sctp_info_eps(); -+ return sctp_info_assocs(); -+} -+ - static void raw_do_one(int lnr, const char *line) - { - char buffer[8192], local_addr[64], rem_addr[64]; -@@ -1742,7 +2126,7 @@ - fprintf(stderr, _(" -Z, --context display SELinux security context for sockets\n\n")); - - fprintf(stderr, _(" : Name of interface to monitor/list.\n")); -- fprintf(stderr, _(" ={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --netrom\n")); -+ fprintf(stderr, _(" ={-t|--tcp} {-u|--udp} {-S|--sctp} {-w|--raw} {-x|--unix} --ax25 --ipx --netrom\n")); - fprintf(stderr, _(" =Use '-A ' or '--'; default: %s\n"), DFLT_AF); - fprintf(stderr, _(" List of possible address families (which support routing):\n")); - print_aflist(1); /* 1 = routeable */ -@@ -1769,6 +2153,7 @@ - {"protocol", 1, 0, 'A'}, - {"tcp", 0, 0, 't'}, - {"udp", 0, 0, 'u'}, -+ {"sctp", 0, 0, 'S' }, - {"raw", 0, 0, 'w'}, - {"unix", 0, 0, 'x'}, - {"listening", 0, 0, 'l'}, -@@ -1801,7 +2186,7 @@ - - afname[0] = '\0'; - -- while ((i = getopt_long(argc, argv, "MCFA:acdegphiI::nNorstuVv?wxlZT", longopts, &lop)) != EOF) -+ while ((i = getopt_long(argc, argv, "MCFA:acdegphiI::nNorstuSVv?wxlZT", longopts, &lop)) != EOF) - switch (i) { - case -1: - break; -@@ -1887,10 +2272,12 @@ - case 't': - flag_tcp++; - break; -- - case 'u': - flag_udp++; - break; -+ case 'S': -+ flag_sctp++; -+ break; - case 'w': - flag_raw++; - break; -@@ -1932,13 +2319,13 @@ - if (flag_int + flag_rou + flag_mas + flag_sta > 1) - usage(); - -- if ((flag_inet || flag_inet6 || flag_sta) && !(flag_tcp || flag_udp || flag_raw)) -- flag_tcp = flag_udp = flag_raw = 1; -+ if ((flag_inet || flag_inet6 || flag_sta) && !(flag_tcp || flag_udp || flag_sctp || flag_raw)) -+ flag_tcp = flag_udp = flag_sctp = flag_raw = 1; - -- if ((flag_tcp || flag_udp || flag_raw || flag_igmp) && !(flag_inet || flag_inet6)) -+ if ((flag_tcp || flag_udp || flag_sctp || flag_raw || flag_igmp) && !(flag_inet || flag_inet6)) - flag_inet = flag_inet6 = 1; - -- flag_arg = flag_tcp + flag_udp + flag_raw + flag_unx + flag_ipx -+ flag_arg = flag_tcp + flag_udp + flag_sctp + flag_raw + flag_unx + flag_ipx - + flag_ax25 + flag_netrom + flag_igmp + flag_x25; - - if (flag_mas) { -@@ -1964,7 +2351,7 @@ - if (flag_sta) { - for(;;) { - inittab(); -- i = parsesnmp(flag_raw, flag_tcp, flag_udp); -+ i = parsesnmp(flag_raw, flag_tcp, flag_udp, flag_sctp); - - if(i || !flag_cnt) - break; -@@ -2006,7 +2393,7 @@ - return (i); - } - for (;;) { -- if (!flag_arg || flag_tcp || flag_udp || flag_raw) { -+ if (!flag_arg || flag_tcp || flag_udp || flag_sctp || flag_raw) { - #if HAVE_AFINET - prg_cache_load(); - printf(_("Active Internet connections ")); /* xxx */ -@@ -2044,6 +2431,11 @@ - if (i) - return (i); - } -+ if (!flag_arg || flag_sctp) { -+ i = sctp_info(); -+ if (i) -+ return (i); -+ } - if (!flag_arg || flag_raw) { - i = raw_info(); - if (i) diff --git a/net-tools-1.60-selinux.patch b/net-tools-1.60-selinux.patch index 811893a..f1f60ce 100644 --- a/net-tools-1.60-selinux.patch +++ b/net-tools-1.60-selinux.patch @@ -1,6 +1,7 @@ ---- net-tools-1.60/Makefile~ 2005-12-24 06:56:57.000000000 -0500 -+++ net-tools-1.60/Makefile 2005-12-29 16:54:06.000000000 -0500 -@@ -113,6 +113,12 @@ +diff -up net-tools-1.60/Makefile.selinux net-tools-1.60/Makefile +--- net-tools-1.60/Makefile.selinux 2011-11-21 02:31:57.000000000 +0100 ++++ net-tools-1.60/Makefile 2011-12-05 15:31:48.825659529 +0100 +@@ -114,6 +114,12 @@ endif NET_LIB = $(NET_LIB_PATH)/lib$(NET_LIB_NAME).a @@ -10,12 +11,13 @@ +else +endif + - CFLAGS += $(COPTS) -I. -idirafter ./include/ -I$(NET_LIB_PATH) - LDFLAGS += $(LOPTS) -L$(NET_LIB_PATH) + CPPFLAGS += -I. -I$(TOPDIR)/include -I$(NET_LIB_PATH) + LDFLAGS += -L$(NET_LIB_PATH) ---- net-tools-1.60/netstat.c~ 2005-12-24 06:56:57.000000000 -0500 -+++ net-tools-1.60/netstat.c 2005-12-29 16:54:07.000000000 -0500 -@@ -86,6 +86,11 @@ +diff -up net-tools-1.60/netstat.c.selinux net-tools-1.60/netstat.c +--- net-tools-1.60/netstat.c.selinux 2011-12-05 15:28:23.187230365 +0100 ++++ net-tools-1.60/netstat.c 2011-12-05 15:37:31.376377055 +0100 +@@ -89,6 +89,11 @@ #include #include @@ -27,15 +29,15 @@ #include "net-support.h" #include "pathnames.h" #include "version.h" -@@ -96,6 +101,7 @@ - #include "util.h" +@@ -100,6 +105,7 @@ + #include "proc.h" #define PROGNAME_WIDTH 20 +#define SELINUX_WIDTH 50 #if !defined(s6_addr32) && defined(in6a_words) #define s6_addr32 in6a_words /* libinet6 */ -@@ -150,6 +156,7 @@ +@@ -159,6 +165,7 @@ int flag_wide= 0; int flag_prg = 0; int flag_arg = 0; int flag_ver = 0; @@ -43,7 +45,7 @@ FILE *procinfo; -@@ -213,12 +220,17 @@ +@@ -222,12 +229,17 @@ FILE *procinfo; #define PROGNAME_WIDTH1(s) PROGNAME_WIDTH2(s) #define PROGNAME_WIDTH2(s) #s @@ -55,35 +57,35 @@ static struct prg_node { struct prg_node *next; - int inode; + unsigned long inode; char name[PROGNAME_WIDTH]; + char scon[SELINUX_WIDTH]; } *prg_hash[PRG_HASH_SIZE]; static char prg_cache_loaded = 0; -@@ -226,9 +238,12 @@ +@@ -235,9 +247,12 @@ static char prg_cache_loaded = 0; #define PRG_HASHIT(x) ((x) % PRG_HASH_SIZE) #define PROGNAME_BANNER "PID/Program name" +#define SELINUX_BANNER "Security Context" - #define print_progname_banner() do { if (flag_prg) printf("%-" PROGNAME_WIDTHs "s"," " PROGNAME_BANNER); } while (0) + #define print_progname_banner() do { if (flag_prg) printf(" %-" PROGNAME_WIDTHs "s",PROGNAME_BANNER); } while (0) +#define print_selinux_banner() do { if (flag_selinux) printf("%-" SELINUX_WIDTHs "s"," " SELINUX_BANNER); } while (0) + #define PRG_LOCAL_ADDRESS "local_address" #define PRG_INODE "inode" #define PRG_SOCKET_PFX "socket:[" -@@ -250,7 +265,7 @@ - /* NOT working as of glibc-2.0.7: */ - #undef DIRENT_HAVE_D_TYPE_WORKS +@@ -257,7 +272,7 @@ static char prg_cache_loaded = 0; + #define PATH_CMDLINE "cmdline" + #define PATH_CMDLINEl strlen(PATH_CMDLINE) --static void prg_cache_add(int inode, char *name) -+static void prg_cache_add(int inode, char *name, char *scon) +-static void prg_cache_add(unsigned long inode, char *name) ++static void prg_cache_add(unsigned long inode, char *name, char *scon) { unsigned hi = PRG_HASHIT(inode); struct prg_node **pnp,*pn; -@@ -271,6 +286,14 @@ +@@ -278,6 +293,14 @@ static void prg_cache_add(unsigned long if (strlen(name)>sizeof(pn->name)-1) name[sizeof(pn->name)-1]='\0'; strcpy(pn->name,name); @@ -98,7 +100,7 @@ } static const char *prg_cache_get(unsigned long inode) -@@ -283,6 +306,16 @@ +@@ -290,6 +313,16 @@ static const char *prg_cache_get(unsigne return("-"); } @@ -115,7 +117,7 @@ static void prg_cache_clear(void) { struct prg_node **pnp,*pn; -@@ -348,6 +381,7 @@ +@@ -367,6 +400,7 @@ static void prg_cache_load(void) const char *cs,*cmdlp; DIR *dirproc=NULL,*dirfd=NULL; struct dirent *direproc,*direfd; @@ -123,7 +125,7 @@ if (prg_cache_loaded || !flag_prg) return; prg_cache_loaded=1; -@@ -415,7 +449,15 @@ +@@ -428,7 +462,15 @@ static void prg_cache_load(void) } snprintf(finbuf, sizeof(finbuf), "%s/%s", direproc->d_name, cmdlp); @@ -140,32 +142,44 @@ } closedir(dirfd); dirfd = NULL; -@@ -1385,6 +1428,8 @@ - printf("- "); +@@ -662,6 +704,9 @@ static void finish_this_one(int uid, uns + } if (flag_prg) - printf("%-" PROGNAME_WIDTHs "s",(has & HAS_INODE?prg_cache_get(inode):"-")); + printf(" %-" PROGNAME_WIDTHs "s",prg_cache_get(inode)); + if (flag_selinux) -+ printf("%-" SELINUX_WIDTHs "s",(has & HAS_INODE?prg_cache_get_con(inode):"-")); - puts(path); ++ printf(" %-" SELINUX_WIDTHs "s",prg_cache_get_con(inode)); ++ + if (flag_opt) + printf(" %s", timers); + putchar('\n'); +@@ -1484,7 +1529,9 @@ static void unix_do_one(int nr, const ch + printf("- "); + if (flag_prg) + printf(" %-" PROGNAME_WIDTHs "s",(has & HAS_INODE?prg_cache_get(inode):"-")); +- ++ if (flag_selinux) ++ printf(" %-" SELINUX_WIDTHs "s",(has & HAS_INODE?prg_cache_get_con(inode):"-")); ++ + printf(" %s\n", path); } -@@ -1403,6 +1448,7 @@ +@@ -1503,6 +1550,7 @@ static int unix_info(void) - printf(_("\nProto RefCnt Flags Type State I-Node")); + printf(_("\nProto RefCnt Flags Type State I-Node ")); print_progname_banner(); + print_selinux_banner(); printf(_(" Path\n")); /* xxx */ { -@@ -1682,6 +1728,7 @@ - fprintf(stderr, _(" -o, --timers display timers\n")); - fprintf(stderr, _(" -F, --fib display Forwarding Information Base (default)\n")); - fprintf(stderr, _(" -C, --cache display routing cache instead of FIB\n\n")); -+ fprintf(stderr, _(" -Z, --context display SELinux security context for sockets\n\n")); +@@ -1802,6 +1850,7 @@ static void usage(void) + fprintf(stderr, _(" -o, --timers display timers\n")); + fprintf(stderr, _(" -F, --fib display Forwarding Information Base (default)\n")); + fprintf(stderr, _(" -C, --cache display routing cache instead of FIB\n\n")); ++ fprintf(stderr, _(" -Z, --context display SELinux security context for sockets\n\n")); - fprintf(stderr, _(" : Name of interface to monitor/list.\n")); - fprintf(stderr, _(" ={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --netrom\n")); -@@ -1729,6 +1776,7 @@ + fprintf(stderr, _(" ={-t|--tcp} {-u|--udp} {-U|--udplite} {-w|--raw} {-x|--unix} --ax25 --ipx --netrom\n")); + fprintf(stderr, _(" =Use '-6|-4' or '-A ' or '--'; default: %s\n"), DFLT_AF); +@@ -1850,6 +1899,7 @@ int main {"cache", 0, 0, 'C'}, {"fib", 0, 0, 'F'}, {"groups", 0, 0, 'g'}, @@ -173,16 +187,16 @@ {NULL, 0, 0, 0} }; -@@ -1741,7 +1789,7 @@ +@@ -1861,7 +1911,7 @@ int main + getroute_init(); /* Set up AF routing support */ afname[0] = '\0'; - -- while ((i = getopt_long(argc, argv, "MCFA:acdegphiI::nNorstuVv?wxl", longopts, &lop)) != EOF) -+ while ((i = getopt_long(argc, argv, "MCFA:acdegphiI::nNorstuVv?wxlZ", longopts, &lop)) != EOF) +- while ((i = getopt_long(argc, argv, "A:CFMacdeghiI::lnNoprsStuUvVWwx64?", longopts, &lop)) != EOF) ++ while ((i = getopt_long(argc, argv, "A:CFMacdeghiI::lnNoprsStuUvVWwx64?Z", longopts, &lop)) != EOF) switch (i) { case -1: break; -@@ -1838,6 +1886,20 @@ +@@ -1973,6 +2023,20 @@ int main if (aftrans_opt("unix")) exit(1); break; @@ -203,19 +217,7 @@ case '?': case 'h': usage(); ---- net-tools-1.60/netstat.c.sel 2007-05-21 14:02:08.000000000 -0400 -+++ net-tools-1.60/netstat.c 2007-05-21 14:03:23.000000000 -0400 -@@ -769,6 +769,9 @@ static void finish_this_one(int uid, uns - } - if (flag_prg) - printf("%-" PROGNAME_WIDTHs "s",prg_cache_get(inode)); -+ if (flag_selinux) -+ printf("%-" SELINUX_WIDTHs "s",prg_cache_get_con(inode)); -+ - if (flag_opt) - printf("%s", timers); - putchar('\n'); -@@ -2420,6 +2423,7 @@ int main +@@ -2099,6 +2163,7 @@ int main if (flag_exp > 1) printf(_(" User Inode ")); print_progname_banner(); diff --git a/net-tools-1.60-statalias.patch b/net-tools-1.60-statalias.patch index 7c74f74..d11b8c9 100644 --- a/net-tools-1.60-statalias.patch +++ b/net-tools-1.60-statalias.patch @@ -1,6 +1,7 @@ ---- net-tools-1.60/lib/interface.c.statalias 2005-01-07 12:49:14.084104032 +0100 -+++ net-tools-1.60/lib/interface.c 2005-01-07 12:49:38.527388088 +0100 -@@ -395,9 +395,11 @@ +diff -up net-tools-1.60/lib/interface.c.statalias net-tools-1.60/lib/interface.c +--- net-tools-1.60/lib/interface.c.statalias 2011-12-02 16:37:32.258671807 +0100 ++++ net-tools-1.60/lib/interface.c 2011-12-02 16:37:33.193660117 +0100 +@@ -403,9 +403,11 @@ static int if_readlist_rep(char *target, char *s, name[IFNAMSIZ]; s = get_name(name, buf); get_dev_fields(s, ife); diff --git a/net-tools-1.60-statistics-doubleword.patch b/net-tools-1.60-statistics-doubleword.patch index 3318ce8..a52f0cc 100644 --- a/net-tools-1.60-statistics-doubleword.patch +++ b/net-tools-1.60-statistics-doubleword.patch @@ -1,28 +1,28 @@ diff -up net-tools-1.60/statistics.c.doubleword net-tools-1.60/statistics.c ---- net-tools-1.60/statistics.c.doubleword 2010-08-10 15:20:11.000000000 +0200 -+++ net-tools-1.60/statistics.c 2010-08-10 15:21:24.000000000 +0200 -@@ -63,54 +63,54 @@ static enum State state; +--- net-tools-1.60/statistics.c.doubleword 2011-12-02 15:41:03.000000000 +0100 ++++ net-tools-1.60/statistics.c 2011-12-02 15:55:22.202301865 +0100 +@@ -64,115 +64,115 @@ static enum State state; struct entry Iptab[] = { {"Forwarding", N_("Forwarding is %s"), i_forward | I_STATIC}, -- {"DefaultTTL", N_("Default TTL is %lu"), number | I_STATIC}, -- {"InReceives", N_("%lu total packets received"), number}, -- {"InHdrErrors", N_("%lu with invalid headers"), opt_number}, -- {"InAddrErrors", N_("%lu with invalid addresses"), opt_number}, -- {"ForwDatagrams", N_("%lu forwarded"), number}, -- {"InUnknownProtos", N_("%lu with unknown protocol"), opt_number}, -- {"InDiscards", N_("%lu incoming packets discarded"), number}, -- {"InDelivers", N_("%lu incoming packets delivered"), number}, -- {"OutRequests", N_("%lu requests sent out"), number}, /*? */ -- {"OutDiscards", N_("%lu outgoing packets dropped"), opt_number}, -- {"OutNoRoutes", N_("%lu dropped because of missing route"), opt_number}, -- {"ReasmTimeout", N_("%lu fragments dropped after timeout"), opt_number}, -- {"ReasmReqds", N_("%lu reassemblies required"), opt_number}, /* ? */ -- {"ReasmOKs", N_("%lu packets reassembled ok"), opt_number}, -- {"ReasmFails", N_("%lu packet reassembles failed"), opt_number}, -- {"FragOKs", N_("%lu fragments received ok"), opt_number}, -- {"FragFails", N_("%lu fragments failed"), opt_number}, -- {"FragCreates", N_("%lu fragments created"), opt_number} +- {"DefaultTTL", N_("Default TTL is %u"), number | I_STATIC}, +- {"InReceives", N_("%u total packets received"), number}, +- {"InHdrErrors", N_("%u with invalid headers"), opt_number}, +- {"InAddrErrors", N_("%u with invalid addresses"), opt_number}, +- {"ForwDatagrams", N_("%u forwarded"), number}, +- {"InUnknownProtos", N_("%u with unknown protocol"), opt_number}, +- {"InDiscards", N_("%u incoming packets discarded"), number}, +- {"InDelivers", N_("%u incoming packets delivered"), number}, +- {"OutRequests", N_("%u requests sent out"), number}, /*? */ +- {"OutDiscards", N_("%u outgoing packets dropped"), opt_number}, +- {"OutNoRoutes", N_("%u dropped because of missing route"), opt_number}, +- {"ReasmTimeout", N_("%u fragments dropped after timeout"), opt_number}, +- {"ReasmReqds", N_("%u reassemblies required"), opt_number}, /* ? */ +- {"ReasmOKs", N_("%u packets reassembled ok"), opt_number}, +- {"ReasmFails", N_("%u packet reassembles failed"), opt_number}, +- {"FragOKs", N_("%u fragments received ok"), opt_number}, +- {"FragFails", N_("%u fragments failed"), opt_number}, +- {"FragCreates", N_("%u fragments created"), opt_number} + {"DefaultTTL", N_("Default TTL is %llu"), number | I_STATIC}, + {"InReceives", N_("%llu total packets received"), number}, + {"InHdrErrors", N_("%llu with invalid headers"), opt_number}, @@ -43,34 +43,82 @@ diff -up net-tools-1.60/statistics.c.doubleword net-tools-1.60/statistics.c + {"FragCreates", N_("%llu fragments created"), opt_number} }; + struct entry Ip6tab[] = + { +- {"Ip6InReceives", N_("%u total packets received"), number}, +- {"Ip6InHdrErrors", N_("%u with invalid headers"), opt_number}, +- {"Ip6InTooBigErrors", N_("%u with packets too big"), opt_number}, +- {"Ip6InNoRoutes", N_("%u incoming packets with no route"), opt_number}, +- {"Ip6InAddrErrors", N_("%u with invalid addresses"), opt_number}, +- {"Ip6InUnknownProtos", N_("%u with unknown protocol"), opt_number}, +- {"Ip6InTruncatedPkts", N_("%u with truncated packets"), opt_number}, +- {"Ip6InDiscards", N_("%u incoming packets discarded"), number}, +- {"Ip6InDelivers", N_("%u incoming packets delivered"), number}, +- {"Ip6OutForwDatagrams", N_("%u forwarded"), number}, +- {"Ip6OutRequests", N_("%u requests sent out"), number}, /*? */ +- {"Ip6OutDiscards", N_("%u outgoing packets dropped"), opt_number}, +- {"Ip6OutNoRoutes", N_("%u dropped because of missing route"), opt_number}, +- {"Ip6ReasmTimeout", N_("%u fragments dropped after timeout"), opt_number}, +- {"Ip6ReasmReqds", N_("%u reassemblies required"), opt_number}, /* ? */ +- {"Ip6ReasmOKs", N_("%u packets reassembled ok"), opt_number}, +- {"Ip6ReasmFails", N_("%u packet reassembles failed"), opt_number}, +- {"Ip6FragOKs", N_("%u fragments received ok"), opt_number}, +- {"Ip6FragFails", N_("%u fragments failed"), opt_number}, +- {"Ip6FragCreates", N_("%u fragments created"), opt_number}, +- {"Ip6InMcastPkts", N_("%u incoming multicast packets"), opt_number}, +- {"Ip6OutMcastPkts", N_("%u outgoing multicast packets"), opt_number} ++ {"Ip6InReceives", N_("%llu total packets received"), number}, ++ {"Ip6InHdrErrors", N_("%llu with invalid headers"), opt_number}, ++ {"Ip6InTooBigErrors", N_("%llu with packets too big"), opt_number}, ++ {"Ip6InNoRoutes", N_("%llu incoming packets with no route"), opt_number}, ++ {"Ip6InAddrErrors", N_("%llu with invalid addresses"), opt_number}, ++ {"Ip6InUnknownProtos", N_("%llu with unknown protocol"), opt_number}, ++ {"Ip6InTruncatedPkts", N_("%llu with truncated packets"), opt_number}, ++ {"Ip6InDiscards", N_("%llu incoming packets discarded"), number}, ++ {"Ip6InDelivers", N_("%llu incoming packets delivered"), number}, ++ {"Ip6OutForwDatagrams", N_("%llu forwarded"), number}, ++ {"Ip6OutRequests", N_("%llu requests sent out"), number}, /*? */ ++ {"Ip6OutDiscards", N_("%llu outgoing packets dropped"), opt_number}, ++ {"Ip6OutNoRoutes", N_("%llu dropped because of missing route"), opt_number}, ++ {"Ip6ReasmTimeout", N_("%llu fragments dropped after timeout"), opt_number}, ++ {"Ip6ReasmReqds", N_("%llu reassemblies required"), opt_number}, /* ? */ ++ {"Ip6ReasmOKs", N_("%llu packets reassembled ok"), opt_number}, ++ {"Ip6ReasmFails", N_("%llu packet reassembles failed"), opt_number}, ++ {"Ip6FragOKs", N_("%llu fragments received ok"), opt_number}, ++ {"Ip6FragFails", N_("%llu fragments failed"), opt_number}, ++ {"Ip6FragCreates", N_("%llu fragments created"), opt_number}, ++ {"Ip6InMcastPkts", N_("%llu incoming multicast packets"), opt_number}, ++ {"Ip6OutMcastPkts", N_("%llu outgoing multicast packets"), opt_number} + }; + struct entry Icmptab[] = { -- {"InMsgs", N_("%lu ICMP messages received"), number}, -- {"InErrors", N_("%lu input ICMP message failed."), number}, -- {"InDestUnreachs", N_("destination unreachable: %lu"), i_inp_icmp | I_TITLE}, -- {"InTimeExcds", N_("timeout in transit: %lu"), i_inp_icmp | I_TITLE}, -- {"InParmProbs", N_("wrong parameters: %lu"), i_inp_icmp | I_TITLE}, /*? */ -- {"InSrcQuenchs", N_("source quenches: %lu"), i_inp_icmp | I_TITLE}, -- {"InRedirects", N_("redirects: %lu"), i_inp_icmp | I_TITLE}, -- {"InEchos", N_("echo requests: %lu"), i_inp_icmp | I_TITLE}, -- {"InEchoReps", N_("echo replies: %lu"), i_inp_icmp | I_TITLE}, -- {"InTimestamps", N_("timestamp request: %lu"), i_inp_icmp | I_TITLE}, -- {"InTimestampReps", N_("timestamp reply: %lu"), i_inp_icmp | I_TITLE}, -- {"InAddrMasks", N_("address mask request: %lu"), i_inp_icmp | I_TITLE}, /*? */ -- {"InAddrMaskReps", N_("address mask replies: %lu"), i_inp_icmp | I_TITLE}, /*? */ -- {"OutMsgs", N_("%lu ICMP messages sent"), number}, -- {"OutErrors", N_("%lu ICMP messages failed"), number}, -- {"OutDestUnreachs", N_("destination unreachable: %lu"), i_outp_icmp | I_TITLE}, -- {"OutTimeExcds", N_("time exceeded: %lu"), i_outp_icmp | I_TITLE}, -- {"OutParmProbs", N_("wrong parameters: %lu"), i_outp_icmp | I_TITLE}, /*? */ -- {"OutSrcQuenchs", N_("source quench: %lu"), i_outp_icmp | I_TITLE}, -- {"OutRedirects", N_("redirect: %lu"), i_outp_icmp | I_TITLE}, -- {"OutEchos", N_("echo request: %lu"), i_outp_icmp | I_TITLE}, -- {"OutEchoReps", N_("echo replies: %lu"), i_outp_icmp | I_TITLE}, -- {"OutTimestamps", N_("timestamp requests: %lu"), i_outp_icmp | I_TITLE}, -- {"OutTimestampReps", N_("timestamp replies: %lu"), i_outp_icmp | I_TITLE}, -- {"OutAddrMasks", N_("address mask requests: %lu"), i_outp_icmp | I_TITLE}, -- {"OutAddrMaskReps", N_("address mask replies: %lu"), i_outp_icmp | I_TITLE}, +- {"InMsgs", N_("%u ICMP messages received"), number}, +- {"InErrors", N_("%u input ICMP message failed."), number}, +- {"InDestUnreachs", N_("destination unreachable: %u"), i_inp_icmp | I_TITLE}, +- {"InTimeExcds", N_("timeout in transit: %u"), i_inp_icmp | I_TITLE}, +- {"InParmProbs", N_("wrong parameters: %u"), i_inp_icmp | I_TITLE}, /*? */ +- {"InSrcQuenchs", N_("source quenches: %u"), i_inp_icmp | I_TITLE}, +- {"InRedirects", N_("redirects: %u"), i_inp_icmp | I_TITLE}, +- {"InEchos", N_("echo requests: %u"), i_inp_icmp | I_TITLE}, +- {"InEchoReps", N_("echo replies: %u"), i_inp_icmp | I_TITLE}, +- {"InTimestamps", N_("timestamp request: %u"), i_inp_icmp | I_TITLE}, +- {"InTimestampReps", N_("timestamp reply: %u"), i_inp_icmp | I_TITLE}, +- {"InAddrMasks", N_("address mask request: %u"), i_inp_icmp | I_TITLE}, /*? */ +- {"InAddrMaskReps", N_("address mask replies: %u"), i_inp_icmp | I_TITLE}, /*? */ +- {"OutMsgs", N_("%u ICMP messages sent"), number}, +- {"OutErrors", N_("%u ICMP messages failed"), number}, +- {"OutDestUnreachs", N_("destination unreachable: %u"), i_outp_icmp | I_TITLE}, +- {"OutTimeExcds", N_("time exceeded: %u"), i_outp_icmp | I_TITLE}, +- {"OutParmProbs", N_("wrong parameters: %u"), i_outp_icmp | I_TITLE}, /*? */ +- {"OutSrcQuenchs", N_("source quench: %u"), i_outp_icmp | I_TITLE}, +- {"OutRedirects", N_("redirect: %u"), i_outp_icmp | I_TITLE}, +- {"OutEchos", N_("echo request: %u"), i_outp_icmp | I_TITLE}, +- {"OutEchoReps", N_("echo replies: %u"), i_outp_icmp | I_TITLE}, +- {"OutTimestamps", N_("timestamp requests: %u"), i_outp_icmp | I_TITLE}, +- {"OutTimestampReps", N_("timestamp replies: %u"), i_outp_icmp | I_TITLE}, +- {"OutAddrMasks", N_("address mask requests: %u"), i_outp_icmp | I_TITLE}, +- {"OutAddrMaskReps", N_("address mask replies: %u"), i_outp_icmp | I_TITLE}, + {"InMsgs", N_("%llu ICMP messages received"), number}, + {"InErrors", N_("%llu input ICMP message failed."), number}, + {"InDestUnreachs", N_("destination unreachable: %llu"), i_inp_icmp | I_TITLE}, @@ -99,21 +147,87 @@ diff -up net-tools-1.60/statistics.c.doubleword net-tools-1.60/statistics.c + {"OutAddrMaskReps", N_("address mask replies: %llu"), i_outp_icmp | I_TITLE}, }; + struct entry Icmp6tab[] = + { +- {"Icmp6InMsgs", N_("%u ICMP messages received"), number}, +- {"Icmp6InErrors", N_("%u input ICMP message failed."), number}, +- {"Icmp6InDestUnreachs", N_("destination unreachable: %u"), i_inp_icmp | I_TITLE}, +- {"Icmp6InPktTooBigs", N_("packets too big: %u"), i_inp_icmp | I_TITLE}, +- {"Icmp6InTimeExcds", N_("received ICMPv6 time exceeded: %u"), i_inp_icmp | I_TITLE}, +- {"Icmp6InParmProblems", N_("parameter problem: %u"), i_inp_icmp | I_TITLE}, +- {"Icmp6InEchos", N_("echo requests: %u"), i_inp_icmp | I_TITLE}, +- {"Icmp6InEchoReplies", N_("echo replies: %u"), i_inp_icmp | I_TITLE}, +- {"Icmp6InGroupMembQueries", N_("group member queries: %u"), i_inp_icmp | I_TITLE}, +- {"Icmp6InGroupMembResponses", N_("group member responses: %u"), i_inp_icmp | I_TITLE}, +- {"Icmp6InGroupMembReductions", N_("group member reductions: %u"), i_inp_icmp | I_TITLE}, +- {"Icmp6InRouterSolicits", N_("router solicits: %u"), i_inp_icmp | I_TITLE}, +- {"Icmp6InRouterAdvertisements", N_("router advertisement: %u"), i_inp_icmp | I_TITLE}, +- {"Icmp6InNeighborSolicits", N_("neighbour solicits: %u"), i_inp_icmp | I_TITLE}, +- {"Icmp6InNeighborAdvertisements", N_("neighbour advertisement: %u"), i_inp_icmp | I_TITLE}, +- {"Icmp6InRedirects", N_("redirects: %u"), i_inp_icmp | I_TITLE}, +- {"Icmp6OutMsgs", N_("%u ICMP messages sent"), number}, +- {"Icmp6OutDestUnreachs", N_("destination unreachable: %u"), i_outp_icmp | I_TITLE}, +- {"Icmp6OutPktTooBigs", N_("packets too big: %u"), i_outp_icmp | I_TITLE}, +- {"Icmp6OutTimeExcds", N_("sent ICMPv6 time exceeded: %u"), i_outp_icmp | I_TITLE}, +- {"Icmp6OutParmProblems", N_("parameter problem: %u"), i_outp_icmp | I_TITLE}, +- {"Icmp6OutEchos", N_("echo requests: %u"), i_outp_icmp | I_TITLE}, +- {"Icmp6OutEchoReplies", N_("echo replies: %u"), i_outp_icmp | I_TITLE}, +- {"Icmp6OutGroupMembQueries", N_("group member queries: %u"), i_outp_icmp | I_TITLE}, +- {"Icmp6OutGroupMembResponses", N_("group member responses: %u"), i_outp_icmp | I_TITLE}, +- {"Icmp6OutGroupMembReductions", N_("group member reductions: %u"), i_outp_icmp | I_TITLE}, +- {"Icmp6OutRouterSolicits", N_("router solicits: %u"), i_outp_icmp | I_TITLE}, +- {"Icmp6OutRouterAdvertisements ", N_("router advertisement: %u"), i_outp_icmp | I_TITLE}, +- {"Icmp6OutNeighborSolicits", N_("neighbor solicits: %u"), i_outp_icmp | I_TITLE}, +- {"Icmp6OutNeighborAdvertisements", N_("neighbor advertisements: %u"), i_outp_icmp | I_TITLE}, +- {"Icmp6OutRedirects", N_("redirects: %u"), i_outp_icmp | I_TITLE}, ++ {"Icmp6InMsgs", N_("%llu ICMP messages received"), number}, ++ {"Icmp6InErrors", N_("%llu input ICMP message failed."), number}, ++ {"Icmp6InDestUnreachs", N_("destination unreachable: %llu"), i_inp_icmp | I_TITLE}, ++ {"Icmp6InPktTooBigs", N_("packets too big: %llu"), i_inp_icmp | I_TITLE}, ++ {"Icmp6InTimeExcds", N_("received ICMPv6 time exceeded: %llu"), i_inp_icmp | I_TITLE}, ++ {"Icmp6InParmProblems", N_("parameter problem: %llu"), i_inp_icmp | I_TITLE}, ++ {"Icmp6InEchos", N_("echo requests: %llu"), i_inp_icmp | I_TITLE}, ++ {"Icmp6InEchoReplies", N_("echo replies: %llu"), i_inp_icmp | I_TITLE}, ++ {"Icmp6InGroupMembQueries", N_("group member queries: %llu"), i_inp_icmp | I_TITLE}, ++ {"Icmp6InGroupMembResponses", N_("group member responses: %llu"), i_inp_icmp | I_TITLE}, ++ {"Icmp6InGroupMembReductions", N_("group member reductions: %llu"), i_inp_icmp | I_TITLE}, ++ {"Icmp6InRouterSolicits", N_("router solicits: %llu"), i_inp_icmp | I_TITLE}, ++ {"Icmp6InRouterAdvertisements", N_("router advertisement: %llu"), i_inp_icmp | I_TITLE}, ++ {"Icmp6InNeighborSolicits", N_("neighbour solicits: %llu"), i_inp_icmp | I_TITLE}, ++ {"Icmp6InNeighborAdvertisements", N_("neighbour advertisement: %llu"), i_inp_icmp | I_TITLE}, ++ {"Icmp6InRedirects", N_("redirects: %llu"), i_inp_icmp | I_TITLE}, ++ {"Icmp6OutMsgs", N_("%llu ICMP messages sent"), number}, ++ {"Icmp6OutDestUnreachs", N_("destination unreachable: %llu"), i_outp_icmp | I_TITLE}, ++ {"Icmp6OutPktTooBigs", N_("packets too big: %llu"), i_outp_icmp | I_TITLE}, ++ {"Icmp6OutTimeExcds", N_("sent ICMPv6 time exceeded: %llu"), i_outp_icmp | I_TITLE}, ++ {"Icmp6OutParmProblems", N_("parameter problem: %llu"), i_outp_icmp | I_TITLE}, ++ {"Icmp6OutEchos", N_("echo requests: %llu"), i_outp_icmp | I_TITLE}, ++ {"Icmp6OutEchoReplies", N_("echo replies: %llu"), i_outp_icmp | I_TITLE}, ++ {"Icmp6OutGroupMembQueries", N_("group member queries: %llu"), i_outp_icmp | I_TITLE}, ++ {"Icmp6OutGroupMembResponses", N_("group member responses: %llu"), i_outp_icmp | I_TITLE}, ++ {"Icmp6OutGroupMembReductions", N_("group member reductions: %llu"), i_outp_icmp | I_TITLE}, ++ {"Icmp6OutRouterSolicits", N_("router solicits: %llu"), i_outp_icmp | I_TITLE}, ++ {"Icmp6OutRouterAdvertisements ", N_("router advertisement: %llu"), i_outp_icmp | I_TITLE}, ++ {"Icmp6OutNeighborSolicits", N_("neighbor solicits: %llu"), i_outp_icmp | I_TITLE}, ++ {"Icmp6OutNeighborAdvertisements", N_("neighbor advertisements: %llu"), i_outp_icmp | I_TITLE}, ++ {"Icmp6OutRedirects", N_("redirects: %llu"), i_outp_icmp | I_TITLE}, + }; + struct entry Tcptab[] = -@@ -119,131 +119,133 @@ struct entry Tcptab[] = +@@ -181,122 +181,122 @@ struct entry Tcptab[] = {"RtoMin", "", number}, {"RtoMax", "", number}, {"MaxConn", "", number}, -- {"ActiveOpens", N_("%lu active connections openings"), number}, -- {"PassiveOpens", N_("%lu passive connection openings"), number}, -- {"AttemptFails", N_("%lu failed connection attempts"), number}, -- {"EstabResets", N_("%lu connection resets received"), number}, -- {"CurrEstab", N_("%lu connections established"), number}, -- {"InSegs", N_("%lu segments received"), number}, -- {"OutSegs", N_("%lu segments send out"), number}, -- {"RetransSegs", N_("%lu segments retransmited"), number}, -- {"InErrs", N_("%lu bad segments received."), number}, -- {"OutRsts", N_("%lu resets sent"), number}, +- {"ActiveOpens", N_("%u active connections openings"), number}, +- {"PassiveOpens", N_("%u passive connection openings"), number}, +- {"AttemptFails", N_("%u failed connection attempts"), number}, +- {"EstabResets", N_("%u connection resets received"), number}, +- {"CurrEstab", N_("%u connections established"), number}, +- {"InSegs", N_("%u segments received"), number}, +- {"OutSegs", N_("%u segments send out"), number}, +- {"RetransSegs", N_("%u segments retransmited"), number}, +- {"InErrs", N_("%u bad segments received."), number}, +- {"OutRsts", N_("%u resets sent"), number}, + {"ActiveOpens", N_("%llu active connections openings"), number}, + {"PassiveOpens", N_("%llu passive connection openings"), number}, + {"AttemptFails", N_("%llu failed connection attempts"), number}, @@ -128,209 +242,189 @@ diff -up net-tools-1.60/statistics.c.doubleword net-tools-1.60/statistics.c struct entry Udptab[] = { -- {"InDatagrams", N_("%lu packets received"), number}, -- {"NoPorts", N_("%lu packets to unknown port received."), number}, -- {"InErrors", N_("%lu packet receive errors"), number}, -- {"OutDatagrams", N_("%lu packets sent"), number}, +- {"InDatagrams", N_("%u packets received"), number}, +- {"NoPorts", N_("%u packets to unknown port received."), number}, +- {"InErrors", N_("%u packet receive errors"), number}, +- {"OutDatagrams", N_("%u packets sent"), number}, +- {"RcvbufErrors", N_("%u receive buffer errors"), number}, +- {"SndbufErrors", N_("%u send buffer errors"), number}, + {"InDatagrams", N_("%llu packets received"), number}, + {"NoPorts", N_("%llu packets to unknown port received."), number}, + {"InErrors", N_("%llu packet receive errors"), number}, + {"OutDatagrams", N_("%llu packets sent"), number}, + {"RcvbufErrors", N_("%llu receive buffer errors"), number}, + {"SndbufErrors", N_("%llu send buffer errors"), number}, + }; + + struct entry Udp6tab[] = + { +- {"Udp6InDatagrams", N_("%u packets received"), number}, +- {"Udp6NoPorts", N_("%u packets to unknown port received."), number}, +- {"Udp6InErrors", N_("%u packet receive errors"), number}, +- {"Udp6OutDatagrams", N_("%u packets sent"), number}, ++ {"Udp6InDatagrams", N_("%llu packets received"), number}, ++ {"Udp6NoPorts", N_("%llu packets to unknown port received."), number}, ++ {"Udp6InErrors", N_("%llu packet receive errors"), number}, ++ {"Udp6OutDatagrams", N_("%llu packets sent"), number}, }; struct entry Tcpexttab[] = { -- {"SyncookiesSent", N_("%lu SYN cookies sent"), opt_number}, -- {"SyncookiesRecv", N_("%lu SYN cookies received"), opt_number}, -- {"SyncookiesFailed", N_("%lu invalid SYN cookies received"), opt_number}, +- {"SyncookiesSent", N_("%u SYN cookies sent"), opt_number}, +- {"SyncookiesRecv", N_("%u SYN cookies received"), opt_number}, +- {"SyncookiesFailed", N_("%u invalid SYN cookies received"), opt_number}, + {"SyncookiesSent", N_("%llu SYN cookies sent"), opt_number}, + {"SyncookiesRecv", N_("%llu SYN cookies received"), opt_number}, + {"SyncookiesFailed", N_("%llu invalid SYN cookies received"), opt_number}, -- { "EmbryonicRsts", N_("%lu resets received for embryonic SYN_RECV sockets"), +- { "EmbryonicRsts", N_("%u resets received for embryonic SYN_RECV sockets"), + { "EmbryonicRsts", N_("%llu resets received for embryonic SYN_RECV sockets"), opt_number }, -- { "PruneCalled", N_("%lu packets pruned from receive queue because of socket" +- { "PruneCalled", N_("%u packets pruned from receive queue because of socket" + { "PruneCalled", N_("%llu packets pruned from receive queue because of socket" " buffer overrun"), opt_number }, /* obsolete: 2.2.0 doesn't do that anymore */ -- { "RcvPruned", N_("%lu packets pruned from receive queue"), opt_number }, -- { "OfoPruned", N_("%lu packets dropped from out-of-order queue because of" +- { "RcvPruned", N_("%u packets pruned from receive queue"), opt_number }, +- { "OfoPruned", N_("%u packets dropped from out-of-order queue because of" + { "RcvPruned", N_("%llu packets pruned from receive queue"), opt_number }, + { "OfoPruned", N_("%llu packets dropped from out-of-order queue because of" " socket buffer overrun"), opt_number }, -- { "OutOfWindowIcmps", N_("%lu ICMP packets dropped because they were " +- { "OutOfWindowIcmps", N_("%u ICMP packets dropped because they were " + { "OutOfWindowIcmps", N_("%llu ICMP packets dropped because they were " "out-of-window"), opt_number }, -- { "LockDroppedIcmps", N_("%lu ICMP packets dropped because" +- { "LockDroppedIcmps", N_("%u ICMP packets dropped because" + { "LockDroppedIcmps", N_("%llu ICMP packets dropped because" " socket was locked"), opt_number }, -- { "TW", N_("%lu TCP sockets finished time wait in fast timer"), opt_number }, -- { "TWRecycled", N_("%lu time wait sockets recycled by time stamp"), opt_number }, -- { "TWKilled", N_("%lu TCP sockets finished time wait in slow timer"), opt_number }, -- { "PAWSPassive", N_("%lu passive connections rejected because of" +- { "TW", N_("%u TCP sockets finished time wait in fast timer"), opt_number }, +- { "TWRecycled", N_("%u time wait sockets recycled by time stamp"), opt_number }, +- { "TWKilled", N_("%u TCP sockets finished time wait in slow timer"), opt_number }, +- { "PAWSPassive", N_("%u passive connections rejected because of" + { "TW", N_("%llu TCP sockets finished time wait in fast timer"), opt_number }, -+ { "TWRecycled", N_("%llu time wait sockets recycled by time stamp"), opt_number }, ++ { "TWRecycled", N_("%llu time wait sockets recycled by time stamp"), opt_number }, + { "TWKilled", N_("%llu TCP sockets finished time wait in slow timer"), opt_number }, + { "PAWSPassive", N_("%llu passive connections rejected because of" " time stamp"), opt_number }, -- { "PAWSActive", N_("%lu active connections rejected because of " +- { "PAWSActive", N_("%u active connections rejected because of " + { "PAWSActive", N_("%llu active connections rejected because of " "time stamp"), opt_number }, -- { "PAWSEstab", N_("%lu packets rejects in established connections because of" +- { "PAWSEstab", N_("%u packets rejects in established connections because of" + { "PAWSEstab", N_("%llu packets rejects in established connections because of" " timestamp"), opt_number }, -- { "DelayedACKs", N_("%lu delayed acks sent"), opt_number }, -- { "DelayedACKLocked", N_("%lu delayed acks further delayed because of" +- { "DelayedACKs", N_("%u delayed acks sent"), opt_number }, +- { "DelayedACKLocked", N_("%u delayed acks further delayed because of" + { "DelayedACKs", N_("%llu delayed acks sent"), opt_number }, + { "DelayedACKLocked", N_("%llu delayed acks further delayed because of" " locked socket"), opt_number }, -- { "DelayedACKLost", N_("Quick ack mode was activated %lu times"), opt_number }, -- { "ListenOverflows", N_("%lu times the listen queue of a socket overflowed"), +- { "DelayedACKLost", N_("Quick ack mode was activated %u times"), opt_number }, +- { "ListenOverflows", N_("%u times the listen queue of a socket overflowed"), + { "DelayedACKLost", N_("Quick ack mode was activated %llu times"), opt_number }, + { "ListenOverflows", N_("%llu times the listen queue of a socket overflowed"), opt_number }, -- { "ListenDrops", N_("%lu SYNs to LISTEN sockets ignored"), opt_number }, -- { "TCPPrequeued", N_("%lu packets directly queued to recvmsg prequeue."), -+ { "ListenDrops", N_("%llu SYNs to LISTEN sockets ignored"), opt_number }, +- { "ListenDrops", N_("%u SYNs to LISTEN sockets dropped"), opt_number }, +- { "TCPPrequeued", N_("%u packets directly queued to recvmsg prequeue."), ++ { "ListenDrops", N_("%llu SYNs to LISTEN sockets dropped"), opt_number }, + { "TCPPrequeued", N_("%llu packets directly queued to recvmsg prequeue."), opt_number }, -- { "TCPDirectCopyFromBacklog", N_("%lu packets directly received" -+ { "TCPDirectCopyFromBacklog", N_("%llu packets directly received" - " from backlog"), opt_number }, -- { "TCPDirectCopyFromPrequeue", N_("%lu packets directly received" -+ { "TCPDirectCopyFromPrequeue", N_("%llu packets directly received" - " from prequeue"), opt_number }, -- { "TCPPrequeueDropped", N_("%lu packets dropped from prequeue"), opt_number }, -- { "TCPHPHits", N_("%lu packets header predicted"), number }, -- { "TCPHPHitsToUser", N_("%lu packets header predicted and " +- { "TCPDirectCopyFromBacklog", N_("%u bytes directly in process context from backlog"), opt_number }, +- { "TCPDirectCopyFromPrequeue", N_("%u bytes directly received in process context from prequeue"), ++ { "TCPDirectCopyFromBacklog", N_("%llu bytes directly in process context from backlog"), opt_number }, ++ { "TCPDirectCopyFromPrequeue", N_("%llu bytes directly received in process context from prequeue"), + opt_number }, +- { "TCPPrequeueDropped", N_("%u packets dropped from prequeue"), opt_number }, +- { "TCPHPHits", N_("%u packet headers predicted"), number }, +- { "TCPHPHitsToUser", N_("%u packets header predicted and " + { "TCPPrequeueDropped", N_("%llu packets dropped from prequeue"), opt_number }, -+ { "TCPHPHits", N_("%llu packets header predicted"), number }, ++ { "TCPHPHits", N_("%llu packet headers predicted"), number }, + { "TCPHPHitsToUser", N_("%llu packets header predicted and " "directly queued to user"), opt_number }, -- { "SockMallocOOM", N_("Ran %lu times out of system memory during " -+ { "SockMallocOOM", N_("Ran %llu times out of system memory during " +- { "SockMallocOOM", N_("Ran %u times out of system memory during " ++ { "SockMallocOOM", N_("Ran %llu times out of system memory during " "packet sending"), opt_number }, -- { "TCPPureAcks", N_("%u acknowledgments not containing data received"), opt_number }, -- { "TCPHPAcks", N_("%u predicted acknowledgments"), opt_number }, -- { "TCPRenoRecovery", N_("%u times recovered from packet loss due to fast retransmit"), opt_number }, -- { "TCPSackRecovery", N_("%u times recovered from packet loss due to SACK data"), opt_number }, -- { "TCPSACKReneging", N_("%u bad SACKs received"), opt_number }, -- { "TCPFACKReorder", N_("Detected reordering %u times using FACK"), opt_number }, -- { "TCPSACKReorder", N_("Detected reordering %u times using SACK"), opt_number }, -- { "TCPTSReorder", N_("Detected reordering %u times using time stamp"), opt_number }, -- { "TCPRenoReorder", N_("Detected reordering %u times using reno fast retransmit"), opt_number }, -- { "TCPFullUndo", N_("%u congestion windows fully recovered"), opt_number }, -- { "TCPPartialUndo", N_("%u congestion windows partially recovered using Hoe heuristic"), opt_number }, -- { "TCPDSackUndo", N_("%u congestion window recovered using DSACK"), opt_number }, -- { "TCPLossUndo", N_("%u congestion windows recovered after partial ack"), opt_number }, -- { "TCPLostRetransmits", N_("%u retransmits lost"), opt_number }, -- { "TCPRenoFailures", N_("%u timeouts after reno fast retransmit"), opt_number }, -- { "TCPSackFailures", N_("%u timeouts after SACK recovery"), opt_number }, -- { "TCPLossFailures", N_("%u timeouts in loss state"), opt_number }, -- { "TCPFastRetrans", N_("%u fast retransmits"), opt_number }, -- { "TCPForwardRetrans", N_("%u forward retransmits"), opt_number }, -- { "TCPSlowStartRetrans", N_("%u retransmits in slow start"), opt_number }, -- { "TCPTimeouts", N_("%u other TCP timeouts"), opt_number }, -- { "TCPRenoRecoveryFailed", N_("%u reno fast retransmits failed"), opt_number }, -- { "TCPSackRecoveryFail", N_("%u sack retransmits failed"), opt_number }, -- { "TCPSchedulerFailed", N_("%u times receiver scheduled too late for direct processing"), opt_number }, -- { "TCPRcvCollapsed", N_("%u packets collapsed in receive queue due to low socket buffer"), opt_number }, -- { "TCPDSACKOldSent", N_("%u DSACKs sent for old packets"), opt_number }, -- { "TCPDSACKOfoSent", N_("%u DSACKs sent for out of order packets"), opt_number }, -- { "TCPDSACKRecv", N_("%u DSACKs received"), opt_number }, -- { "TCPDSACKOfoRecv", N_("%u DSACKs for out of order packets received"), opt_number }, -- { "TCPAbortOnSyn", N_("%u connections reset due to unexpected SYN"), opt_number }, -- { "TCPAbortOnData", N_("%u connections reset due to unexpected data"), opt_number }, -- { "TCPAbortOnClose", N_("%u connections reset due to early user close"), opt_number }, -- { "TCPAbortOnMemory", N_("%u connections aborted due to memory pressure"), opt_number }, -- { "TCPAbortOnTimeout", N_("%u connections aborted due to timeout"), opt_number }, -- { "TCPAbortOnLinger", N_("%u connections aborted after user close in linger timeout"), opt_number }, -- { "TCPAbortFailed", N_("%u times unable to send RST due to no memory"), opt_number }, -- { "TCPMemoryPressures", N_("TCP ran low on memory %u times"), opt_number }, -- { "TCPLoss", N_("%u TCP data loss events") }, -+ { "TCPPureAcks", N_("%llu acknowledgments not containing data received"), opt_number }, -+ { "TCPHPAcks", N_("%llu predicted acknowledgments"), opt_number }, -+ { "TCPRenoRecovery", N_("%llu times recovered from packet loss due to fast retransmit"), opt_number }, -+ { "TCPSackRecovery", N_("%llu times recovered from packet loss due to SACK data"), opt_number }, -+ { "TCPSACKReneging", N_("%llu bad SACKs received"), opt_number }, -+ { "TCPFACKReorder", N_("Detected reordering %llu times using FACK"), opt_number }, -+ { "TCPSACKReorder", N_("Detected reordering %llu times using SACK"), opt_number }, -+ { "TCPTSReorder", N_("Detected reordering %llu times using time stamp"), opt_number }, -+ { "TCPRenoReorder", N_("Detected reordering %llu times using reno fast retransmit"), opt_number }, -+ { "TCPFullUndo", N_("%llu congestion windows fully recovered"), opt_number }, -+ { "TCPPartialUndo", N_("%llu congestion windows partially recovered using Hoe heuristic"), opt_number }, -+ { "TCPDSackUndo", N_("%llu congestion window recovered using DSACK"), opt_number }, -+ { "TCPLossUndo", N_("%llu congestion windows recovered after partial ack"), opt_number }, -+ { "TCPLostRetransmits", N_("%llu retransmits lost"), opt_number }, -+ { "TCPRenoFailures", N_("%llu timeouts after reno fast retransmit"), opt_number }, -+ { "TCPSackFailures", N_("%llu timeouts after SACK recovery"), opt_number }, -+ { "TCPLossFailures", N_("%llu timeouts in loss state"), opt_number }, -+ { "TCPFastRetrans", N_("%llu fast retransmits"), opt_number }, -+ { "TCPForwardRetrans", N_("%llu forward retransmits"), opt_number }, -+ { "TCPSlowStartRetrans", N_("%llu retransmits in slow start"), opt_number }, -+ { "TCPTimeouts", N_("%llu other TCP timeouts"), opt_number }, -+ { "TCPRenoRecoveryFailed", N_("%llu reno fast retransmits failed"), opt_number }, -+ { "TCPSackRecoveryFail", N_("%llu sack retransmits failed"), opt_number }, -+ { "TCPSchedulerFailed", N_("%llu times receiver scheduled too late for direct processing"), opt_number }, -+ { "TCPRcvCollapsed", N_("%llu packets collapsed in receive queue due to low socket buffer"), opt_number }, -+ { "TCPDSACKOldSent", N_("%llu DSACKs sent for old packets"), opt_number }, -+ { "TCPDSACKOfoSent", N_("%llu DSACKs sent for out of order packets"), opt_number }, -+ { "TCPDSACKRecv", N_("%llu DSACKs received"), opt_number }, -+ { "TCPDSACKOfoRecv", N_("%llu DSACKs for out of order packets received"), opt_number }, -+ { "TCPAbortOnSyn", N_("%llu connections reset due to unexpected SYN"), opt_number }, -+ { "TCPAbortOnData", N_("%llu connections reset due to unexpected data"), opt_number }, -+ { "TCPAbortOnClose", N_("%llu connections reset due to early user close"), opt_number }, -+ { "TCPAbortOnMemory", N_("%llu connections aborted due to memory pressure"), opt_number }, -+ { "TCPAbortOnTimeout", N_("%llu connections aborted due to timeout"), opt_number }, -+ { "TCPAbortOnLinger", N_("%llu connections aborted after user close in linger timeout"), opt_number }, -+ { "TCPAbortFailed", N_("%llu times unable to send RST due to no memory"), opt_number }, -+ { "TCPMemoryPressures", N_("TCP ran low on memory %llu times"), opt_number }, -+ { "TCPLoss", N_("%llu TCP data loss events") }, - }; - - struct entry Sctptab[] = - { -- {"SctpCurrEstab", N_("%u Current Associations"), number}, -- {"SctpActiveEstabs", N_("%u Active Associations"), number}, -- {"SctpPassiveEstabs", N_("%u Passive Associations"), number}, -- {"SctpAborteds", N_("%u Number of Aborteds "), number}, -- {"SctpShutdowns", N_("%u Number of Graceful Terminations"), number}, -- {"SctpOutOfBlues", N_("%u Number of Out of Blue packets"), number}, -- {"SctpChecksumErrors", N_("%u Number of Packets with invalid Checksum"), number}, -- {"SctpOutCtrlChunks", N_("%u Number of control chunks sent"), number}, -- {"SctpOutOrderChunks", N_("%u Number of ordered chunks sent"), number}, -- {"SctpOutUnorderChunks", N_("%u Number of Unordered chunks sent"), number}, -- {"SctpInCtrlChunks", N_("%u Number of control chunks received"), number}, -- {"SctpInOrderChunks", N_("%u Number of ordered chunks received"), number}, -- {"SctpInUnorderChunks", N_("%u Number of Unordered chunks received"), number}, -- {"SctpFragUsrMsgs", N_("%u Number of messages fragmented"), number}, -- {"SctpReasmUsrMsgs", N_("%u Number of messages reassembled "), number}, -- {"SctpOutSCTPPacks", N_("%u Number of SCTP packets sent"), number}, -- {"SctpInSCTPPacks", N_("%u Number of SCTP packets received"), number}, -+ {"SctpCurrEstab", N_("%llu Current Associations"), number}, -+ {"SctpActiveEstabs", N_("%llu Active Associations"), number}, -+ {"SctpPassiveEstabs", N_("%llu Passive Associations"), number}, -+ {"SctpAborteds", N_("%llu Number of Aborteds "), number}, -+ {"SctpShutdowns", N_("%llu Number of Graceful Terminations"), number}, -+ {"SctpOutOfBlues", N_("%llu Number of Out of Blue packets"), number}, -+ {"SctpChecksumErrors", N_("%llu Number of Packets with invalid Checksum"), number}, -+ {"SctpOutCtrlChunks", N_("%llu Number of control chunks sent"), number}, -+ {"SctpOutOrderChunks", N_("%llu Number of ordered chunks sent"), number}, -+ {"SctpOutUnorderChunks", N_("%llu Number of Unordered chunks sent"), number}, -+ {"SctpInCtrlChunks", N_("%llu Number of control chunks received"), number}, -+ {"SctpInOrderChunks", N_("%llu Number of ordered chunks received"), number}, -+ {"SctpInUnorderChunks", N_("%llu Number of Unordered chunks received"), number}, -+ {"SctpFragUsrMsgs", N_("%llu Number of messages fragmented"), number}, -+ {"SctpReasmUsrMsgs", N_("%llu Number of messages reassembled "), number}, -+ {"SctpOutSCTPPacks", N_("%llu Number of SCTP packets sent"), number}, -+ {"SctpInSCTPPacks", N_("%llu Number of SCTP packets received"), number}, +- { "TCPPureAcks", N_("%u acknowledgments not containing data payload received"), opt_number }, +- { "TCPHPAcks", N_("%u predicted acknowledgments"), opt_number }, +- { "TCPRenoRecovery", N_("%u times recovered from packet loss due to fast retransmit"), opt_number }, +- { "TCPSackRecovery", N_("%u times recovered from packet loss by selective acknowledgements"), opt_number }, +- { "TCPSACKReneging", N_("%u bad SACK blocks received"), opt_number }, +- { "TCPFACKReorder", N_("Detected reordering %u times using FACK"), opt_number }, +- { "TCPSACKReorder", N_("Detected reordering %u times using SACK"), opt_number }, +- { "TCPTSReorder", N_("Detected reordering %u times using time stamp"), opt_number }, +- { "TCPRenoReorder", N_("Detected reordering %u times using reno fast retransmit"), opt_number }, +- { "TCPFullUndo", N_("%u congestion windows fully recovered without slow start"), opt_number }, +- { "TCPPartialUndo", N_("%u congestion windows partially recovered using Hoe heuristic"), opt_number }, +- { "TCPDSackUndo", N_("%u congestion window recovered without slow start using DSACK"), opt_number }, +- { "TCPLossUndo", N_("%u congestion windows recovered without slow start after partial ack"), opt_number }, +- { "TCPLostRetransmits", N_("%u retransmits lost"), opt_number }, +- { "TCPRenoFailures", N_("%u timeouts after reno fast retransmit"), opt_number }, +- { "TCPSackFailures", N_("%u timeouts after SACK recovery"), opt_number }, +- { "TCPLossFailures", N_("%u timeouts in loss state"), opt_number }, +- { "TCPFastRetrans", N_("%u fast retransmits"), opt_number }, +- { "TCPForwardRetrans", N_("%u forward retransmits"), opt_number }, +- { "TCPSlowStartRetrans", N_("%u retransmits in slow start"), opt_number }, +- { "TCPTimeouts", N_("%u other TCP timeouts"), opt_number }, +- { "TCPRenoRecoveryFailed", N_("%u reno fast retransmits failed"), opt_number }, +- { "TCPSackRecoveryFail", N_("%u SACK retransmits failed"), opt_number }, +- { "TCPSchedulerFailed", N_("%u times receiver scheduled too late for direct processing"), opt_number }, +- { "TCPRcvCollapsed", N_("%u packets collapsed in receive queue due to low socket buffer"), opt_number }, +- { "TCPDSACKOldSent", N_("%u DSACKs sent for old packets"), opt_number }, +- { "TCPDSACKOfoSent", N_("%u DSACKs sent for out of order packets"), opt_number }, +- { "TCPDSACKRecv", N_("%u DSACKs received"), opt_number }, +- { "TCPDSACKOfoRecv", N_("%u DSACKs for out of order packets received"), opt_number }, +- { "TCPAbortOnSyn", N_("%u connections reset due to unexpected SYN"), opt_number }, +- { "TCPAbortOnData", N_("%u connections reset due to unexpected data"), opt_number }, +- { "TCPAbortOnClose", N_("%u connections reset due to early user close"), opt_number }, +- { "TCPAbortOnMemory", N_("%u connections aborted due to memory pressure"), opt_number }, +- { "TCPAbortOnTimeout", N_("%u connections aborted due to timeout"), opt_number }, +- { "TCPAbortOnLinger", N_("%u connections aborted after user close in linger timeout"), opt_number }, +- { "TCPAbortFailed", N_("%u times unabled to send RST due to no memory"), opt_number }, +- { "TCPMemoryPressures", N_("TCP ran low on memory %u times"), opt_number }, +- { "TCPLoss", N_("%u TCP data loss events"), opt_number }, +- { "TCPDSACKUndo", N_("%u congestion windows recovered without slow start by DSACK"), ++ { "TCPPureAcks", N_("%llu acknowledgments not containing data payload received"), opt_number }, ++ { "TCPHPAcks", N_("%llu predicted acknowledgments"), opt_number }, ++ { "TCPRenoRecovery", N_("%llu times recovered from packet loss due to fast retransmit"), opt_number }, ++ { "TCPSackRecovery", N_("%llu times recovered from packet loss by selective acknowledgements"), opt_number }, ++ { "TCPSACKReneging", N_("%llu bad SACK blocks received"), opt_number }, ++ { "TCPFACKReorder", N_("Detected reordering %llu times using FACK"), opt_number }, ++ { "TCPSACKReorder", N_("Detected reordering %llu times using SACK"), opt_number }, ++ { "TCPTSReorder", N_("Detected reordering %llu times using time stamp"), opt_number }, ++ { "TCPRenoReorder", N_("Detected reordering %llu times using reno fast retransmit"), opt_number }, ++ { "TCPFullUndo", N_("%llu congestion windows fully recovered without slow start"), opt_number }, ++ { "TCPPartialUndo", N_("%llu congestion windows partially recovered using Hoe heuristic"), opt_number }, ++ { "TCPDSackUndo", N_("%llu congestion window recovered without slow start using DSACK"), opt_number }, ++ { "TCPLossUndo", N_("%llu congestion windows recovered without slow start after partial ack"), opt_number }, ++ { "TCPLostRetransmits", N_("%llu retransmits lost"), opt_number }, ++ { "TCPRenoFailures", N_("%llu timeouts after reno fast retransmit"), opt_number }, ++ { "TCPSackFailures", N_("%llu timeouts after SACK recovery"), opt_number }, ++ { "TCPLossFailures", N_("%llu timeouts in loss state"), opt_number }, ++ { "TCPFastRetrans", N_("%llu fast retransmits"), opt_number }, ++ { "TCPForwardRetrans", N_("%llu forward retransmits"), opt_number }, ++ { "TCPSlowStartRetrans", N_("%llu retransmits in slow start"), opt_number }, ++ { "TCPTimeouts", N_("%llu other TCP timeouts"), opt_number }, ++ { "TCPRenoRecoveryFailed", N_("%llu reno fast retransmits failed"), opt_number }, ++ { "TCPSackRecoveryFail", N_("%llu SACK retransmits failed"), opt_number }, ++ { "TCPSchedulerFailed", N_("%llu times receiver scheduled too late for direct processing"), opt_number }, ++ { "TCPRcvCollapsed", N_("%llu packets collapsed in receive queue due to low socket buffer"), opt_number }, ++ { "TCPDSACKOldSent", N_("%llu DSACKs sent for old packets"), opt_number }, ++ { "TCPDSACKOfoSent", N_("%llu DSACKs sent for out of order packets"), opt_number }, ++ { "TCPDSACKRecv", N_("%llu DSACKs received"), opt_number }, ++ { "TCPDSACKOfoRecv", N_("%llu DSACKs for out of order packets received"), opt_number }, ++ { "TCPAbortOnSyn", N_("%llu connections reset due to unexpected SYN"), opt_number }, ++ { "TCPAbortOnData", N_("%llu connections reset due to unexpected data"), opt_number }, ++ { "TCPAbortOnClose", N_("%llu connections reset due to early user close"), opt_number }, ++ { "TCPAbortOnMemory", N_("%llu connections aborted due to memory pressure"), opt_number }, ++ { "TCPAbortOnTimeout", N_("%llu connections aborted due to timeout"), opt_number }, ++ { "TCPAbortOnLinger", N_("%llu connections aborted after user close in linger timeout"), opt_number }, ++ { "TCPAbortFailed", N_("%llu times unabled to send RST due to no memory"), opt_number }, ++ { "TCPMemoryPressures", N_("TCP ran low on memory %llu times"), opt_number }, ++ { "TCPLoss", N_("%llu TCP data loss events"), opt_number }, ++ { "TCPDSACKUndo", N_("%llu congestion windows recovered without slow start by DSACK"), + opt_number }, +- { "TCPRenoRecoveryFail", N_("%u classic Reno fast retransmits failed"), opt_number }, ++ { "TCPRenoRecoveryFail", N_("%llu classic Reno fast retransmits failed"), opt_number }, }; struct tabtab { -@@ -271,7 +271,7 @@ int cmpentries(const void *a, const void +@@ -332,7 +332,7 @@ int cmpentries(const void *a, const void return strcmp(((struct entry *) a)->title, ((struct entry *) b)->title); } @@ -339,7 +433,7 @@ diff -up net-tools-1.60/statistics.c.doubleword net-tools-1.60/statistics.c { struct entry *ent = NULL, key; int type; -@@ -283,7 +283,7 @@ void printval(struct tabtab *tab, char * +@@ -344,7 +344,7 @@ void printval(struct tabtab *tab, char * sizeof(struct entry), cmpentries); if (!ent) { /* try our best */ if (val) @@ -348,7 +442,7 @@ diff -up net-tools-1.60/statistics.c.doubleword net-tools-1.60/statistics.c return; } type = ent->type; -@@ -390,7 +390,7 @@ void process_fd(FILE *f,int file_desc) +@@ -454,7 +454,7 @@ int process_fd(FILE *f, int all, char *f *p = '\0'; if (*sp != '\0' && *(tab->flag)) @@ -357,12 +451,18 @@ diff -up net-tools-1.60/statistics.c.doubleword net-tools-1.60/statistics.c sp = p + 1; } -@@ -426,7 +426,7 @@ void process_fd2(FILE *f, const char *fi - sp += strspn(sp, " \t\n"); +@@ -481,12 +481,12 @@ void cpytitle(char *original, char *new) + void process6_fd(FILE *f) + { + char buf1[1024],buf2[50],buf3[1024]; +- unsigned long val; ++ unsigned long long val; + struct tabtab *tab = NULL; + int cpflg = 0; - if (*sp != '\0' && *(tab->flag)) -- printval(tab, buf1, strtoul(sp, 0, 10)); -+ printval(tab, buf1, strtoull(sp, 0, 10)); - } - return; - + while (fgets(buf1, sizeof buf1, f)) { +- sscanf(buf1, "%s %lu", buf2, &val); ++ sscanf(buf1, "%s %llu", buf2, &val); + if(!cpflg) { + cpytitle(buf2, buf3); + tab = newtable(snmp6tabs, buf3); diff --git a/net-tools-1.60-trim_iface.patch b/net-tools-1.60-trim_iface.patch index 150722c..ca3f6c7 100644 --- a/net-tools-1.60-trim_iface.patch +++ b/net-tools-1.60-trim_iface.patch @@ -1,17 +1,7 @@ ---- net-tools-1.60/ifconfig.c.old 2005-03-30 10:14:03.000000000 +0200 -+++ net-tools-1.60/ifconfig.c 2005-03-30 10:40:50.000000000 +0200 -@@ -177,7 +177,7 @@ - - static void usage(void) - { -- fprintf(stderr, _("Usage:\n ifconfig [-a] [-i] [-v] [-s] [[]
]\n")); -+ fprintf(stderr, _("Usage:\n ifconfig [-a] [-v] [-s] [[]
]\n")); - #if HAVE_AFINET - fprintf(stderr, _(" [add
[/]]\n")); - fprintf(stderr, _(" [del
[/]]\n")); ---- net-tools-1.60/lib/interface.c.old 2005-03-30 10:14:03.000000000 +0200 -+++ net-tools-1.60/lib/interface.c 2005-03-30 11:05:38.000000000 +0200 -@@ -620,7 +620,7 @@ +diff -up net-tools-1.60/lib/interface.c.trim-iface net-tools-1.60/lib/interface.c +--- net-tools-1.60/lib/interface.c.trim-iface 2011-12-02 18:00:09.000000000 +0100 ++++ net-tools-1.60/lib/interface.c 2011-12-02 18:02:50.143689438 +0100 +@@ -638,7 +638,7 @@ int do_if_print(struct interface *ife, v void ife_print_short(struct interface *ptr) { @@ -20,12 +10,3 @@ printf("%5d %3d ", ptr->mtu, ptr->metric); /* If needed, display the interface statistics. */ if (ptr->statistics_valid) { -@@ -711,7 +711,7 @@ - if (hw == NULL) - hw = get_hwntype(-1); - -- printf(_("%-9.9s Link encap:%s "), ptr->name, hw->title); -+ printf(_("%-9s Link encap:%s "), ptr->name, hw->title); - /* For some hardware types (eg Ash, ATM) we don't print the - hardware address if it's null. */ - if (hw->print != NULL && (! (hw_null_address(hw, ptr->hwaddr) && diff --git a/net-tools-1.60-virtualname.patch b/net-tools-1.60-virtualname.patch index 326df1d..0c663af 100644 --- a/net-tools-1.60-virtualname.patch +++ b/net-tools-1.60-virtualname.patch @@ -1,20 +1,18 @@ ---- net-tools-1.60/lib/interface.c.virtualname 2001-02-10 20:31:15.000000000 +0100 -+++ net-tools-1.60/lib/interface.c 2003-08-19 13:18:01.000000000 +0200 -@@ -579,18 +579,18 @@ +diff -up net-tools-1.60/lib/interface.c.virtualname net-tools-1.60/lib/interface.c +--- net-tools-1.60/lib/interface.c.virtualname 2011-11-21 02:31:57.000000000 +0100 ++++ net-tools-1.60/lib/interface.c 2011-11-23 18:54:31.881194851 +0100 +@@ -597,8 +597,8 @@ int do_if_print(struct interface *ife, v void ife_print_short(struct interface *ptr) { - printf("%-5.5s ", ptr->name); -- printf("%5d %3d", ptr->mtu, ptr->metric); +- printf("%5d %-2d ", ptr->mtu, ptr->metric); + printf("%-9.9s ", ptr->name); + printf("%5d %3d ", ptr->mtu, ptr->metric); /* If needed, display the interface statistics. */ if (ptr->statistics_valid) { -- printf("%8llu %6lu %6lu %6lu", -+ printf("%8llu %6lu %6lu %6lu ", - ptr->stats.rx_packets, ptr->stats.rx_errors, - ptr->stats.rx_dropped, ptr->stats.rx_fifo_errors); - printf("%8llu %6lu %6lu %6lu ", + printf("%8llu %6lu %6lu %-6lu ", +@@ -608,7 +608,7 @@ void ife_print_short(struct interface *p ptr->stats.tx_packets, ptr->stats.tx_errors, ptr->stats.tx_dropped, ptr->stats.tx_fifo_errors); } else { @@ -23,13 +21,14 @@ } /* DONT FORGET TO ADD THE FLAGS IN ife_print_long, too */ if (ptr->flags == 0) ---- net-tools-1.60/netstat.c.virtualname 2001-04-15 16:41:17.000000000 +0200 -+++ net-tools-1.60/netstat.c 2003-08-19 13:18:34.000000000 +0200 -@@ -1449,7 +1449,7 @@ +diff -up net-tools-1.60/netstat.c.virtualname net-tools-1.60/netstat.c +--- net-tools-1.60/netstat.c.virtualname 2011-11-21 02:31:57.000000000 +0100 ++++ net-tools-1.60/netstat.c 2011-11-23 18:54:00.563586374 +0100 +@@ -1619,7 +1619,7 @@ static int iface_info(void) } if (flag_exp < 2) { ife_short = 1; -- printf(_("Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg\n")); +- printf(_("Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg\n")); + printf(_("Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg\n")); } diff --git a/net-tools-1.60-x25-proc.patch b/net-tools-1.60-x25-proc.patch index 0495caa..4e00e76 100644 --- a/net-tools-1.60-x25-proc.patch +++ b/net-tools-1.60-x25-proc.patch @@ -1,6 +1,7 @@ ---- net-tools-1.60/lib/pathnames.h.orig 2006-04-12 22:14:07.943885000 -0400 -+++ net-tools-1.60/lib/pathnames.h 2006-04-12 22:19:34.072430000 -0400 -@@ -42,8 +42,8 @@ +diff -up net-tools-1.60/lib/pathnames.h.x25 net-tools-1.60/lib/pathnames.h +--- net-tools-1.60/lib/pathnames.h.x25 2011-11-21 02:31:57.000000000 +0100 ++++ net-tools-1.60/lib/pathnames.h 2011-12-05 17:00:49.917886688 +0100 +@@ -49,8 +49,8 @@ #define _PATH_PROCNET_RARP "/proc/net/rarp" #define _PATH_ETHERS "/etc/ethers" #define _PATH_PROCNET_ROSE_ROUTE "/proc/net/rose_routes" @@ -9,5 +10,5 @@ +#define _PATH_PROCNET_X25 "/proc/net/x25" +#define _PATH_PROCNET_X25_ROUTE "/proc/net/x25/route" #define _PATH_PROCNET_DEV_MCAST "/proc/net/dev_mcast" + #define _PATH_PROCNET_ATALK_ROUTE "/proc/net/atalk_route" - /* pathname for the netlink device */ diff --git a/net-tools.spec b/net-tools.spec index cd51714..d76aaa9 100644 --- a/net-tools.spec +++ b/net-tools.spec @@ -1,12 +1,15 @@ +%global checkout 20111206git + Summary: Basic networking tools Name: net-tools Version: 1.60 -Release: 128%{?dist} +Release: 129.%{checkout}%{?dist} License: GPL+ Group: System Environment/Base URL: http://net-tools.sourceforge.net -Source0: http://downloads.sourceforge.net/net-tools/net-tools-%{version}.tar.bz2 +# git archive --format=tar --remote=git://net-tools.git.sourceforge.net/gitroot/net-tools/net-tools master | gzip > net-tools-%%{version}.%%{checkout}.tar.gz +Source0: net-tools-%{version}.%{checkout}.tar.gz Source1: net-tools-%{version}-config.h Source2: net-tools-%{version}-config.make Source3: ether-wake.c @@ -17,119 +20,234 @@ Source7: iptunnel.8 Source8: ipmaddr.8 Source9: arp-ethers.service -Patch1: net-tools-1.57-bug22040.patch -Patch2: net-tools-1.60-miiioctl.patch -Patch3: net-tools-1.60-manydevs.patch +# Not needed +#Patch1: net-tools-1.57-bug22040.patch + +# We don't use include/mii.h anyway (see mii-refactor.patch) +#Patch2: net-tools-1.60-miiioctl.patch + +# Rewritten upstream, hopefully this won't be needed. +#Patch3: net-tools-1.60-manydevs.patch + +# Fixes formating of 'netstat -i' Patch4: net-tools-1.60-virtualname.patch + +# adds option that allows netstat to cycle printing through statistics every delay seconds. Patch5: net-tools-1.60-cycle.patch -Patch6: net-tools-1.60-nameif.patch + +# Merged upstream +#Patch6: net-tools-1.60-nameif.patch + +# Fixed incorrect address display for ipx (#46434) Patch7: net-tools-1.60-ipx.patch + +# hostname lookup problems with route --inet6 (#84108) Patch8: net-tools-1.60-inet6-lookup.patch + +# various man page fixes merged into one patch Patch9: net-tools-1.60-man.patch -Patch10: net-tools-1.60-gcc33.patch -Patch11: net-tools-1.60-trailingblank.patch + +# Fixed upstream +#Patch10: net-tools-1.60-gcc33.patch + +# hostname patch +#Patch11: net-tools-1.60-trailingblank.patch + +# netstat: interface option now works as described in the man page (#61113, #115987) Patch12: net-tools-1.60-interface.patch -Patch14: net-tools-1.60-gcc34.patch -Patch15: net-tools-1.60-overflow.patch -Patch19: net-tools-1.60-siunits.patch -Patch20: net-tools-1.60-trunc.patch -Patch21: net-tools-1.60-return.patch -Patch22: net-tools-1.60-parse.patch -Patch23: net-tools-1.60-netmask.patch -Patch24: net-tools-1.60-ulong.patch + +# Fixed upstream +#Patch14: net-tools-1.60-gcc34.patch + +# Fixed upstream +#Patch15: net-tools-1.60-overflow.patch + +# Fixed upstream +#Patch19: net-tools-1.60-siunits.patch + +# (#128359) Fixed upstream +#Patch20: net-tools-1.60-trunc.patch + +# The return value of nameif was wrong (#129032) - patch from Fujitsu QA +Patch21: net-tools-1.60-nameif-return.patch + +# (#131539) Fixed upstream +#Patch22: net-tools-1.60-parse.patch + +# Fixed upstream +#Patch23: net-tools-1.60-netmask.patch + +# netstat -s (statistics.c) now uses unsigned long long handle 64 bit integers (Bug #579854, Debian #561161) +Patch24: net-tools-1.60-statistics-doubleword.patch + +# calculate broadcast only when netmask provided (#60509) Patch25: net-tools-1.60-bcast.patch -Patch27: net-tools-1.60-netstat_ulong.patch -Patch28: net-tools-1.60-note.patch -Patch29: net-tools-1.60-num-ports.patch + +# Fixed upstream +#Patch27: net-tools-1.60-netstat_ulong.patch + +# hostname man page fix +#Patch28: net-tools-1.60-note.patch + +# fixed --num-ports option for netstat (#115100) +# fixed upstream +#Patch29: net-tools-1.60-num-ports.patch + +# filter out duplicate tcp entries (#139407) Patch30: net-tools-1.60-duplicate-tcp.patch + +# don't report statistics for virtual devices (#143981) Patch31: net-tools-1.60-statalias.patch -Patch32: net-tools-1.60-isofix.patch -Patch34: net-tools-1.60-ifconfig_ib.patch -Patch35: net-tools-1.60-de.patch -Patch37: net-tools-1.60-pie.patch -Patch38: net-tools-1.60-ifaceopt.patch + +# translation headers - content type format +# is it good for anything ? +#Patch32: net-tools-1.60-isofix.patch + +# Merged upstream +#Patch34: net-tools-1.60-ifconfig_ib.patch + +# Fixed upstream +#Patch35: net-tools-1.60-de.patch + +# not needed +#Patch37: net-tools-1.60-pie.patch + +# merged into interface.patch +#Patch38: net-tools-1.60-ifaceopt.patch + +# stop trimming interface names longer than 9 characters (#152457) Patch39: net-tools-1.60-trim_iface.patch -Patch40: net-tools-1.60-stdo.patch -Patch41: net-tools-1.60-statistics.patch -Patch42: net-tools-1.60-ifconfig.patch + +# flush output in mii-tool (#152568) +# Fixed upstream +#Patch40: net-tools-1.60-stdo.patch + +# netstat has new statistcs (#133032) +# Fixed upstream +#Patch41: net-tools-1.60-statistics.patch + +# Fixed upstream +#Patch42: net-tools-1.60-ifconfig.patch + +# buffer overflow in arp (#164695) Patch43: net-tools-1.60-arp_overflow.patch -Patch44: net-tools-1.60-hostname_man.patch + +# hostname patch +#Patch44: net-tools-1.60-hostname_man.patch + +# clear static buffers in interface.c by Ulrich Drepper (#176714) Patch45: net-tools-1.60-interface_stack.patch + +# new option for nestat, -Z shows selinux context Patch46: net-tools-1.60-selinux.patch -Patch47: net-tools-1.60-netstat_stop_trim.patch -Patch48: net-tools-1.60-netstat_inode.patch + +# new option for netstat - -T stops trimming remote and local addresses (#176465) +# Merged upstream as -W option +#Patch47: net-tools-1.60-netstat_stop_trim.patch + +# show inodes in netstat (#180974) +# fixed upstream +#Patch48: net-tools-1.60-netstat_inode.patch + +# remove duplicate arp entries (#185604) Patch49: net-tools-1.60-fgets.patch + +# wrong definition of _PATH_PROCNET_X25_ROUTE (#188786) Patch51: net-tools-1.60-x25-proc.patch -Patch52: net-tools-1.60-sctp.patch + +# statistics for SCTP +Patch52: net-tools-1.60-sctp-statistics.patch + +# ifconfig crash when interface name is too long (#190703) Patch54: net-tools-1.60-ifconfig-long-iface-crasher.patch -Patch55: net-tools-1.60-netdevice.patch -Patch56: net-tools-1.60-skip.patch -Patch57: net-tools-1.60-netstat-I-fix.patch + +# Fixed upstream +#Patch55: net-tools-1.60-netdevice.patch + +# Fixed upstream +#Patch56: net-tools-1.60-skip.patch + +# Merged into interface.patch +#Patch57: net-tools-1.60-netstat-I-fix.patch + +# nameif crash for 16char long interface names (#209120) Patch58: net-tools-1.60-nameif_strncpy.patch -Patch59: net-tools-1.60-arp-unaligned-access.patch -Patch60: net-tools-1.60-sctp-quiet.patch -Patch61: net-tools-1.60-remove_node.patch -Patch62: net-tools-1.60-netstat-interfaces-crash.patch -Patch64: net-tools-1.60-ec_hw_null.patch -Patch65: net-tools-1.60-statistics_buffer.patch -Patch66: net-tools-1.60-sctp-addrs.patch -Patch67: net-tools-1.60-i-option.patch + +# fix arp unaligned access (#220438) +# Fixed upstream +#Patch59: net-tools-1.60-arp-unaligned-access.patch + +# Fixed upstream +#Patch60: net-tools-1.60-sctp-quiet.patch + +# hostname patch +#Patch61: net-tools-1.60-remove_node.patch + +# merged into interface.patch +#Patch62: net-tools-1.60-netstat-interfaces-crash.patch + +# Fixed upstream +#Patch64: net-tools-1.60-ec_hw_null.patch + +# Fixed upstream +#Patch65: net-tools-1.60-statistics_buffer.patch + +# Rewritten upstream +#Patch66: net-tools-1.60-sctp-addrs.patch + +# merged into interface.patch +#Patch67: net-tools-1.60-i-option.patch + +# fixed clearing flags in ifconfig (#450252) Patch69: net-tools-1.60-clear-flag.patch + +# fixed tcp timers info in netstat (#466845) Patch71: net-tools-1.60-netstat-probe.patch -# scanf format length fix (non-exploitable) +# prevent 'netstat -nr -A inet6' from smashing stack (#668047) Patch72: net-tools-1.60-scanf-format.patch -# netstat - avoid name resolution for listening or established sockets (-l) by return fast -Patch73: net-tools-1.60-avoid-name-resolution.patch +# upstream +#Patch73: net-tools-1.60-avoid-name-resolution.patch -# netstat - --continuous should flush stdout -Patch74: net-tools-1.60-continous-flush-stdout.patch +# upstream +#Patch74: net-tools-1.60-continous-flush-stdout.patch -# fix some errors so net-tools can be build with DEBUG defined -Patch75: net-tools-1.60-debug-fix.patch +# upstream +#Patch75: net-tools-1.60-debug-fix.patch # let the user know that ifconfig can correctly show only first 8 bytes of Infiniband hw address Patch76: net-tools-1.60-ib-warning.patch -# handle raw "IP" masqinfo -Patch79: net-tools-1.60-masqinfo-raw-ip.patch +# upstream +#Patch79: net-tools-1.60-masqinfo-raw-ip.patch -# touch up build system to respect normal toolchain env vars rather than requiring people to set random custom ones -# add missing dependency on version.h to libdir target to fix parallel build failures -# convert -idirafter to -I -Patch80: net-tools-1.60-makefile-berlios.patch +# upstream +#Patch80: net-tools-1.60-makefile-berlios.patch # slattach: use fchown() rather than chown() to avoid race between creation and permission changing -Patch81: net-tools-1.60-slattach-fchown.patch +#Patch81: net-tools-1.60-slattach-fchown.patch -# Bug 531702: make "hostname -s" display host name cut at the first dot (no matter if the host name resolves or not) -Patch82: net-tools-1.60-hostname-short.patch +# hostname patch +#Patch82: net-tools-1.60-hostname-short.patch # use instead of "mii.h" and fix Bug #491358 Patch83: net-tools-1.60-mii-refactor.patch -# Bug 473211: ifconfig interface:0 del will remove the Aliased IP on IA64 -# interface slip: cast keepalive/outfill to unsigned long to fix warnings on 64bit hosts -- no functional changes since these only have an 8bit range anyways +# ifconfig interface:0 del will remove the Aliased IP on IA64 (#473211) Patch84: net-tools-1.60-IA64.patch -# interface: fix IPv6 parsing of interfaces with large indexes (> 255) (Debian #433543) -Patch85: net-tools-1.60-large-indexes.patch +# upstream +#Patch85: net-tools-1.60-large-indexes.patch -# netstat -s (statistics.c) now uses unsigned long long (instead of int) to handle 64 bit integers (Bug #579854, Debian #561161) -Patch86: net-tools-1.60-statistics-doubleword.patch - -# update mii-tool to support gigabit links (#539575) -Patch87: net-tools-1.60-mii-gigabit.patch +# Fixed upstream +#Patch87: net-tools-1.60-mii-gigabit.patch # fix memory leak in netstat when run with -c option Patch88: net-tools-1.60-netstat-leak.patch -# HFI support -Patch89: net-tools-1.60-hfi.patch - -# Fix the handling of some of the HAVE_* flags ifdef vs if. (BerliOS #17812) -Patch90: net-tools-1.60-ifdef-vs-if.patch +# upstream +#Patch90: net-tools-1.60-ifdef-vs-if.patch # Don't rely on eth0 being default network device name. # Since Fedora 15 network devices can have arbitrary names (#682367) @@ -138,14 +256,13 @@ Patch91: net-tools-1.60-arbitrary-device-names.patch # plipconfig man page and usage output fixes. (#694766) Patch92: net-tools-1.60-plipconfig.patch -# patch netstat to separate basename of -p only if it is absolute -# path (in order to make argv[0]="sshd pty/0" display as sshd, and not as /0). +# netstat: remove part starting with colon in 'PID/Program name' column (#707427) Patch93: net-tools-1.60-netstat-p-basename.patch # Possible problems found by static analysis of code. Patch94: net-tools-1.60-coverity.patch -# Update for 2 digit Linux version numbers +# Update for 2 digit Linux version numbers (#718610) Patch95: net-tools-1.60-2digit.patch BuildRequires: gettext, libselinux @@ -160,84 +277,83 @@ including ifconfig, netstat, route, and others. Most of them are obsolete. For replacement check iproute package. %prep -%setup -q -%patch1 -p1 -b .bug22040 -%patch2 -p1 -b .miiioctl -%patch3 -p0 -b .manydevs +%setup -q -c +#%%patch1 -p1 -b .bug22040 +#%%patch2 -p1 -b .miiioctl +#%%patch3 -p0 -b .manydevs %patch4 -p1 -b .virtualname %patch5 -p1 -b .cycle -%patch6 -p1 -b .nameif +#%%patch6 -p1 -b .nameif %patch7 -p1 -b .ipx %patch8 -p1 -b .inet6-lookup %patch9 -p1 -b .man -%patch10 -p1 -b .gcc33 -%patch11 -p1 -b .trailingblank +#%%patch10 -p1 -b .gcc33 +#%%patch11 -p1 -b .trailingblank %patch12 -p1 -b .interface -%patch14 -p1 -b .gcc34 -%patch15 -p1 -b .overflow -%patch19 -p1 -b .siunits -%patch20 -p1 -b .trunc +#%%patch14 -p1 -b .gcc34 +#%%patch15 -p1 -b .overflow +#%%patch19 -p1 -b .siunits +#%%patch20 -p1 -b .trunc %patch21 -p1 -b .return -%patch22 -p1 -b .parse -%patch23 -p1 -b .netmask -%patch24 -p1 -b .ulong +#%%patch22 -p1 -b .parse +#%%patch23 -p1 -b .netmask +%patch24 -p1 -b .doubleword %patch25 -p1 -b .bcast -%patch27 -p1 -b .netstat_ulong -%patch28 -p1 -b .note -%patch29 -p1 -b .num-ports +#%%patch27 -p1 -b .netstat_ulong +#%%patch28 -p1 -b .note +#%%patch29 -p1 -b .num-ports %patch30 -p1 -b .dup-tcp %patch31 -p1 -b .statalias -%patch32 -p1 -b .isofix -%patch34 -p1 -b .ifconfig_ib -%patch35 -p1 -%patch37 -p1 -b .pie -%patch38 -p1 -b .ifaceopt +#%%patch32 -p1 -b .isofix +#%%patch34 -p1 -b .ifconfig_ib +#%%patch35 -p1 +#%%patch37 -p1 -b .pie +#%%patch38 -p1 -b .ifaceopt %patch39 -p1 -b .trim-iface -%patch40 -p1 -b .stdo -%patch41 -p1 -b .statistics -%patch42 -p1 -b .iface_drop +#%%patch40 -p1 -b .stdo +#%%patch41 -p1 -b .statistics +#%%patch42 -p1 -b .iface_drop %patch43 -p1 -b .overflow -%patch44 -p1 -b .hostname_man -%patch45 -p0 -b .stack +#%%patch44 -p1 -b .hostname_man +%patch45 -p1 -b .stack %patch46 -p1 -b .selinux -%patch47 -p1 -b .trim -%patch48 -p1 -b .inode +#%%patch47 -p1 -b .trim +#%%patch48 -p1 -b .inode %patch49 -p1 -b .fgets %patch51 -p1 -b .x25 %patch52 -p1 -b .sctp %patch54 -p1 -b .long_iface -%patch55 -p1 -b .netdevice -%patch56 -p1 -b .skip -%patch57 -p1 +#%%patch55 -p1 -b .netdevice +#%%patch56 -p1 -b .skip +#%%patch57 -p1 %patch58 -p1 -b .strncpy -%patch59 -p1 -b .arp-un-access -%patch60 -p1 -b .quiet -%patch61 -p1 -%patch62 -p1 -b .iface-crash -%patch64 -p1 -%patch65 -p1 -b .buffer -%patch66 -p1 -b .sctp-addrs -%patch67 -p1 -b .i-option +#%%patch59 -p1 -b .arp-un-access +#%%patch60 -p1 -b .quiet +#%%patch61 -p1 +#%%patch62 -p1 -b .iface-crash +#%%patch64 -p1 +#%%patch65 -p1 -b .buffer +#%%patch66 -p1 -b .sctp-addrs +#%%patch67 -p1 -b .i-option %patch69 -p1 -b .clear-flag %patch71 -p1 -b .probe %patch72 -p1 -b .scanf-format -%patch73 -p1 -b .avoid-name-resolution -%patch74 -p1 -b .continous-flush-stdout -%patch75 -p1 -b .debug-fix +#%%patch73 -p1 -b .avoid-name-resolution +#%%patch74 -p1 -b .continous-flush-stdout +#%%patch75 -p1 -b .debug-fix %patch76 -p1 -b .ib-warning -%patch79 -p1 -b .masqinfo-raw-ip -%patch80 -p1 -b .makefile-berlios -%patch81 -p1 -b .slattach-fchown -%patch82 -p1 -b .hostname-short +#%%patch79 -p1 -b .masqinfo-raw-ip +#%%patch80 -p1 -b .makefile-berlios +#%%patch81 -p1 -b .slattach-fchown +#%%patch82 -p1 -b .hostname-short %patch83 -p1 -b .mii-refactor %patch84 -p1 -b .IA64 -%patch85 -p1 -b .large-indexes -%patch86 -p1 -b .doubleword -%patch87 -p1 -b .mii-gigabit +#%%patch85 -p1 -b .large-indexes +#%%patch87 -p1 -b .mii-gigabit %patch88 -p1 -b .netstat-leak -%patch89 -p1 -b .hfi -%patch90 -p1 -b .ifdef-vs-if + +#%%patch90 -p1 -b .ifdef-vs-if %patch91 -p1 -b .arbitrary-device-names %patch92 -p1 -b .plipconfig %patch93 -p1 -b .p-basename @@ -294,7 +410,6 @@ gcc $RPM_OPT_FLAGS -o ether-wake ether-wake.c gcc $RPM_OPT_FLAGS -o mii-diag mii-diag.c %install -rm -rf %{buildroot} mv man/de_DE man/de mv man/fr_FR man/fr mv man/pt_BR man/pt @@ -335,7 +450,6 @@ fi %files -f %{name}.lang -%defattr(-,root,root) %doc COPYING /bin/netstat /sbin/* @@ -346,6 +460,10 @@ fi %attr(0644,root,root) %{_unitdir}/arp-ethers.service %changelog +* Wed Nov 23 2011 Jiri Popelka - 1.60-129.20111206git +- upstream git snapshot +- reduced number of patches from 95 to 32 + * Tue Oct 25 2011 Jiri Popelka - 1.60-128 - Removed HFI support. - Improved num-ports.patch