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);
}
Exemple #2
0
//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
	}

}