Module Name:    src
Committed By:   christos
Date:           Wed Sep 26 23:13:00 UTC 2012

Modified Files:
        src/lib/libc/net: getnameinfo.3 getnameinfo.c

Log Message:
add and document AF_LOCAL (and the rest that were not)


To generate a diff of this commit:
cvs rdiff -u -r1.38 -r1.39 src/lib/libc/net/getnameinfo.3
cvs rdiff -u -r1.52 -r1.53 src/lib/libc/net/getnameinfo.c

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

Modified files:

Index: src/lib/libc/net/getnameinfo.3
diff -u src/lib/libc/net/getnameinfo.3:1.38 src/lib/libc/net/getnameinfo.3:1.39
--- src/lib/libc/net/getnameinfo.3:1.38	Sat Mar  3 22:23:35 2012
+++ src/lib/libc/net/getnameinfo.3	Wed Sep 26 19:13:00 2012
@@ -1,4 +1,4 @@
-.\"	$NetBSD: getnameinfo.3,v 1.38 2012/03/04 03:23:35 christos Exp $
+.\"	$NetBSD: getnameinfo.3,v 1.39 2012/09/26 23:13:00 christos Exp $
 .\"	$KAME: getnameinfo.3,v 1.37 2005/01/05 03:23:05 itojun Exp $
 .\"	$OpenBSD: getnameinfo.3,v 1.36 2004/12/21 09:48:20 jmc Exp $
 .\"
@@ -17,7 +17,7 @@
 .\" OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 .\" PERFORMANCE OF THIS SOFTWARE.
 .\"
-.Dd March 3, 2012
+.Dd September 26, 2012
 .Dt GETNAMEINFO 3
 .Os
 .Sh NAME
@@ -47,11 +47,19 @@ The
 .Li sockaddr
 structure
 .Fa sa
-should point to either a
+should point to a
 .Li sockaddr_in
-or
+(for IPv4),
 .Li sockaddr_in6
-structure (for IPv4 or IPv6 respectively) that is
+(for IPv6),
+.Li sockaddr_atalk
+(for AppleTalk),
+.Li sockaddr_link
+(for link layer),
+or
+.Li sockaddr_local
+(for local/unix)
+structures that are
 .Fa salen
 bytes long.
 .Pp

Index: src/lib/libc/net/getnameinfo.c
diff -u src/lib/libc/net/getnameinfo.c:1.52 src/lib/libc/net/getnameinfo.c:1.53
--- src/lib/libc/net/getnameinfo.c:1.52	Tue Mar 20 13:44:18 2012
+++ src/lib/libc/net/getnameinfo.c	Wed Sep 26 19:13:00 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: getnameinfo.c,v 1.52 2012/03/20 17:44:18 matt Exp $	*/
+/*	$NetBSD: getnameinfo.c,v 1.53 2012/09/26 23:13:00 christos Exp $	*/
 /*	$KAME: getnameinfo.c,v 1.45 2000/09/25 22:43:56 itojun Exp $	*/
 
 /*
@@ -47,12 +47,13 @@
 
 #include <sys/cdefs.h>
 #if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: getnameinfo.c,v 1.52 2012/03/20 17:44:18 matt Exp $");
+__RCSID("$NetBSD: getnameinfo.c,v 1.53 2012/09/26 23:13:00 christos Exp $");
 #endif /* LIBC_SCCS and not lint */
 
 #include "namespace.h"
 #include <sys/types.h>
 #include <sys/socket.h>
+#include <sys/un.h>
 #include <net/if.h>
 #include <net/if_dl.h>
 #include <net/if_ieee1394.h>
@@ -104,6 +105,8 @@ static int ip6_sa2str(const struct socka
 #endif
 static int getnameinfo_atalk(const struct sockaddr *, socklen_t, char *,
     socklen_t, char *, socklen_t, int);
+static int getnameinfo_local(const struct sockaddr *, socklen_t, char *,
+    socklen_t, char *, socklen_t, int);
 
 static int getnameinfo_link(const struct sockaddr *, socklen_t, char *,
     socklen_t, char *, socklen_t, int);
@@ -131,6 +134,9 @@ getnameinfo(const struct sockaddr *sa, s
 	case AF_LINK:
 		return getnameinfo_link(sa, salen, host, hostlen,
 		    serv, servlen, flags);
+	case AF_LOCAL:
+		return getnameinfo_local(sa, salen, host, hostlen,
+		    serv, servlen, flags);
 	default:
 		return EAI_FAMILY;
 	}
@@ -197,6 +203,29 @@ errout:
 }
 
 /*
+ * getnameinfo_local():
+ * Format an local address into a printable format.
+ */
+/* ARGSUSED */
+static int
+getnameinfo_local(const struct sockaddr *sa, socklen_t salen,
+    char *host, socklen_t hostlen, char *serv, socklen_t servlen,
+    int flags)
+{
+	const struct sockaddr_un *sun =
+	    (const struct sockaddr_un *)(const void *)sa;
+
+	if (serv != NULL && servlen > 0)
+		serv[0] = '\0';
+
+	if (host && hostlen > 0)
+		strlcpy(host, sun->sun_path,
+		    MIN(sizeof(sun->sun_path) + 1, hostlen));
+
+	return 0;
+}
+
+/*
  * getnameinfo_inet():
  * Format an IPv4 or IPv6 sockaddr into a printable string.
  */

Reply via email to