Module Name:    src
Committed By:   christos
Date:           Fri Feb 14 20:43:35 UTC 2014

Modified Files:
        src/usr.bin/fstat: fstat.c

Log Message:
fix protocol printing order.


To generate a diff of this commit:
cvs rdiff -u -r1.107 -r1.108 src/usr.bin/fstat/fstat.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.bin/fstat/fstat.c
diff -u src/usr.bin/fstat/fstat.c:1.107 src/usr.bin/fstat/fstat.c:1.108
--- src/usr.bin/fstat/fstat.c:1.107	Thu Jan 16 22:28:01 2014
+++ src/usr.bin/fstat/fstat.c	Fri Feb 14 15:43:34 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: fstat.c,v 1.107 2014/01/17 03:28:01 christos Exp $	*/
+/*	$NetBSD: fstat.c,v 1.108 2014/02/14 20:43:34 christos Exp $	*/
 
 /*-
  * Copyright (c) 1988, 1993
@@ -39,7 +39,7 @@ __COPYRIGHT("@(#) Copyright (c) 1988, 19
 #if 0
 static char sccsid[] = "@(#)fstat.c	8.3 (Berkeley) 5/2/95";
 #else
-__RCSID("$NetBSD: fstat.c,v 1.107 2014/01/17 03:28:01 christos Exp $");
+__RCSID("$NetBSD: fstat.c,v 1.108 2014/02/14 20:43:34 christos Exp $");
 #endif
 #endif /* not lint */
 
@@ -158,8 +158,8 @@ static const char *const dtypes[] = {
 static void	dofiles(struct kinfo_proc2 *);
 static int	ext2fs_filestat(struct vnode *, struct filestat *);
 static int	getfname(const char *);
-static void	getinetproto(int);
-static void	getatproto(int);
+static void	getinetproto(char *, size_t, int);
+static void	getatproto(char *, size_t, int);
 static char   *getmnton(struct mount *);
 static const char   *layer_filestat(struct vnode *, struct filestat *);
 static int	msdosfs_filestat(struct vnode *, struct filestat *);
@@ -1009,8 +1009,9 @@ socktrans(struct socket *sock, int i)
 	struct ddpcb	ddpcb;
 	int len;
 	char dname[32];
-	char lbuf[512], fbuf[512];
+	char lbuf[512], fbuf[512], pbuf[24];
 
+	pbuf[0] = '\0';
 	/* fill in socket */
 	if (!KVM_READ(sock, &so, sizeof(struct socket))) {
 		dprintf("can't read sock at %p", sock);
@@ -1055,7 +1056,7 @@ socktrans(struct socket *sock, int i)
 	lbuf[0] = '\0';
 	switch(dom.dom_family) {
 	case AF_INET:
-		getinetproto(proto.pr_protocol);
+		getinetproto(pbuf, sizeof(pbuf), proto.pr_protocol);
 		switch (proto.pr_protocol) {
 		case IPPROTO_TCP:
 		case IPPROTO_UDP:
@@ -1077,7 +1078,7 @@ socktrans(struct socket *sock, int i)
 		break;
 #ifdef INET6
 	case AF_INET6:
-		getinetproto(proto.pr_protocol);
+		getinetproto(pbuf, sizeof(pbuf), proto.pr_protocol);
 		switch (proto.pr_protocol) {
 		case IPPROTO_TCP:
 		case IPPROTO_UDP:
@@ -1163,7 +1164,7 @@ again:
 		}
 		break;
 	case AF_APPLETALK:
-		getatproto(proto.pr_protocol);
+		getatproto(pbuf, sizeof(pbuf), proto.pr_protocol);
 		if (so.so_pcb) {
 			if (kvm_read(kd, (u_long)so.so_pcb, (char *)&ddpcb,
 			    sizeof(ddpcb)) != sizeof(ddpcb)){
@@ -1186,6 +1187,8 @@ again:
 	else
 		(void)printf("* %s %s", dname, stypename[so.so_type]);
 
+	if (pbuf[0])
+		printf("%s", pbuf);
 	if (fbuf[0] || lbuf[0])
 		printf(" %s%s%s", fbuf, (fbuf[0] && lbuf[0]) ? " <-> " : "",
 		    lbuf);
@@ -1236,7 +1239,7 @@ misctrans(struct file *file, int i)
  *	print name of protocol number
  */
 static void
-getinetproto(int number)
+getinetproto(char *buf, size_t len, int number)
 {
 	const char *cp;
 
@@ -1262,10 +1265,10 @@ getinetproto(int number)
 	case IPPROTO_ICMPV6:
 		cp ="icmp6"; break;
 	default:
-		(void)printf(" %d", number);
+		(void)snprintf(buf, len, " %d", number);
 		return;
 	}
-	(void)printf(" %s", cp);
+	(void)snprintf(buf, len, " %s", cp);
 }
 
 /*
@@ -1273,7 +1276,7 @@ getinetproto(int number)
  *	print name of protocol number
  */
 static void
-getatproto(int number)
+getatproto(char *buf, size_t len, int number)
 {
 	const char *cp;
 
@@ -1283,10 +1286,10 @@ getatproto(int number)
 	case ATPROTO_AARP:
 		cp ="aarp"; break;
 	default:
-		(void)printf(" %d", number);
+		(void)snprintf(buf, len, " %d", number);
 		return;
 	}
-	(void)printf(" %s", cp);
+	(void)snprintf(buf, len, " %s", cp);
 }
 
 static int

Reply via email to