summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Greenman <dg@FreeBSD.org>1995-09-23 15:04:28 +0000
committerDavid Greenman <dg@FreeBSD.org>1995-09-23 15:04:28 +0000
commit1b72e71cc2889428ccafeb4ff547d4ce6ee093db (patch)
tree7c810117d26a5aae71f27ceb59768118105ea169
parent93c188c20bd10fc1b880cef656dd8b6afa1c32e6 (diff)
Notes
-rw-r--r--usr.bin/netstat/if.c26
-rw-r--r--usr.bin/netstat/main.c1
2 files changed, 12 insertions, 15 deletions
diff --git a/usr.bin/netstat/if.c b/usr.bin/netstat/if.c
index f6257403825f..adcc076620b9 100644
--- a/usr.bin/netstat/if.c
+++ b/usr.bin/netstat/if.c
@@ -79,7 +79,7 @@ intpr(interval, ifnetaddr)
} ifaddr;
u_long ifaddraddr;
struct sockaddr *sa;
- char name[16];
+ char name[32], tname[16];
if (ifnetaddr == 0) {
printf("ifnet: symbol not defined\n");
@@ -112,15 +112,14 @@ intpr(interval, ifnetaddr)
if (ifaddraddr == 0) {
if (kread(ifnetaddr, (char *)&ifnet, sizeof ifnet) ||
- kread((u_long)ifnet.if_name, name, 16))
+ kread((u_long)ifnet.if_name, tname, 16))
return;
- name[15] = '\0';
+ tname[15] = '\0';
ifnetaddr = (u_long)ifnet.if_next;
- if (interface != 0 && (strcmp(name, interface) != 0 ||
- unit != ifnet.if_unit))
+ snprintf(name, 32, "%s%d", tname, ifnet.if_unit);
+ if (interface != 0 && (strcmp(name, interface) != 0))
continue;
cp = index(name, '\0');
- cp += sprintf(cp, "%d", ifnet.if_unit);
if ((ifnet.if_flags&IFF_UP) == 0)
*cp++ = '*';
*cp = '\0';
@@ -169,7 +168,7 @@ intpr(interval, ifnetaddr)
char netnum[8];
*(union ns_net *) &net = sns->sns_addr.x_net;
- sprintf(netnum, "%lxH", ntohl(net));
+ sprintf(netnum, "%lxH", ntohl(net));
upHex(netnum);
printf("ns:%-8s ", netnum);
printf("%-15s ",
@@ -260,18 +259,17 @@ sidewaysintpr(interval, off)
interesting = iftot;
for (off = firstifnet, ip = iftot; off;) {
char *cp;
+ char name[16], tname[16];
if (kread(off, (char *)&ifnet, sizeof ifnet))
break;
- ip->ift_name[0] = '(';
- if (kread((u_long)ifnet.if_name, ip->ift_name + 1, 15))
+ if (kread((u_long)ifnet.if_name, tname, 16))
break;
- if (interface && strcmp(ip->ift_name + 1, interface) == 0 &&
- unit == ifnet.if_unit)
+ tname[15] = '\0';
+ snprintf(name, 16, "%s%d", tname, ifnet.if_unit);
+ if (interface && strcmp(name, interface) == 0)
interesting = ip;
- ip->ift_name[15] = '\0';
- cp = index(ip->ift_name, '\0');
- sprintf(cp, "%d)", ifnet.if_unit);
+ snprintf(ip->ift_name, 16, "(%s)", name);;
ip++;
if (ip >= iftot + MAXIF - 2)
break;
diff --git a/usr.bin/netstat/main.c b/usr.bin/netstat/main.c
index fbff429d22c9..c8f2a9895999 100644
--- a/usr.bin/netstat/main.c
+++ b/usr.bin/netstat/main.c
@@ -241,7 +241,6 @@ main(argc, argv)
for (cp = interface = optarg; isalpha(*cp); cp++)
continue;
unit = atoi(cp);
- *cp = '\0';
break;
}
case 'i':