Esempio n. 1
0
static void
rss_resolve_callback (SoupAddress *addr, guint status, gpointer data)
{
	STNET *stnet = (STNET *)data;
	SoupURI *proxy_uri = NULL;
	if (status == SOUP_STATUS_OK) {
		if (rss_ep_need_proxy_http (proxy, stnet->host, stnet->addr)) {
#if (DATASERVER_VERSION >=2026000)
			proxy_uri = e_proxy_peek_uri_for (proxy, stnet->url);
#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", stnet->url, proxy_uri->host, proxy_uri->port);
			}
		}
	} else {
		d("no PROXY-%s\n", stnet->url);
	}
	g_object_set (
		G_OBJECT (stnet->ss),
		SOUP_SESSION_PROXY_URI,
		proxy_uri, NULL);
	stnet->callback(stnet->data);
}
Esempio n. 2
0
static void
rss_webkit_resolve_callback (SoupAddress *addr, guint status, gpointer data)
{
	WEBKITNET *wknet = (WEBKITNET *)data;
	SoupURI *proxy_uri = NULL;
	if (status == SOUP_STATUS_OK) {
		if (rss_ep_need_proxy_http (proxy, wknet->host, wknet->addr)) {
#if (DATASERVER_VERSION >=2026000)
			proxy_uri = e_proxy_peek_uri_for (proxy, wknet->base);
#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", wknet->base, proxy_uri->host, proxy_uri->port);
			}
		}
	} else {
		d("no PROXY-%s\n", wknet->base);
	}
	g_object_set (
		G_OBJECT (webkit_session),
		SOUP_SESSION_PROXY_URI,
		proxy_uri, NULL);
	wknet->cb(wknet->str, wknet->base, wknet->encoding);
}
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);
}
Esempio n. 4
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
	}

}
Esempio n. 5
0
//this will insert proxy in the session
//and queue the message to be sent
void
proxify_session_async(EProxy *proxy, STNET *stnet)
{
	SoupURI *proxy_uri = NULL, *su;
#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:
		su = soup_uri_new (stnet->url);
		stnet->host = su->host;
		if (su) {
			if (su->scheme == SOUP_URI_SCHEME_HTTPS) {
				if (rss_ep_need_proxy_https (proxy, su->host)) {
#if (DATASERVER_VERSION >=2026000)
					proxy_uri = e_proxy_peek_uri_for (proxy, stnet->url);
#else
					g_print("WARN: e_proxy_peek_uri_for() requires evolution-data-server 2.26\n");
					soup_uri_free(su);
					return;
#endif
					if (proxy_uri) {
						d("proxified %s with %s:%d\n", stnet->url, proxy_uri->host, proxy_uri->port);
					}
				} else {
					d("no PROXY-%s\n", stnet->url);
				}
				g_object_set (
					G_OBJECT (stnet->ss),
					SOUP_SESSION_PROXY_URI,
					proxy_uri, NULL);
				soup_uri_free(su);
				goto out;
			} else {
				stnet->addr = soup_address_new (su->host, 0);
				soup_uri_free(su);
				soup_address_resolve_async (stnet->addr, NULL, NULL,
					rss_resolve_callback, stnet);
				return;
			}
		}
		break;

#ifdef HAVE_LIBSOUP_GNOME
	case 0:
		soup_session_add_feature_by_type (
			stnet->ss, SOUP_TYPE_PROXY_RESOLVER_DEFAULT);
		break;
#endif
	}

out:	stnet->callback(stnet->data);
	//free stnet
}