From a3e9af23dc1e4da6400825f00a1ecf231285a295 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Thu, 2 Apr 2020 17:39:22 -0500 Subject: [PATCH] source-discoverer: add support for webcal:// URIs We can implement webcal:// by simply rewriting the URI to https://. Amazing! Fixes #564 --- src/utils/gcal-source-discoverer.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/utils/gcal-source-discoverer.c b/src/utils/gcal-source-discoverer.c index 6c61cdab..15512ce0 100644 --- a/src/utils/gcal-source-discoverer.c +++ b/src/utils/gcal-source-discoverer.c @@ -216,16 +216,24 @@ discover_file_in_thread (DiscovererData *data, g_autoptr (SoupMessage) message = NULL; g_autoptr (SoupSession) session = NULL; g_autoptr (GPtrArray) source = NULL; + g_autoptr (SoupURI) uri = NULL; + g_autofree gchar *uri_str = NULL; const gchar *content_type; GCAL_ENTRY; - GCAL_TRACE_MSG ("Creating request for %s", data->uri); + uri = soup_uri_new (data->uri); + + if (g_strcmp0 (soup_uri_get_scheme (uri), "webcal") == 0) + soup_uri_set_scheme (uri, SOUP_URI_SCHEME_HTTPS); + + uri_str = soup_uri_to_string (uri, FALSE); + GCAL_TRACE_MSG ("Creating request for %s", uri_str); session = soup_session_new_with_options (SOUP_SESSION_TIMEOUT, 10, NULL); g_signal_connect (session, "authenticate", G_CALLBACK (on_soup_session_authenticate_cb), data); - message = soup_message_new ("GET", data->uri); + message = soup_message_new_from_uri ("GET", uri); input_stream = soup_session_send (session, message, cancellable, error); if (!input_stream)