#include "ircd_osdep.h"
#include "msgq.h"
+#include "ircd_log.h"
#include "res.h"
#include "s_bsd.h"
#include "sys.h"
* 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>
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) {