From 8d8407baa1e0186229366542ecbc87d6010bf4a5 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Fri, 26 Dec 2008 01:36:32 +0000 Subject: [PATCH] (trunk daemon) #1619: tm-daemon: daemon mode fails on mipsel --- daemon/daemon.c | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/daemon/daemon.c b/daemon/daemon.c index 9952553c2..6799a6799 100644 --- a/daemon/daemon.c +++ b/daemon/daemon.c @@ -81,12 +81,20 @@ gotsig( int sig UNUSED ) closing = TRUE; } +#if defined(WIN32) + #define USE_NO_DAEMON +#elif !defined(HAVE_DAEMON) || defined(__MIPSEL__) + #define USE_TR_DAEMON +#else + #define USE_OS_DAEMON +#endif + static int tr_daemon( int nochdir, int noclose ) { -#if defined(HAVE_DAEMON) && !defined(WIN32) +#if defined(USE_OS_DAEMON) return daemon( nochdir, noclose ); -#else +#elif defined(USE_TR_DAEMON) pid_t pid = fork( ); if( pid < 0 ) return -1; @@ -125,6 +133,8 @@ tr_daemon( int nochdir, int noclose ) return 0; } } +#else /* USE_NO_DAEMON */ + return 0; #endif } @@ -217,16 +227,11 @@ main( int argc, return 0; } -#ifndef WIN32 - if( !foreground ) + if( !foreground && tr_daemon( TRUE, FALSE ) < 0 ) { - if( 0 > tr_daemon( TRUE, FALSE ) ) - { - fprintf( stderr, "failed to daemonize: %s\n", strerror( errno ) ); - exit( 1 ); - } + fprintf( stderr, "failed to daemonize: %s\n", strerror( errno ) ); + exit( 1 ); } -#endif /* start the session */ mySession = tr_sessionInit( "daemon", configDir, FALSE, &settings );