X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=ircd%2Fos_generic.c;h=c824f531d1abd5c2e3ee2c7ecc5bed17c1a39a6b;hb=482194058738a873e2a92144e7bd8a36bc0cba81;hp=3f52e76cd1e9e0aa7ecd121b08ca8e240065b63d;hpb=fc21303989a07d6091ef684150db29c49f682614;p=ircu2.10.12-pk.git diff --git a/ircd/os_generic.c b/ircd/os_generic.c index 3f52e76..c824f53 100644 --- a/ircd/os_generic.c +++ b/ircd/os_generic.c @@ -108,12 +108,19 @@ int sockaddr_from_irc(struct sockaddr_in6 *v6, const struct irc_sockaddr *irc, i int family; slen = sizeof(sin6); - if ((0 <= compat_fd) && (0 == getsockname(compat_fd, (struct sockaddr*)&sin6, &slen))) - family = sin6.sin6_family; - else if (irc_in_addr_is_ipv4(&VirtualHost.addr)) - family = AF_INET; - else - family = AF_INET6; + if (0 <= compat_fd) { + if (0 == getsockname(compat_fd, (struct sockaddr*)&sin6, &slen)) + family = sin6.sin6_family; + else if (irc_in_addr_is_ipv4(&VirtualHost.addr)) + family = AF_INET; + else + family = AF_INET6; + } else { + if (irc_in_addr_is_ipv4(&irc->addr)) + family = AF_INET; + else + family = AF_INET6; + } memset(v6, 0, sizeof(*v6)); if (!irc) {