From f177592342c0c6b5eabde73a2f0fa778a29c1012 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Olivier=20Cr=C3=AAte?= Date: Sun, 27 Jun 2010 02:27:49 -0400 Subject: [PATCH] tcp-bsd: Create IPv6 socket if it such an address --- socket/tcp-bsd.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/socket/tcp-bsd.c b/socket/tcp-bsd.c index bcc87be4..681f1b7c 100644 --- a/socket/tcp-bsd.c +++ b/socket/tcp-bsd.c @@ -101,14 +101,20 @@ nice_tcp_bsd_socket_new (NiceAgent *agent, GMainContext *ctx, NiceAddress *addr) nice_address_copy_to_sockaddr(addr, (struct sockaddr *)&name); - if ((sockfd == -1) && - ((name.ss_family == AF_UNSPEC) || - (name.ss_family == AF_INET))) { - sockfd = socket (PF_INET, SOCK_STREAM, 0); - name.ss_family = AF_INET; + if (sockfd == -1) { + if (name.ss_family == AF_UNSPEC || name.ss_family == AF_INET) { + sockfd = socket (PF_INET, SOCK_STREAM, 0); + name.ss_family = AF_INET; +#ifdef HAVE_SA_LEN + name.ss_len = sizeof (struct sockaddr_in); +#endif + } else if (name.ss_family == AF_INET6) { + sockfd = socket (PF_INET6, SOCK_STREAM, 0); + name.ss_family = AF_INET6; #ifdef HAVE_SA_LEN - name.ss_len = sizeof (struct sockaddr_in); + name.ss_len = sizeof (struct sockaddr_in6); #endif + } } if (sockfd == -1) { -- GitLab