diff src/lib/network.c @ 9843:95fba8612a87 HEAD

Added net_getunixname().
author Timo Sirainen <tss@iki.fi>
date Mon, 31 Aug 2009 17:04:27 -0400
parents b9faf4db2a9f
children 1bc88aa1373f
line wrap: on
line diff
--- a/src/lib/network.c	Mon Aug 31 16:35:43 2009 -0400
+++ b/src/lib/network.c	Mon Aug 31 17:04:27 2009 -0400
@@ -589,6 +589,21 @@
 	return 0;
 }
 
+int net_getunixname(int fd, const char **name_r)
+{
+	struct sockaddr_un sa;
+	socklen_t addrlen = sizeof(sa);
+
+	if (getsockname(fd, (void *)&sa, &addrlen) < 0)
+		return -1;
+	if (sa.sun_family != AF_UNIX) {
+		errno = ENOTSOCK;
+		return -1;
+	}
+	*name_r = t_strdup(sa.sun_path);
+	return 0;
+}
+
 const char *net_ip2addr(const struct ip_addr *ip)
 {
 #ifdef HAVE_IPV6