diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2011-09-26 08:42:38 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2011-09-26 21:45:55 +0800 |
commit | 9773f0a3b8ed4a058d4cd28d0bc4060dbe43da19 (patch) | |
tree | a7c2a01bbf11bce97cde8d5fdc0ecf518f67e4b2 /mail/em-utils.c | |
parent | e384255d8f999bd77fb7ccee5e57c30b54ea5a56 (diff) | |
download | gsoc2013-evolution-9773f0a3b8ed4a058d4cd28d0bc4060dbe43da19.tar gsoc2013-evolution-9773f0a3b8ed4a058d4cd28d0bc4060dbe43da19.tar.gz gsoc2013-evolution-9773f0a3b8ed4a058d4cd28d0bc4060dbe43da19.tar.bz2 gsoc2013-evolution-9773f0a3b8ed4a058d4cd28d0bc4060dbe43da19.tar.lz gsoc2013-evolution-9773f0a3b8ed4a058d4cd28d0bc4060dbe43da19.tar.xz gsoc2013-evolution-9773f0a3b8ed4a058d4cd28d0bc4060dbe43da19.tar.zst gsoc2013-evolution-9773f0a3b8ed4a058d4cd28d0bc4060dbe43da19.zip |
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().
Diffstat (limited to 'mail/em-utils.c')
-rw-r--r-- | mail/em-utils.c | 81 |
1 files changed, 3 insertions, 78 deletions
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; } /** |