new-calendar-page: add support for webcal:// links

Turns out, all we have to do is rewrite the URL to https://. I'm
surprised this works, but I don't see any problems with it. I tested
subscribing to webcal://www.gnome.org/start/unstable/schedule.ics.

See also: #481
This commit is contained in:
Michael Catanzaro
2020-04-02 03:09:06 +00:00
parent 7a3db413e9
commit 8520e1819c
@@ -356,6 +356,16 @@ validate_url_cb (gpointer data)
if (uri != NULL && SOUP_URI_IS_VALID (uri))
{
/* "Support" webcal:// links by converting them to https://. This works
* because WebDAV is an extension of HTTP, so we can treat it as normal
* HTTP.
*
* Note we don't allow hidden use of http://, since we want to protect the
* user from accidentally leaking calendars in the clear. Only https://.
*/
if (strcmp (uri->scheme, "webcal") == 0)
soup_uri_set_scheme (uri, SOUP_URI_SCHEME_HTTPS);
discover_sources (self);
}
else