summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>2023-03-03 19:14:35 -0300
committerGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>2023-03-03 19:50:30 -0300
commit98f6ccdb886849fd7f3ecabd58faa033b336a820 (patch)
tree23a008e379c573f9a72a04dbc0b52319a6ce67ae /src
parent02c2119c39f13f587b871a4a40fb14d7a20ed371 (diff)
downloadgnome-calendar-98f6ccdb886849fd7f3ecabd58faa033b336a820.tar.gz
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
Diffstat (limited to 'src')
-rw-r--r--src/utils/gcal-source-discoverer.c23
1 files changed, 23 insertions, 0 deletions
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);