summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2012-08-30 19:46:06 +0200
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2012-08-30 19:46:06 +0200
commit9c1536d514dd8332e724cfd5a722bd81e56a6b62 (patch)
treead8ffe18f0083eeb58767d4c549fbe20bda553a7 /src
parentfb39830546a65c757f3aa473357098f9877dba87 (diff)
downloadgnutls-9c1536d514dd8332e724cfd5a722bd81e56a6b62.tar.gz
On Linux with /proc/sys/net/ipv6/bindv6only == 0 (which is now the
default), gnutls-serv cannot listen on ipv6. Patch by Bernhard R. Link.
Diffstat (limited to 'src')
-rw-r--r--src/serv.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/serv.c b/src/serv.c
index eba281a8a4..42317e6b59 100644
--- a/src/serv.c
+++ b/src/serv.c
@@ -730,6 +730,17 @@ listen_socket (const char *name, int listen_port, int socktype)
continue;
}
+#ifdef HAVE_IPV6
+ if (ptr->ai_family == AF_INET6)
+ {
+ yes = 1;
+ /* avoid listen on ipv6 addresses failing
+ * because already listening on ipv4 addresses: */
+ setsockopt (s, IPPROTO_IPV6, IPV6_V6ONLY,
+ (const void *) &yes, sizeof (yes));
+ }
+#endif
+
if (socktype == SOCK_STREAM)
{
yes = 1;