Remove obsolete tools/crypter script. Allow Client blocks to
[ircu2.10.12-pk.git] / ircd / os_generic.c
index 3f52e76cd1e9e0aa7ecd121b08ca8e240065b63d..c824f531d1abd5c2e3ee2c7ecc5bed17c1a39a6b 100644 (file)
@@ -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) {