summaryrefslogtreecommitdiff
path: root/channels.c
diff options
context:
space:
mode:
authorstevesk <stevesk>2002-06-04 20:52:19 +0000
committerstevesk <stevesk>2002-06-04 20:52:19 +0000
commit7b4e28f23bbc98ba7f287b0bc9beb93b4006ec39 (patch)
treec19f77fe976f16b292e2f45bf87d4b6fecfd7e5e /channels.c
parentac4b777a5f2e0bfa2161fc5734d0fde76edf6467 (diff)
downloadopenssh-7b4e28f23bbc98ba7f287b0bc9beb93b4006ec39.tar.gz
- (stevesk) [channels.c] bug #164 patch from YOSHIFUJI Hideaki (changed
setsockopt from debug to error for now).
Diffstat (limited to 'channels.c')
-rw-r--r--channels.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/channels.c b/channels.c
index 520bff82..3ac69013 100644
--- a/channels.c
+++ b/channels.c
@@ -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);