Changes in unix.c [58bc4e6:d25f6fc]
Legend:
- Unmodified
- Added
- Removed
-
unix.c
r58bc4e6 rd25f6fc 29 29 #include "protocols/nogaim.h" 30 30 #include "help.h" 31 #include "ipc.h"32 31 #include <signal.h> 33 32 #include <unistd.h> … … 39 38 static void sighandler( int signal ); 40 39 41 int main( int argc, char *argv[] , char **envp)40 int main( int argc, char *argv[] ) 42 41 { 43 42 int i = 0; 44 char *old_cwd = NULL;45 43 struct sigaction sig, old; 46 44 … … 75 73 else if( global.conf->runmode == RUNMODE_FORKDAEMON ) 76 74 { 77 /* In case the operator requests a restart, we need this. */78 old_cwd = g_malloc( 256 );79 if( getcwd( old_cwd, 255 ) == NULL )80 {81 log_message( LOGLVL_WARNING, "Could not save current directory: %s", strerror( errno ) );82 g_free( old_cwd );83 old_cwd = NULL;84 }85 86 75 i = bitlbee_daemon_init(); 87 76 log_message( LOGLVL_INFO, "Bitlbee %s starting in forking daemon mode.", BITLBEE_VERSION ); … … 118 107 119 108 g_main_run( global.loop ); 120 121 if( global.restart )122 {123 char *fn = ipc_master_save_state();124 char **args;125 int n, i;126 127 chdir( old_cwd );128 129 n = 0;130 args = g_new0( char *, argc + 3 );131 args[n++] = argv[0];132 if( fn )133 {134 args[n++] = "-R";135 args[n++] = fn;136 }137 for( i = 1; argv[i] && i < argc; i ++ )138 {139 if( strcmp( argv[i], "-R" ) == 0 )140 i += 2;141 142 args[n++] = argv[i];143 }144 145 close( global.listen_socket );146 147 execve( args[0], args, envp );148 }149 109 150 110 return( 0 );
Note: See TracChangeset
for help on using the changeset viewer.