summaryrefslogtreecommitdiffstats
path: root/usr.bin/netstat
diff options
context:
space:
mode:
authorjulian <julian@FreeBSD.org>1996-07-23 01:18:47 +0000
committerjulian <julian@FreeBSD.org>1996-07-23 01:18:47 +0000
commit7805978130bff3d12577cd0f7ab22e16fcf455ed (patch)
tree2385f2536a83e74266993dc1005df7f95645ba32 /usr.bin/netstat
parentb38885b4106ac83ac9d14b4d9d6a8567a51abbbe (diff)
downloadFreeBSD-src-7805978130bff3d12577cd0f7ab22e16fcf455ed.zip
FreeBSD-src-7805978130bff3d12577cd0f7ab22e16fcf455ed.tar.gz
Submitted by: archie@whistle.com
appletalk cleanups
Diffstat (limited to 'usr.bin/netstat')
-rw-r--r--usr.bin/netstat/atalk.c79
-rw-r--r--usr.bin/netstat/if.c4
-rw-r--r--usr.bin/netstat/netstat.h3
-rw-r--r--usr.bin/netstat/route.c9
4 files changed, 51 insertions, 44 deletions
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 <sys/param.h>
@@ -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
OpenPOWER on IntegriCloud