static void proxy_settings_changed (EProxy *proxy, gpointer user_data) { SoupURI *proxy_uri = NULL; EBookBackendWebdavPrivate *priv = (EBookBackendWebdavPrivate *) user_data; if (!priv || !priv->uri || !priv->session) return; /* use proxy if necessary */ if (e_proxy_require_proxy_for_uri (proxy, priv->uri)) { proxy_uri = e_proxy_peek_uri_for (proxy, priv->uri); } g_object_set (priv->session, SOUP_SESSION_PROXY_URI, proxy_uri, NULL); }
//this will insert proxy in the session void proxify_session(EProxy *proxy, SoupSession *session, gchar *uri) { SoupURI *proxy_uri = NULL; #if EVOLUTION_VERSION < 30304 gint ptype = gconf_client_get_int ( rss_gconf, KEY_GCONF_EVO_PROXY_TYPE, NULL); #else GSettings *settings = g_settings_new(CONF_SCHEMA_EVO_NETWORK); gint ptype = g_settings_get_int ( settings, CONF_EVO_PROXY_TYPE); #endif switch (ptype) { #ifndef HAVE_LIBSOUP_GNOME case 0: #endif case 2: if (e_proxy_require_proxy_for_uri (proxy, uri)) { #if (DATASERVER_VERSION >=2026000) proxy_uri = e_proxy_peek_uri_for (proxy, uri); #else g_print("WARN: e_proxy_peek_uri_for() requires evolution-data-server 2.26\n"); return; #endif if (proxy_uri) { d("proxified %s with %s:%d\n", uri, proxy_uri->host, proxy_uri->port); } } else { d("no PROXY-%s\n", uri); } g_object_set ( G_OBJECT (session), SOUP_SESSION_PROXY_URI, proxy_uri, NULL); break; #ifdef HAVE_LIBSOUP_GNOME case 0: soup_session_add_feature_by_type ( session, SOUP_TYPE_PROXY_RESOLVER_DEFAULT); break; #endif } }