]> andersk Git - openssh.git/blobdiff - channels.c
- (stevesk) [channels.c] bug #164 patch from YOSHIFUJI Hideaki (changed
[openssh.git] / channels.c
index 520bff82292345903f6619c6b4d42b9287a8dc53..3ac690135ca3eaa89d1b320bfa4c302dec82a720 100644 (file)
@@ -2374,6 +2374,13 @@ x11_create_display_inet(int x11_display_offset, int x11_use_localhost,
                                        continue;
                                }
                        }
+#ifdef IPV6_V6ONLY
+                       if (ai->ai_family == AF_INET6) {
+                               int on = 1;
+                               if (setsockopt(sock, IPPROTO_IPV6, IPV6_V6ONLY, &on, sizeof(on)) < 0)
+                                       error("setsockopt IPV6_V6ONLY: %.100s", strerror(errno));
+                       }
+#endif
                        if (bind(sock, ai->ai_addr, ai->ai_addrlen) < 0) {
                                debug("bind port %d: %.100s", port, strerror(errno));
                                close(sock);
@@ -2392,7 +2399,12 @@ x11_create_display_inet(int x11_display_offset, int x11_use_localhost,
                        if (num_socks == NUM_SOCKS)
                                break;
 #else
-                       break;
+                       if (x11_use_localhost) {
+                               if (num_socks == NUM_SOCKS)
+                                       break;
+                       } else {
+                               break;
+                       }
 #endif
                }
                freeaddrinfo(aitop);
This page took 0.034085 seconds and 4 git commands to generate.