From: Timo Sirainen Date: Tue, 20 Jul 2010 23:15:34 +0000 (+0100) Subject: net_connect_ip*(): Fixed FreeBSD kludging. X-Git-Tag: 2.0.rc4~56 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=fb0e47507cac98e1423b96081478ee4db09b48ac;p=thirdparty%2Fdovecot%2Fcore.git net_connect_ip*(): Fixed FreeBSD kludging. --- diff --git a/src/lib/network.c b/src/lib/network.c index abaa8c9bfc..33fc433427 100644 --- a/src/lib/network.c +++ b/src/lib/network.c @@ -135,16 +135,17 @@ static inline unsigned int sin_get_port(union sockaddr_union *so) } #ifdef __FreeBSD__ -static int net_connect_ip_freebsd(const struct ip_addr *ip, unsigned int port, - const struct ip_addr *my_ip); +static int +net_connect_ip_full_freebsd(const struct ip_addr *ip, unsigned int port, + const struct ip_addr *my_ip, bool blocking); -int net_connect_ip(const struct ip_addr *ip, unsigned int port, - const struct ip_addr *my_ip) +static int net_connect_ip_full(const struct ip_addr *ip, unsigned int port, + const struct ip_addr *my_ip, bool blocking) { int fd, try; for (try = 0;;) { - fd = net_connect_ip_freebsd(ip, port, my_ip); + fd = net_connect_ip_full_freebsd(ip, port, my_ip, blocking); if (fd != -1 || ++try == 5 || (errno != EADDRINUSE && errno != EACCES)) break; @@ -159,8 +160,7 @@ int net_connect_ip(const struct ip_addr *ip, unsigned int port, return fd; } /* then some kludging: */ -#define net_connect_ip net_connect_ip_freebsd -static +#define net_connect_ip_full net_connect_ip_full_freebsd #endif static int net_connect_ip_full(const struct ip_addr *ip, unsigned int port, @@ -217,6 +217,9 @@ static int net_connect_ip_full(const struct ip_addr *ip, unsigned int port, return fd; } +#ifdef __FreeBSD__ +# undef net_connect_ip_full +#endif int net_connect_ip(const struct ip_addr *ip, unsigned int port, const struct ip_addr *my_ip)