From 98f6ccdb886849fd7f3ecabd58faa033b336a820 Mon Sep 17 00:00:00 2001 From: Georges Basile Stavracas Neto Date: Fri, 3 Mar 2023 19:14:35 -0300 Subject: utils/source-discoverer: Set security method Set the security method of the discovered source into the newly created source. This should preserve the TLS security method in these sources. Closes https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/40 --- src/utils/gcal-source-discoverer.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'src') diff --git a/src/utils/gcal-source-discoverer.c b/src/utils/gcal-source-discoverer.c index 4f7b8f88..f983f24c 100644 --- a/src/utils/gcal-source-discoverer.c +++ b/src/utils/gcal-source-discoverer.c @@ -97,6 +97,13 @@ create_source_for_uri (DiscovererData *data) webdav = e_source_get_extension (source, E_SOURCE_EXTENSION_WEBDAV_BACKEND); e_source_webdav_set_uri (webdav, guri); + /* Security */ + if (g_strcmp0 (g_uri_get_scheme (guri), "https") == 0) + { + ESourceSecurity *security = e_source_get_extension (source, E_SOURCE_EXTENSION_SECURITY); + e_source_security_set_secure (security, TRUE); + } + return source; } @@ -154,6 +161,22 @@ create_discovered_source (ESource *source, e_source_backend_set_backend_name (E_SOURCE_BACKEND (ext), "webcal"); } + /* Security */ + if (e_source_has_extension (source, E_SOURCE_EXTENSION_SECURITY)) + { + ESourceSecurity *new_security, *parent_security; + const gchar *method; + + parent_security = e_source_get_extension (source, E_SOURCE_EXTENSION_SECURITY); + new_security = e_source_get_extension (new_source, E_SOURCE_EXTENSION_SECURITY); + + method = e_source_security_get_method (parent_security); + + GCAL_TRACE_MSG ("New source '%s' has security method \"%s\"", e_source_get_display_name (new_source), method); + + e_source_security_set_method (new_security, method); + } + /* build up the new source */ e_source_set_display_name (new_source, discovered_source->display_name); -- cgit v1.2.1