Mercurial > dovecot > core-2.2
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