diff options
author | Wilmer van der Gaast <wilmer@gaast.net> | 2010-04-14 11:27:50 +0200 |
---|---|---|
committer | Wilmer van der Gaast <wilmer@gaast.net> | 2010-04-14 11:27:50 +0200 |
commit | 21c87a78f1c01fe24610a5d05a65e52bd8eaa796 (patch) | |
tree | c4d95580134610222f8a2630d386be460fa74bb4 /bitlbee.c | |
parent | 81186cab101fa8c2f82137014d0b3c060b658cb0 (diff) | |
parent | 156bbd7b66cf29220c2ff6a86217c4dec5e33765 (diff) |
Merging loads of stuff from mainline.
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 ); } |