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