From 9773f0a3b8ed4a058d4cd28d0bc4060dbe43da19 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Sun, 25 Sep 2011 20:42:38 -0400 Subject: EMFormatHTML: Configure CamelHttpStreams with proxy authpass. Base64-encode the "USER:PASS" authentication string ourselves and hand it to camel_http_stream_set_proxy_authpass(). This is so I can kill camel_http_stream_set_proxy(). --- mail/em-utils.c | 81 +++------------------------------------------------------ 1 file changed, 3 insertions(+), 78 deletions(-) (limited to 'mail/em-utils.c') diff --git a/mail/em-utils.c b/mail/em-utils.c index 5ff93887a2..4a74a80fc2 100644 --- a/mail/em-utils.c +++ b/mail/em-utils.c @@ -1194,69 +1194,6 @@ em_utils_folder_is_outbox (CamelFolder *folder) static EProxy *emu_proxy = NULL; static GStaticMutex emu_proxy_lock = G_STATIC_MUTEX_INIT; -/* encode to string this way, because soup_uri_to_string doesn't include passwords */ -static gchar * -suri_to_string (SoupURI *suri) -{ - GString *uri; - gchar *tmp; - - if (!suri) - return NULL; - - uri = g_string_sized_new (20); - - if (suri->scheme) - g_string_append_printf (uri, "%s:", suri->scheme); - if (suri->host) { - g_string_append (uri, "//"); - if (suri->user) { - tmp = soup_uri_encode (suri->user, ":/;#@?\\"); - g_string_append (uri, tmp); - g_free (tmp); - } - - if (suri->password) { - g_string_append_c (uri, ':'); - tmp = soup_uri_encode (suri->password, ":/;#@?\\"); - g_string_append (uri, tmp); - g_free (tmp); - } - - if (suri->user || suri->password) - g_string_append_c (uri, '@'); - - if (strchr (suri->host, ':')) { - g_string_append_c (uri, '['); - g_string_append (uri, suri->host); - g_string_append_c (uri, ']'); - } else { - tmp = soup_uri_encode (suri->host, ":/"); - g_string_append (uri, tmp); - g_free (tmp); - } - - if (suri->port && !soup_uri_uses_default_port (suri)) - g_string_append_printf (uri, ":%d", suri->port); - if (!suri->path && (suri->query || suri->fragment)) - g_string_append_c (uri, '/'); - } - - if (suri->path && *suri->path) - g_string_append (uri, suri->path); - - if (suri->query) { - g_string_append_c (uri, '?'); - g_string_append (uri, suri->query); - } - if (suri->fragment) { - g_string_append_c (uri, '#'); - g_string_append (uri, suri->fragment); - } - - return g_string_free (uri, FALSE); -} - static gpointer emu_proxy_setup (gpointer data) { @@ -1269,30 +1206,18 @@ emu_proxy_setup (gpointer data) return NULL; } -/** - * em_utils_get_proxy_uri: - * - * Get the system proxy uri for 'pUri'. - * - * Return value: Must be freed when finished with. - **/ -gchar * -em_utils_get_proxy_uri (const gchar *pUri) +EProxy * +em_utils_get_proxy (void) { - gchar *uri = NULL; - g_static_mutex_lock (&emu_proxy_lock); if (!emu_proxy) { mail_call_main (MAIL_CALL_p_p, (MailMainFunc) emu_proxy_setup, NULL); } - if (e_proxy_require_proxy_for_uri (emu_proxy, pUri)) - uri = suri_to_string (e_proxy_peek_uri_for (emu_proxy, pUri)); - g_static_mutex_unlock (&emu_proxy_lock); - return uri; + return emu_proxy; } /** -- cgit v1.2.3