From 7805978130bff3d12577cd0f7ab22e16fcf455ed Mon Sep 17 00:00:00 2001 From: julian Date: Tue, 23 Jul 1996 01:18:47 +0000 Subject: Submitted by: archie@whistle.com appletalk cleanups --- usr.bin/netstat/atalk.c | 79 ++++++++++++++++++++++++----------------------- usr.bin/netstat/if.c | 4 +-- usr.bin/netstat/netstat.h | 3 +- usr.bin/netstat/route.c | 9 ++++-- 4 files changed, 51 insertions(+), 44 deletions(-) (limited to 'usr.bin/netstat') diff --git a/usr.bin/netstat/atalk.c b/usr.bin/netstat/atalk.c index e0c1a53..e219335 100644 --- a/usr.bin/netstat/atalk.c +++ b/usr.bin/netstat/atalk.c @@ -70,35 +70,37 @@ static int first = 1; * -a (all) flag is specified. */ -char * -at_pr_net(struct sockaddr_at *sat) +static char * +at_pr_net(struct sockaddr_at *sat, int numeric) { static char mybuf[50]; - switch(sat->sat_addr.s_net) { - case 0xffff: - return "????"; - case ATADDR_ANYNET: - return("*"); - default: - sprintf(mybuf,"%hu",ntohs(sat->sat_addr.s_net)); + if (!numeric) { + switch(sat->sat_addr.s_net) { + case 0xffff: + return "????"; + case ATADDR_ANYNET: + return("*"); + } } + sprintf(mybuf,"%hu",ntohs(sat->sat_addr.s_net)); return mybuf; } -char * -at_pr_host(struct sockaddr_at *sat) +static char * +at_pr_host(struct sockaddr_at *sat, int numeric) { static char mybuf[50]; - switch(sat->sat_addr.s_node) { - case ATADDR_BCAST: - return "bcast"; - case ATADDR_ANYNODE: - return("*"); - default: - sprintf(mybuf,"%d",(unsigned int)sat->sat_addr.s_node); + if (!numeric) { + switch(sat->sat_addr.s_node) { + case ATADDR_BCAST: + return "bcast"; + case ATADDR_ANYNODE: + return("*"); + } } + sprintf(mybuf,"%d",(unsigned int)sat->sat_addr.s_node); return mybuf; } @@ -122,47 +124,48 @@ static char mybuf[50]; /* 1 for net */ /* 2 for host */ /* 4 for port */ +/* 8 for numeric only */ char * atalk_print(sa,what) register struct sockaddr *sa; { struct sockaddr_at *sat = (struct sockaddr_at *)sa; -static char mybuf[50]; + static char mybuf[50]; + int numeric = (what & 0x08); mybuf[0] = 0; - switch (what & 3 ) { + switch (what & 3) { case 0: mybuf[0] = 0; break; case 1: - sprintf(mybuf,"%s",at_pr_net(sat)); + sprintf(mybuf,"%s",at_pr_net(sat, numeric)); break; case 2: - sprintf(mybuf,"%s",at_pr_host(sat)); + sprintf(mybuf,"%s",at_pr_host(sat, numeric)); break; case 3: - sprintf(mybuf,"[%s.%s]", - at_pr_net(sat), - at_pr_host(sat)); + sprintf(mybuf,"%s.%s", + at_pr_net(sat, numeric), + at_pr_host(sat, numeric)); } if (what & 4) { sprintf(mybuf+strlen(mybuf),"%s",at_pr_port(sat)); } -#if 0 - switch(sat->sat_hints.type) { - case SATHINT_NONE: - sprintf(mybuf,"[no type]"); - break; - case SATHINT_CONFIG: - case SATHINT_IFACE: - sprintf(mybuf,"[too hard for now]"); - break; - default: - sprintf(mybuf,"[unknown type]"); - } -#endif return mybuf; } + +char * +atalk_print2(struct sockaddr *sa, struct sockaddr *mask, int what) +{ + int n; + static char buf[100]; + + n = snprintf(buf, sizeof(buf), "%s", atalk_print(sa, what)); + snprintf(buf + n, sizeof(buf) - n, "/%s", atalk_print(mask, what)); + return(buf); +} + void atalkprotopr(off, name) u_long off; diff --git a/usr.bin/netstat/if.c b/usr.bin/netstat/if.c index 2939890..bfe8432 100644 --- a/usr.bin/netstat/if.c +++ b/usr.bin/netstat/if.c @@ -188,8 +188,8 @@ intpr(interval, ifnetaddr) break; case AF_APPLETALK: - printf("atalk:%-7.7s ",atalk_print(sa,1) ); - printf("%-15.15s ",atalk_print(sa,3) ); + printf("atalk:%-7.7s ",atalk_print(sa,9) ); + printf("%-15.15s ",atalk_print(sa,11) ); break; #ifdef NS case AF_NS: diff --git a/usr.bin/netstat/netstat.h b/usr.bin/netstat/netstat.h index da98ff4..708094f 100644 --- a/usr.bin/netstat/netstat.h +++ b/usr.bin/netstat/netstat.h @@ -88,7 +88,8 @@ void upHex __P((char *)); char *routename __P((u_long)); char *netname __P((u_long, u_long)); -char *atalk_print __P((struct sockaddr *,int)); +char *atalk_print __P((struct sockaddr *, int)); +char *atalk_print2 __P((struct sockaddr *, struct sockaddr *, int)); char *ipx_print __P((struct sockaddr *)); char *ns_print __P((struct sockaddr *)); void routepr __P((u_long)); diff --git a/usr.bin/netstat/route.c b/usr.bin/netstat/route.c index 85fe147..77cd001 100644 --- a/usr.bin/netstat/route.c +++ b/usr.bin/netstat/route.c @@ -36,7 +36,7 @@ static char sccsid[] = "From: @(#)route.c 8.6 (Berkeley) 4/28/95"; #endif static const char rcsid[] = - "$Id: route.c,v 1.15 1996/06/10 21:03:38 julian Exp $"; + "$Id: route.c,v 1.16 1996/06/15 17:08:40 peter Exp $"; #endif /* not lint */ #include @@ -188,7 +188,7 @@ pr_family(af) afname = "ISO"; break; case AF_APPLETALK: - afname = "ATALK"; + afname = "AppleTalk"; break; case AF_CCITT: afname = "X.25"; @@ -418,7 +418,10 @@ p_sockaddr(sa, mask, flags, width) } case AF_APPLETALK: { - cp = atalk_print(sa,3); + if (mask) + cp = atalk_print2(sa,mask,11); + else + cp = atalk_print(sa,11); break; } #ifdef NS -- cgit v1.1