mirror of
https://github.com/transmission/transmission
synced 2025-02-21 21:57:01 +00:00
(trunmk libT) #4162 "daemon should reopen logfile on SIGHUP" -- patch from gvdl to reopen the logfile on SIGHUP s.t. log rotation can be used by outside tools
This commit is contained in:
parent
d717248e75
commit
6e6f20da91
1 changed files with 18 additions and 4 deletions
|
@ -57,9 +57,13 @@
|
|||
#define SPEED_G_STR "GB/s"
|
||||
#define SPEED_T_STR "TB/s"
|
||||
|
||||
#define LOGFILE_MODE_STR "a+"
|
||||
|
||||
static bool paused = false;
|
||||
static bool closing = false;
|
||||
static bool seenHUP = false;
|
||||
static const char *logfileName = NULL;
|
||||
static FILE *logfile = NULL;
|
||||
static tr_session * mySession = NULL;
|
||||
|
||||
/***
|
||||
|
@ -150,7 +154,16 @@ gotsig( int sig )
|
|||
else
|
||||
{
|
||||
tr_benc settings;
|
||||
const char * configDir = tr_sessionGetConfigDir( mySession );
|
||||
const char * configDir;
|
||||
|
||||
/* reopen the logfile to allow for log rotation */
|
||||
if( logfileName ) {
|
||||
logfile = freopen( logfileName, LOGFILE_MODE_STR, logfile );
|
||||
if( !logfile )
|
||||
fprintf( stderr, "Couldn't reopen \"%s\": %s\n", logfileName, tr_strerror( errno ) );
|
||||
}
|
||||
|
||||
configDir = tr_sessionGetConfigDir( mySession );
|
||||
tr_inf( "Reloading settings from \"%s\"", configDir );
|
||||
tr_bencInitDict( &settings, 0 );
|
||||
tr_bencDictAddBool( &settings, TR_PREFS_KEY_RPC_ENABLED, true );
|
||||
|
@ -353,7 +366,6 @@ main( int argc, char ** argv )
|
|||
const char * configDir = NULL;
|
||||
const char * pid_filename;
|
||||
dtr_watchdir * watchdir = NULL;
|
||||
FILE * logfile = NULL;
|
||||
bool pidfile_created = false;
|
||||
tr_session * session = NULL;
|
||||
|
||||
|
@ -392,8 +404,10 @@ main( int argc, char ** argv )
|
|||
break;
|
||||
case 'd': dumpSettings = true;
|
||||
break;
|
||||
case 'e': logfile = fopen( optarg, "a+" );
|
||||
if( logfile == NULL )
|
||||
case 'e': logfile = fopen( optarg, LOGFILE_MODE_STR );
|
||||
if( logfile )
|
||||
logfileName = optarg;
|
||||
else
|
||||
fprintf( stderr, "Couldn't open \"%s\": %s\n", optarg, tr_strerror( errno ) );
|
||||
break;
|
||||
case 'f': foreground = true;
|
||||
|
|
Loading…
Reference in a new issue