summaryrefslogtreecommitdiffstats
path: root/usr.bin/netstat/atalk.c
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/atalk.c
parentb38885b4106ac83ac9d14b4d9d6a8567a51abbbe (diff)
downloadFreeBSD-src-7805978130bff3d12577cd0f7ab22e16fcf455ed.zip
FreeBSD-src-7805978130bff3d12577cd0f7ab22e16fcf455ed.tar.gz
Submitted by: archie@whistle.com
appletalk cleanups
Diffstat (limited to 'usr.bin/netstat/atalk.c')
-rw-r--r--usr.bin/netstat/atalk.c79
1 files changed, 41 insertions, 38 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;
OpenPOWER on IntegriCloud