X-Git-Url: https://jfr.im/git/irc/quakenet/snircd.git/blobdiff_plain/052b069e1613393c208fa736c856d62601dc6f99..9f8856e99d8fe297de1ddf0cff73dc2ff4900c60:/ircd/s_bsd.c diff --git a/ircd/s_bsd.c b/ircd/s_bsd.c index 23032c4..1c3483a 100644 --- a/ircd/s_bsd.c +++ b/ircd/s_bsd.c @@ -19,7 +19,7 @@ */ /** @file * @brief Functions that now (or in the past) relied on BSD APIs. - * @version $Id: s_bsd.c,v 1.80 2005/07/12 02:13:10 entrope Exp $ + * @version $Id: s_bsd.c,v 1.80.2.1 2006/03/14 03:45:52 entrope Exp $ */ #include "config.h" @@ -207,6 +207,8 @@ static int connect_inet(struct ConfItem* aconf, struct Client* cptr) { const struct irc_sockaddr *local; IOResult result; + int family = 0; + assert(0 != aconf); assert(0 != cptr); /* @@ -215,11 +217,12 @@ static int connect_inet(struct ConfItem* aconf, struct Client* cptr) */ if (irc_in_addr_valid(&aconf->origin.addr)) local = &aconf->origin; - else if (irc_in_addr_is_ipv4(&aconf->address.addr)) + else if (irc_in_addr_is_ipv4(&aconf->address.addr)) { local = &VirtualHost_v4; - else + family = AF_INET; + } else local = &VirtualHost_v6; - cli_fd(cptr) = os_socket(local, SOCK_STREAM, cli_name(cptr)); + cli_fd(cptr) = os_socket(local, SOCK_STREAM, cli_name(cptr), family); if (cli_fd(cptr) < 0) return 0;