Create sockets only in selected family with -4 or -6 option

This commit is contained in:
Miroslav Lichvar
2013-05-20 15:34:33 +02:00
parent 51a2d8dfd8
commit 72d0b3c913
7 changed files with 35 additions and 17 deletions

View File

@@ -262,7 +262,7 @@ prepare_socket(int family)
/* ================================================== */
void
CAM_Initialise(void)
CAM_Initialise(int family)
{
assert(!initialised);
initialised = 1;
@@ -278,9 +278,15 @@ CAM_Initialise(void)
free_replies = NULL;
kept_replies.next = NULL;
sock_fd4 = prepare_socket(AF_INET);
if (family == IPADDR_UNSPEC || family == IPADDR_INET4)
sock_fd4 = prepare_socket(AF_INET);
else
sock_fd4 = -1;
#ifdef HAVE_IPV6
sock_fd6 = prepare_socket(AF_INET6);
if (family == IPADDR_UNSPEC || family == IPADDR_INET6)
sock_fd6 = prepare_socket(AF_INET6);
else
sock_fd6 = -1;
#endif
if (sock_fd4 < 0