]> git.sesse.net Git - vlc/commitdiff
Try to use dual-stack when needed, and warn user if it failed.
authorRémi Denis-Courmont <rem@videolan.org>
Thu, 23 Nov 2006 11:48:32 +0000 (11:48 +0000)
committerRémi Denis-Courmont <rem@videolan.org>
Thu, 23 Nov 2006 11:48:32 +0000 (11:48 +0000)
src/network/io.c

index 7e6fdc2ceecabb8361f54653bd3136a8c91472b9..ac9cfc5e83897c776e95815400de7d0f82bd2f4b 100644 (file)
@@ -252,6 +252,19 @@ int net_ListenSingle (vlc_object_t *obj, const char *host, int port,
     int fd = fdv[0];
     assert (fd != -1);
 
+    if (fdv[1] != -1)
+    {
+#ifdef IPV6_V6ONLY
+        struct sockaddr_storage addr;
+        getsockname (fd, (struct sockaddr *)&addr,
+                     &(socklen_t){ sizeof (addr) });
+        if ((addr.ss_family == AF_INET6)
+         && setsockopt (fd, IPPROTO_IPV6, IPV6_V6ONLY, &(int){ 0 },
+                        sizeof (int)))
+#endif
+            msg_Err (obj, "Lame IP dual-stack: IPv4 connections might fail.");
+    }
+
     free (fdv);
     return fd;
 }