diff options
Diffstat (limited to 'bitlbee.c')
| -rw-r--r-- | bitlbee.c | 21 | 
1 files changed, 18 insertions, 3 deletions
| @@ -41,8 +41,8 @@ int bitlbee_daemon_init()  	int i;  	FILE *fp; -	log_link( LOGLVL_ERROR, LOGOUTPUT_SYSLOG ); -	log_link( LOGLVL_WARNING, LOGOUTPUT_SYSLOG ); +	log_link( LOGLVL_ERROR, LOGOUTPUT_CONSOLE ); +	log_link( LOGLVL_WARNING, LOGOUTPUT_CONSOLE );  	memset( &hints, 0, sizeof( hints ) );  	hints.ai_family = PF_UNSPEC; @@ -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;  	} @@ -106,6 +114,7 @@ int bitlbee_daemon_init()  		else if( i != 0 )   			exit( 0 ); +		setsid();  		chdir( "/" );  		if( getenv( "_BITLBEE_RESTART_STATE" ) == NULL ) @@ -136,6 +145,12 @@ int bitlbee_daemon_init()  	}  #endif +	if( !global.conf->nofork ) +	{ +		log_link( LOGLVL_ERROR, LOGOUTPUT_SYSLOG ); +		log_link( LOGLVL_WARNING, LOGOUTPUT_SYSLOG ); +	} +	  	return( 0 );  } | 
