[evolution] Bug 795289 - Proxy settings ignored when checking for auth types
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution] Bug 795289 - Proxy settings ignored when checking for auth types
- Date: Mon, 16 Apr 2018 15:53:56 +0000 (UTC)
commit 2c10f6662935592fc80c998afd8c0309b9ededfd
Author: Milan Crha <mcrha redhat com>
Date: Mon Apr 16 17:54:50 2018 +0200
Bug 795289 - Proxy settings ignored when checking for auth types
src/mail/e-mail-config-auth-check.c | 37 +++++++++++++++++++++++++++++++++++
1 files changed, 37 insertions(+), 0 deletions(-)
---
diff --git a/src/mail/e-mail-config-auth-check.c b/src/mail/e-mail-config-auth-check.c
index 6046793..23548dc 100644
--- a/src/mail/e-mail-config-auth-check.c
+++ b/src/mail/e-mail-config-auth-check.c
@@ -120,6 +120,7 @@ static void
mail_config_auth_check_update (EMailConfigAuthCheck *auth_check)
{
EActivity *activity;
+ ESource *source;
EMailConfigServicePage *page;
EMailConfigServiceBackend *backend;
EMailConfigServicePageClass *page_class;
@@ -135,6 +136,7 @@ mail_config_auth_check_update (EMailConfigAuthCheck *auth_check)
backend = e_mail_config_auth_check_get_backend (auth_check);
page = e_mail_config_service_backend_get_page (backend);
settings = e_mail_config_service_backend_get_settings (backend);
+ source = e_mail_config_service_backend_get_source (backend);
page_class = E_MAIL_CONFIG_SERVICE_PAGE_GET_CLASS (page);
backend_class = E_MAIL_CONFIG_SERVICE_BACKEND_GET_CLASS (backend);
@@ -174,6 +176,41 @@ mail_config_auth_check_update (EMailConfigAuthCheck *auth_check)
camel_service_set_settings (service, settings);
+ /* Setup Proxy */
+ if (source) {
+ ESourceRegistry *registry;
+ ESource *authentication_source;
+
+ registry = e_mail_config_service_page_get_registry (e_mail_config_service_backend_get_page
(backend));
+ authentication_source = e_source_registry_find_extension (registry, source,
E_SOURCE_EXTENSION_AUTHENTICATION);
+
+ if (authentication_source) {
+ GProxyResolver *proxy_resolver = NULL;
+ ESourceAuthentication *extension;
+ ESource *proxy_source = NULL;
+ gchar *uid;
+
+ extension = e_source_get_extension (authentication_source,
E_SOURCE_EXTENSION_AUTHENTICATION);
+
+ uid = e_source_authentication_dup_proxy_uid (extension);
+ if (uid) {
+ proxy_source = e_source_registry_ref_source (registry, uid);
+ g_free (uid);
+ }
+
+ if (proxy_source) {
+ proxy_resolver = G_PROXY_RESOLVER (proxy_source);
+ if (!g_proxy_resolver_is_supported (proxy_resolver))
+ proxy_resolver = NULL;
+ }
+
+ camel_service_set_proxy_resolver (service, proxy_resolver);
+
+ g_clear_object (&authentication_source);
+ g_clear_object (&proxy_source);
+ }
+ }
+
activity = e_mail_config_activity_page_new_activity (
E_MAIL_CONFIG_ACTIVITY_PAGE (page));
cancellable = e_activity_get_cancellable (activity);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]