Remove obsolete tools/crypter script. Allow Client blocks to
[ircu2.10.12-pk.git] / ircd / os_generic.c
index 9191b387303639541a7925fd1c407dc296920464..c824f531d1abd5c2e3ee2c7ecc5bed17c1a39a6b 100644 (file)
@@ -27,6 +27,7 @@
 
 #include "ircd_osdep.h"
 #include "msgq.h"
+#include "ircd_log.h"
 #include "res.h"
 #include "s_bsd.h"
 #include "sys.h"
@@ -37,7 +38,7 @@
  * Solaris requires sys/time.h before struct rusage (indirectly) in
  * netinet/in.h.
  */
-#include <assert.h>
+/* #include <assert.h> -- Now using assert in ircd_log.h */
 #include <errno.h>
 #include <fcntl.h>
 #include <limits.h>
@@ -107,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) {