diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2012-08-30 19:46:06 +0200 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2012-08-30 19:46:06 +0200 |
commit | 9c1536d514dd8332e724cfd5a722bd81e56a6b62 (patch) | |
tree | ad8ffe18f0083eeb58767d4c549fbe20bda553a7 /src | |
parent | fb39830546a65c757f3aa473357098f9877dba87 (diff) | |
download | gnutls-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.c | 11 |
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; |