aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/google-account-setup/google-source.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/google-account-setup/google-source.c')
-rw-r--r--plugins/google-account-setup/google-source.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/plugins/google-account-setup/google-source.c b/plugins/google-account-setup/google-source.c
index 1dc76a0431..9452422902 100644
--- a/plugins/google-account-setup/google-source.c
+++ b/plugins/google-account-setup/google-source.c
@@ -40,6 +40,7 @@
#include <libedataserver/e-url.h>
#include <libedataserver/e-account-list.h>
+#include <libedataserver/e-proxy.h>
#include <libecal/e-cal.h>
#include <libedataserverui/e-cell-renderer-color.h>
#include <libedataserverui/e-passwords.h>
@@ -472,6 +473,24 @@ claim_error (GtkWindow *parent, const gchar *error)
}
static void
+update_proxy_settings (GDataService *service, const gchar *uri)
+{
+ EProxy *proxy;
+ SoupURI *proxy_uri = NULL;
+
+ proxy = e_proxy_new ();
+ e_proxy_setup_proxy (proxy);
+
+ /* use proxy if necessary */
+ if (e_proxy_require_proxy_for_uri (proxy, uri)) {
+ proxy_uri = e_proxy_peek_uri_for (proxy, uri);
+ }
+
+ gdata_service_set_proxy (service, proxy_uri);
+ g_object_unref (proxy);
+}
+
+static void
retrieve_list_clicked (GtkButton *button, GtkComboBox *combo)
{
ESource *source;
@@ -514,6 +533,7 @@ retrieve_list_clicked (GtkButton *button, GtkComboBox *combo)
ssl = e_source_get_property (source, "ssl");
get_subscribed_url = g_strconcat ((!ssl || g_str_equal (ssl, "1")) ? "https" : "http", URL_GET_SUBSCRIBED_CALENDARS, NULL);
+ update_proxy_settings (GDATA_SERVICE (service), get_subscribed_url);
feed = gdata_service_get_feed (GDATA_SERVICE (service), get_subscribed_url, &error);
g_free (get_subscribed_url);