Mercurial > dovecot > core-2.2
diff src/lib/network.c @ 2098:24e382b88232 HEAD
Added net_getpeername()
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Mon, 31 May 2004 21:56:43 +0300 |
parents | 79790750c349 |
children | c5817f302aa6 |
line wrap: on
line diff
--- a/src/lib/network.c Mon May 31 21:04:46 2004 +0300 +++ b/src/lib/network.c Mon May 31 21:56:43 2004 +0300 @@ -487,6 +487,23 @@ return 0; } +int net_getpeername(int fd, struct ip_addr *addr, unsigned int *port) +{ + union sockaddr_union so; + socklen_t addrlen; + + i_assert(fd >= 0); + + addrlen = sizeof(so); + if (getpeername(fd, (struct sockaddr *) &so, &addrlen) == -1) + return -1; + + if (addr != NULL) sin_get_ip(&so, addr); + if (port != NULL) *port = sin_get_port(&so); + + return 0; +} + const char *net_ip2addr(const struct ip_addr *ip) { #ifdef HAVE_IPV6