dovecot-2.0: Added net_getunixname().

dovecot at dovecot.org dovecot at dovecot.org
Tue Sep 1 00:21:47 EEST 2009


details:   http://hg.dovecot.org/dovecot-2.0/rev/95fba8612a87
changeset: 9843:95fba8612a87
user:      Timo Sirainen <tss at iki.fi>
date:      Mon Aug 31 17:04:27 2009 -0400
description:
Added net_getunixname().

diffstat:

2 files changed, 17 insertions(+)
src/lib/network.c |   15 +++++++++++++++
src/lib/network.h |    2 ++

diffs (37 lines):

diff -r e95135898a3c -r 95fba8612a87 src/lib/network.c
--- 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 @@ int net_getpeername(int fd, struct ip_ad
 	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
diff -r e95135898a3c -r 95fba8612a87 src/lib/network.h
--- a/src/lib/network.h	Mon Aug 31 16:35:43 2009 -0400
+++ b/src/lib/network.h	Mon Aug 31 17:04:27 2009 -0400
@@ -95,6 +95,8 @@ int net_getsockname(int fd, struct ip_ad
 int net_getsockname(int fd, struct ip_addr *addr, unsigned int *port);
 /* Get socket remote address/port */
 int net_getpeername(int fd, struct ip_addr *addr, unsigned int *port);
+/* Get UNIX socket name. */
+int net_getunixname(int fd, const char **name_r);
 
 /* Returns ip_addr as string, or NULL if ip is invalid. */
 const char *net_ip2addr(const struct ip_addr *ip);


More information about the dovecot-cvs mailing list