Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 31 Dec 2013 00:45:24 +0000 (UTC)
From:      "Andrey V. Elsukov" <ae@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r260116 - user/ae/inet6/usr.sbin/jls
Message-ID:  <201312310045.rBV0jOF9007782@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ae
Date: Tue Dec 31 00:45:24 2013
New Revision: 260116
URL: http://svnweb.freebsd.org/changeset/base/260116

Log:
  Migrate jls(8) from using struct in6_addr to struct sockaddr_in6.

Modified:
  user/ae/inet6/usr.sbin/jls/jls.c

Modified: user/ae/inet6/usr.sbin/jls/jls.c
==============================================================================
--- user/ae/inet6/usr.sbin/jls/jls.c	Tue Dec 31 00:21:15 2013	(r260115)
+++ user/ae/inet6/usr.sbin/jls/jls.c	Tue Dec 31 00:45:24 2013	(r260116)
@@ -35,12 +35,14 @@ __FBSDID("$FreeBSD$");
 #include <sys/sysctl.h>
 
 #include <arpa/inet.h>
+#include <net/if.h>
 #include <netinet/in.h>
 
 #include <err.h>
 #include <errno.h>
 #include <jail.h>
 #include <limits.h>
+#include <netdb.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -363,7 +365,7 @@ print_jail(int pflags, int jflags)
 	char *nname;
 	char **param_values;
 	int i, ai, jid, count, n, spc;
-	char ipbuf[INET6_ADDRSTRLEN];
+	char ipbuf[INET6_ADDRSTRLEN + IF_NAMESIZE + 1];
 
 	jid = jailparam_get(params, nparams, jflags);
 	if (jid < 0)
@@ -396,15 +398,20 @@ print_jail(int pflags, int jflags)
 #endif
 #ifdef INET6
 		if (ip6_ok && !strcmp(params[n].jp_name, "ip6.addr")) {
-			count = params[n].jp_valuelen / sizeof(struct in6_addr);
-			for (ai = 0; ai < count; ai++)
-				if (inet_ntop(AF_INET6,
-				    &((struct in6_addr *)
-					params[n].jp_value)[ai],
-				    ipbuf, sizeof(ipbuf)) == NULL)
-					err(1, "inet_ntop");
+			struct sockaddr_in6 *sa6;
+
+			count = params[n].jp_valuelen /
+			    sizeof(struct sockaddr_in6);
+			for (ai = 0; ai < count; ai++) {
+				sa6 = &((struct sockaddr_in6 *)
+				    params[n].jp_value)[ai];
+				if (getnameinfo((struct sockaddr *)sa6,
+				    sa6->sin6_len, ipbuf, sizeof(ipbuf),
+				    NULL, 0, NI_NUMERICHOST) != 0)
+					err(1, "getnameinfo");
 				else
 					printf("%6s  %s\n", "", ipbuf);
+			}
 			n++;
 		}
 #endif



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201312310045.rBV0jOF9007782>