(trunk libT) Clean up RPC server initialization (wereHamster)

This commit is contained in:
Charles Kerr 2009-01-13 16:35:06 +00:00
parent 8b72408948
commit db58b89f6e
3 changed files with 39 additions and 40 deletions

View File

@ -708,25 +708,43 @@ tr_rpcClose( tr_rpc_server ** ps )
tr_rpc_server * tr_rpc_server *
tr_rpcInit( tr_session * session, tr_rpcInit( tr_session * session,
tr_bool isEnabled, tr_benc * settings )
tr_port port,
tr_bool isWhitelistEnabled,
const char * whitelist,
tr_bool isPasswordEnabled,
const char * username,
const char * password )
{ {
tr_rpc_server * s; tr_rpc_server * s;
tr_bool found;
int64_t i;
const char *str;
s = tr_new0( tr_rpc_server, 1 ); s = tr_new0( tr_rpc_server, 1 );
s->session = session; s->session = session;
s->port = port;
s->username = tr_strdup( username ); found = tr_bencDictFindInt( settings, TR_PREFS_KEY_RPC_ENABLED, &i );
s->password = tr_strdup( password ); assert( found );
s->isWhitelistEnabled = isWhitelistEnabled; s->isEnabled = i != 0;
s->isPasswordEnabled = isPasswordEnabled;
s->isEnabled = isEnabled != 0; found = tr_bencDictFindInt( settings, TR_PREFS_KEY_RPC_PORT, &i );
tr_rpcSetWhitelist( s, whitelist ? whitelist : "127.0.0.1" ); assert( found );
s->port = i;
found = tr_bencDictFindInt( settings, TR_PREFS_KEY_RPC_WHITELIST_ENABLED, &i );
assert( found );
s->isWhitelistEnabled = i != 0;
found = tr_bencDictFindInt( settings, TR_PREFS_KEY_RPC_AUTH_REQUIRED, &i );
assert( found );
s->isPasswordEnabled = i != 0;
found = tr_bencDictFindStr( settings, TR_PREFS_KEY_RPC_WHITELIST, &str );
assert( found );
tr_rpcSetWhitelist( s, str ? str : "127.0.0.1" );
found = tr_bencDictFindStr( settings, TR_PREFS_KEY_RPC_USERNAME, &str );
assert( found );
s->username = tr_strdup( str );
found = tr_bencDictFindStr( settings, TR_PREFS_KEY_RPC_PASSWORD, &str );
assert( found );
s->password = tr_strdup( str );
#ifdef HAVE_ZLIB #ifdef HAVE_ZLIB
s->stream.zalloc = (alloc_func) Z_NULL; s->stream.zalloc = (alloc_func) Z_NULL;
@ -735,17 +753,15 @@ tr_rpcInit( tr_session * session,
deflateInit( &s->stream, Z_BEST_COMPRESSION ); deflateInit( &s->stream, Z_BEST_COMPRESSION );
#endif #endif
if( isEnabled ) if( s->isEnabled )
{
tr_ninf( MY_NAME, _( "Serving RPC and Web requests on port %d" ), (int) s->port );
tr_runInEventThread( session, startServer, s ); tr_runInEventThread( session, startServer, s );
if( isEnabled ) if( s->isWhitelistEnabled )
{
tr_ninf( MY_NAME, _( "Serving RPC and Web requests on port %d" ), (int)port );
if( isWhitelistEnabled )
tr_ninf( MY_NAME, _( "Whitelist enabled" ) ); tr_ninf( MY_NAME, _( "Whitelist enabled" ) );
if( isPasswordEnabled ) if( s->isPasswordEnabled )
tr_ninf( MY_NAME, _( "Password required" ) ); tr_ninf( MY_NAME, _( "Password required" ) );
} }

View File

@ -20,13 +20,7 @@
typedef struct tr_rpc_server tr_rpc_server; typedef struct tr_rpc_server tr_rpc_server;
tr_rpc_server * tr_rpcInit( tr_session * session, tr_rpc_server * tr_rpcInit( tr_session * session,
tr_bool isEnabled, tr_benc * settings );
tr_port port,
tr_bool isWhitelistEnabled,
const char * whitelist,
tr_bool isPasswordEnabled,
const char * username,
const char * password );
void tr_rpcClose( tr_rpc_server ** freeme ); void tr_rpcClose( tr_rpc_server ** freeme );

View File

@ -369,8 +369,6 @@ tr_sessionInit( const char * tag,
tr_benc settings; tr_benc settings;
tr_session * session; tr_session * session;
char * filename; char * filename;
int64_t rpc_enabled, whitelist_enabled, rpc_auth_enabled, rpc_port;
const char * whitelist = NULL, *rpc_passwd = NULL, *rpc_username = NULL;
assert( tr_bencIsDict( clientSettings ) ); assert( tr_bencIsDict( clientSettings ) );
@ -527,16 +525,7 @@ tr_sessionInit( const char * tag,
tr_statsInit( session ); tr_statsInit( session );
session->web = tr_webInit( session ); session->web = tr_webInit( session );
found = tr_bencDictFindInt( &settings, TR_PREFS_KEY_RPC_ENABLED, &rpc_enabled ) session->rpcServer = tr_rpcInit( session, &settings );
&& tr_bencDictFindInt( &settings, TR_PREFS_KEY_RPC_PORT, &rpc_port )
&& tr_bencDictFindInt( &settings, TR_PREFS_KEY_RPC_WHITELIST_ENABLED, &whitelist_enabled )
&& tr_bencDictFindInt( &settings, TR_PREFS_KEY_RPC_AUTH_REQUIRED, &rpc_auth_enabled )
&& tr_bencDictFindStr( &settings, TR_PREFS_KEY_RPC_WHITELIST, &whitelist )
&& tr_bencDictFindStr( &settings, TR_PREFS_KEY_RPC_USERNAME, &rpc_username )
&& tr_bencDictFindStr( &settings, TR_PREFS_KEY_RPC_PASSWORD, &rpc_passwd );
assert( found );
session->rpcServer = tr_rpcInit( session, rpc_enabled, rpc_port, whitelist_enabled, whitelist,
rpc_auth_enabled, rpc_username, rpc_passwd );
metainfoLookupRescan( session ); metainfoLookupRescan( session );