aboutsummaryrefslogtreecommitdiffstats
path: root/bitlbee.c
diff options
context:
space:
mode:
authorWilmer van der Gaast <wilmer@gaast.net>2010-04-07 03:39:20 +0100
committerWilmer van der Gaast <wilmer@gaast.net>2010-04-07 03:39:20 +0100
commitd4efddfb7d34a8409cf78dd337f3933e0ed11d08 (patch)
tree3ab369ba766b6c942d1ea9bef817b89f49bb159e /bitlbee.c
parent33b306eaaa3e05cbc5d196d0d2f0b741ff11a9e6 (diff)
Unset the IPV6_V6ONLY sockctl so listening on IPv6 will automatically also
listen on IPv4 again. This should close #583 (and apparently also fix this assumption on many non-Linux systems).
Diffstat (limited to 'bitlbee.c')
-rw-r--r--bitlbee.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/bitlbee.c b/bitlbee.c
index 26d12b6c..8f7be698 100644
--- a/bitlbee.c
+++ b/bitlbee.c
@@ -69,6 +69,15 @@ int bitlbee_daemon_init()
if( global.listen_socket < 0 )
continue;
+#ifdef IPV6_V6ONLY
+ if( res->ai_family == AF_INET6 )
+ {
+ i = 0;
+ setsockopt( global.listen_socket, IPPROTO_IPV6, IPV6_V6ONLY,
+ (char *) &i, sizeof( i ) );
+ }
+#endif
+
/* TIME_WAIT (?) sucks.. */
i = 1;
setsockopt( global.listen_socket, SOL_SOCKET, SO_REUSEADDR, &i, sizeof( i ) );
@@ -79,7 +88,6 @@ int bitlbee_daemon_init()
log_error( "bind" );
return( -1 );
}
-
break;
}