From 0b510af4fc35c08e7eb693c018c9db141916970a Mon Sep 17 00:00:00 2001 From: Wilmer van der Gaast Date: Tue, 16 Mar 2010 10:45:26 +0000 Subject: Check the RESTART environment variable before closing fd's 0-2 since the previous approach broke upgrades to bzr >= 500. --- bitlbee.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) (limited to 'bitlbee.c') diff --git a/bitlbee.c b/bitlbee.c index a96cff03..26d12b6c 100644 --- a/bitlbee.c +++ b/bitlbee.c @@ -108,17 +108,13 @@ int bitlbee_daemon_init() chdir( "/" ); - i = close( 0 ) == 0; - i += close( 1 ) == 0; - i += close( 2 ) == 0; - /* To avoid that something important ends up on one of those - fd's, open them for something bogus. Otherwise RESTART - may cause troubles. */ - while( i > 0 ) - { - open( "/dev/null", O_WRONLY ); - i --; - } + if( getenv( "_BITLBEE_RESTART_STATE" ) == NULL ) + for( i = 0; i < 3; i ++ ) + if( close( i ) == 0 ) + { + /* Keep something bogus on those fd's just in case. */ + open( "/dev/null", O_WRONLY ); + } } #endif -- cgit v1.2.3