diff options
| author | Wilmer van der Gaast <wilmer@gaast.net> | 2010-04-07 03:39:20 +0100 | 
|---|---|---|
| committer | Wilmer van der Gaast <wilmer@gaast.net> | 2010-04-07 03:39:20 +0100 | 
| commit | d4efddfb7d34a8409cf78dd337f3933e0ed11d08 (patch) | |
| tree | 3ab369ba766b6c942d1ea9bef817b89f49bb159e | |
| parent | 33b306eaaa3e05cbc5d196d0d2f0b741ff11a9e6 (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).
| -rw-r--r-- | bitlbee.c | 10 | 
1 files changed, 9 insertions, 1 deletions
| @@ -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;  	} | 
