From 2ebc0a5cd92b753271316e0e00a5fddc51d0cbf0 Mon Sep 17 00:00:00 2001 From: Alan Fitton Date: Wed, 2 Jan 2013 20:17:13 +0000 Subject: issue 221 - configurable rpc url --- src/trg-client.c | 10 +++++++--- src/trg-preferences-dialog.c | 2 ++ src/trg-prefs.c | 1 + src/trg-prefs.h | 1 + 4 files changed, 11 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/trg-client.c b/src/trg-client.c index b2540fc..ad18921 100644 --- a/src/trg-client.c +++ b/src/trg-client.c @@ -222,7 +222,7 @@ int trg_client_populate_with_settings(TrgClient * tc) TrgPrefs *prefs = priv->prefs; gint port; - gchar *host; + gchar *host, *path; #ifdef HAVE_LIBPROXY pxProxyFactory *pf = NULL; #endif @@ -245,6 +245,8 @@ int trg_client_populate_with_settings(TrgClient * tc) host = trg_prefs_get_string(prefs, TRG_PREFS_KEY_HOSTNAME, TRG_PREFS_CONNECTION); + path = trg_prefs_get_string(prefs, TRG_PREFS_KEY_RPC_URL_PATH, TRG_PREFS_CONNECTION); + if (!host || strlen(host) < 1) { g_free(host); g_mutex_unlock(priv->configMutex); @@ -257,10 +259,12 @@ int trg_client_populate_with_settings(TrgClient * tc) priv->ssl = FALSE; #endif - priv->url = g_strdup_printf("%s://%s:%d/transmission/rpc", + + priv->url = g_strdup_printf("%s://%s:%d%s", priv->ssl ? HTTPS_URI_PREFIX : - HTTP_URI_PREFIX, host, port); + HTTP_URI_PREFIX, host, port, path); g_free(host); + g_free(path); priv->username = trg_prefs_get_string(prefs, TRG_PREFS_KEY_USERNAME, TRG_PREFS_CONNECTION); diff --git a/src/trg-preferences-dialog.c b/src/trg-preferences-dialog.c index e8cfb15..d0c8508 100644 --- a/src/trg-preferences-dialog.c +++ b/src/trg-preferences-dialog.c @@ -812,6 +812,8 @@ static GtkWidget *trg_prefs_serverPage(TrgPreferencesDialog * dlg) w = trgp_spin_new(dlg, TRG_PREFS_KEY_PORT, 1, 65535, 1, TRG_PREFS_PROFILE, NULL); hig_workarea_add_row(t, &row, _("Port:"), w, NULL); + w = trgp_entry_new(dlg, TRG_PREFS_KEY_RPC_URL_PATH, TRG_PREFS_PROFILE); + hig_workarea_add_row(t, &row, _("RPC URL Path:"), w, NULL); w = trgp_entry_new(dlg, TRG_PREFS_KEY_USERNAME, TRG_PREFS_PROFILE); hig_workarea_add_row(t, &row, _("Username:"), w, NULL); diff --git a/src/trg-prefs.c b/src/trg-prefs.c index a1a2c8f..9b573a6 100644 --- a/src/trg-prefs.c +++ b/src/trg-prefs.c @@ -91,6 +91,7 @@ static void trg_prefs_create_defaults(TrgPrefs * p) trg_prefs_add_default_string(p, TRG_PREFS_KEY_PROFILE_NAME, _(TRG_PROFILE_NAME_DEFAULT)); + trg_prefs_add_default_string(p, TRG_PREFS_KEY_RPC_URL_PATH, "/transmission/rpc"); trg_prefs_add_default_int(p, TRG_PREFS_KEY_PORT, 9091); trg_prefs_add_default_int(p, TRG_PREFS_KEY_UPDATE_INTERVAL, TRG_INTERVAL_DEFAULT); diff --git a/src/trg-prefs.h b/src/trg-prefs.h index 793ec04..1bf43c5 100644 --- a/src/trg-prefs.h +++ b/src/trg-prefs.h @@ -30,6 +30,7 @@ #define TRG_SESSION_INTERVAL_DEFAULT 60 #define TRG_PROFILE_NAME_DEFAULT "Default" +#define TRG_PREFS_KEY_RPC_URL_PATH "rpc-url-path" #define TRG_PREFS_KEY_PROFILE_ID "profile-id" #define TRG_PREFS_KEY_PROFILES "profiles" #define TRG_PREFS_KEY_PROFILE_NAME "profile-name" -- cgit v1.2.3