From 5decc9ffb14155bc71fcb7c9afae5d7a92c6af4a Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Tue, 12 Jan 2010 16:43:37 +0000 Subject: [PATCH] (trunk) add a log message telling the user which configDir is being used and whether or not its settings.json was used --- daemon/daemon.c | 9 ++++++++- libtransmission/session.c | 5 ++++- libtransmission/transmission.h | 7 ++++--- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/daemon/daemon.c b/daemon/daemon.c index 5dea911f5..25e9a5bfe 100644 --- a/daemon/daemon.c +++ b/daemon/daemon.c @@ -278,6 +278,7 @@ main( int argc, char ** argv ) const char * optarg; tr_benc settings; tr_bool boolVal; + tr_bool loaded; tr_bool foreground = FALSE; tr_bool dumpSettings = FALSE; const char * configDir = NULL; @@ -292,7 +293,7 @@ main( int argc, char ** argv ) /* load settings from defaults + config file */ tr_bencInitDict( &settings, 0 ); configDir = getConfigDir( argc, (const char**)argv ); - tr_sessionLoadSettings( &settings, configDir, MY_NAME ); + loaded = tr_sessionLoadSettings( &settings, configDir, MY_NAME ); tr_bencDictAddBool( &settings, TR_PREFS_KEY_RPC_ENABLED, TRUE ); /* overwrite settings from the comamndline */ @@ -380,6 +381,12 @@ main( int argc, char ** argv ) /* start the session */ mySession = tr_sessionInit( "daemon", configDir, TRUE, &settings ); + + if( loaded ) + tr_ninf( NULL, "Using settings from \"%s\"", configDir ); + else + tr_nerr( NULL, "Couldn't find settings in \"%s\"; using defaults", configDir ); + tr_sessionSaveSettings( mySession, configDir, &settings ); if( tr_bencDictFindBool( &settings, TR_PREFS_KEY_RPC_AUTH_REQUIRED, &boolVal ) && boolVal ) diff --git a/libtransmission/session.c b/libtransmission/session.c index 9f62b530e..6ce9446d7 100644 --- a/libtransmission/session.c +++ b/libtransmission/session.c @@ -392,13 +392,14 @@ tr_sessionGetSettings( tr_session * s, struct tr_benc * d ) tr_bencDictAddStr ( d, TR_PREFS_KEY_BIND_ADDRESS_IPV6, tr_ntop_non_ts( &s->public_ipv6->addr ) ); } -void +tr_bool tr_sessionLoadSettings( tr_benc * d, const char * configDir, const char * appName ) { char * filename; tr_benc fileSettings; tr_benc sessionDefaults; tr_benc tmp; + tr_bool success = FALSE; assert( tr_bencIsDict( d ) ); @@ -418,11 +419,13 @@ tr_sessionLoadSettings( tr_benc * d, const char * configDir, const char * appNam if( !tr_bencLoadFile( &fileSettings, TR_FMT_JSON, filename ) ) { tr_bencMergeDicts( d, &fileSettings ); tr_bencFree( &fileSettings ); + success = TRUE; } /* cleanup */ tr_bencFree( &sessionDefaults ); tr_free( filename ); + return success; } void diff --git a/libtransmission/transmission.h b/libtransmission/transmission.h index 0564a72ae..72bf66fd1 100644 --- a/libtransmission/transmission.h +++ b/libtransmission/transmission.h @@ -249,13 +249,14 @@ void tr_sessionGetSettings( tr_session *, struct tr_benc * dictionary ); * @param dictionary pointer to an uninitialized tr_benc * @param configDir the configuration directory to find settings.json * @param appName if configDir is empty, appName is used to find the default dir. + * @return success TRUE if the settings were loaded, FALSE otherwise * @see tr_sessionGetDefaultSettings() * @see tr_sessionInit() * @see tr_sessionSaveSettings() */ -void tr_sessionLoadSettings( struct tr_benc * dictionary, - const char * configDir, - const char * appName ); +tr_bool tr_sessionLoadSettings( struct tr_benc * dictionary, + const char * configDir, + const char * appName ); /** * Add the session's configuration settings to the benc dictionary