Changes in unix.c [7f49a86:cd63d58]
Legend:
- Unmodified
- Added
- Removed
-
unix.c
r7f49a86 rcd63d58 40 40 static void sighandler( int signal ); 41 41 42 int main( int argc, char *argv[] , char **envp)42 int main( int argc, char *argv[] ) 43 43 { 44 44 int i = 0; … … 60 60 if( global.conf->runmode == RUNMODE_INETD ) 61 61 { 62 log_link( LOGLVL_ERROR, LOGOUTPUT_IRC );63 log_link( LOGLVL_WARNING, LOGOUTPUT_IRC );64 65 62 i = bitlbee_inetd_init(); 66 63 log_message( LOGLVL_INFO, "Bitlbee %s starting in inetd mode.", BITLBEE_VERSION ); … … 69 66 else if( global.conf->runmode == RUNMODE_DAEMON ) 70 67 { 71 log_link( LOGLVL_ERROR, LOGOUTPUT_SYSLOG );72 log_link( LOGLVL_WARNING, LOGOUTPUT_SYSLOG );73 74 68 i = bitlbee_daemon_init(); 75 69 log_message( LOGLVL_INFO, "Bitlbee %s starting in daemon mode.", BITLBEE_VERSION ); … … 141 135 { 142 136 char *fn = ipc_master_save_state(); 143 char **args;144 int n, i;145 137 146 138 chdir( old_cwd ); 147 139 148 n = 0; 149 args = g_new0( char *, argc + 3 ); 150 args[n++] = argv[0]; 151 if( fn ) 152 { 153 args[n++] = "-R"; 154 args[n++] = fn; 155 } 156 for( i = 1; argv[i] && i < argc; i ++ ) 157 { 158 if( strcmp( argv[i], "-R" ) == 0 ) 159 i += 2; 160 161 args[n++] = argv[i]; 162 } 140 setenv( "_BITLBEE_RESTART_STATE", fn, 1 ); 141 g_free( fn ); 163 142 164 143 close( global.listen_socket ); 165 144 166 execve( args[0], args, envp ); 145 if( execv( argv[0], argv ) == -1 ) 146 /* Apparently the execve() failed, so let's just 147 jump back into our own/current main(). */ 148 /* Need more cleanup code to make this work. */ 149 return 1; /* main( argc, argv ); */ 167 150 } 168 151 … … 225 208 return( (double) time->tv_sec + (double) time->tv_usec / 1000000 ); 226 209 } 227 228
Note: See TracChangeset
for help on using the changeset viewer.