diff options
author | Emmanuele Bassi <ebassi@gmail.com> | 2023-02-02 09:22:47 +0000 |
---|---|---|
committer | Emmanuele Bassi <ebassi@gmail.com> | 2023-02-02 09:22:47 +0000 |
commit | edab0f85ea7c211cf12f72867c170f5b0358da91 (patch) | |
tree | b62ad900df8dbb893a08d526aaf132e1b61b4237 | |
parent | 9adc34e915699b3fd0b39ec3178c7fd0e7e1cae7 (diff) | |
parent | 1bcb0b6196a624e0f99dc50d169d314f57abb286 (diff) | |
download | gnome-online-accounts-edab0f85ea7c211cf12f72867c170f5b0358da91.tar.gz |
Merge branch '243-error-in-solving-nextcloud-account-address' into 'master'
Resolve "Error in solving Nextcloud account address"
Closes #243
See merge request GNOME/gnome-online-accounts!119
-rw-r--r-- | src/goabackend/goaoauth2provider.c | 2 | ||||
-rw-r--r-- | src/goabackend/goaowncloudprovider.c | 9 | ||||
-rw-r--r-- | src/goabackend/goawebview.c | 2 |
3 files changed, 8 insertions, 5 deletions
diff --git a/src/goabackend/goaoauth2provider.c b/src/goabackend/goaoauth2provider.c index 5b8d43d..d739dec 100644 --- a/src/goabackend/goaoauth2provider.c +++ b/src/goabackend/goaoauth2provider.c @@ -797,7 +797,7 @@ on_web_view_decide_policy (WebKitWebView *web_view, if (!g_str_has_prefix (requested_uri, redirect_uri)) goto default_behaviour; - uri = g_uri_parse (requested_uri, G_URI_FLAGS_ENCODED, NULL); + uri = g_uri_parse (requested_uri, G_URI_FLAGS_ENCODED | G_URI_FLAGS_PARSE_RELAXED, NULL); fragment = g_uri_get_fragment (uri); query = g_uri_get_query (uri); diff --git a/src/goabackend/goaowncloudprovider.c b/src/goabackend/goaowncloudprovider.c index 5441dfd..977eb4b 100644 --- a/src/goabackend/goaowncloudprovider.c +++ b/src/goabackend/goaowncloudprovider.c @@ -171,14 +171,16 @@ build_object (GoaProvider *provider, account = goa_object_get_account (GOA_OBJECT (object)); identity = goa_account_get_identity (account); uri_string = g_key_file_get_string (key_file, group, "Uri", NULL); - uri = g_uri_parse (uri_string, G_URI_FLAGS_ENCODED, NULL); + uri = g_uri_parse (uri_string, G_URI_FLAGS_ENCODED | G_URI_FLAGS_PARSE_RELAXED, NULL); if (uri != NULL) { GUri *tmp_uri; + gchar *encoded_identity; + encoded_identity = g_uri_escape_string (identity, NULL, FALSE); tmp_uri = g_uri_build_with_user (g_uri_get_flags (uri), g_uri_get_scheme (uri), - identity, + encoded_identity, g_uri_get_password (uri), g_uri_get_auth_params (uri), g_uri_get_host (uri), @@ -186,6 +188,7 @@ build_object (GoaProvider *provider, g_uri_get_path (uri), g_uri_get_query (uri), g_uri_get_fragment (uri)); + g_free (encoded_identity); g_uri_unref (uri); uri = tmp_uri; } @@ -397,7 +400,7 @@ normalize_uri (const gchar *address, gchar **server) else goto out; - uri = g_uri_parse (uri_string, G_URI_FLAGS_ENCODED, NULL); + uri = g_uri_parse (uri_string, G_URI_FLAGS_ENCODED | G_URI_FLAGS_PARSE_RELAXED, NULL); if (uri == NULL) goto out; diff --git a/src/goabackend/goawebview.c b/src/goabackend/goawebview.c index adc7366..e98be0b 100644 --- a/src/goabackend/goawebview.c +++ b/src/goabackend/goawebview.c @@ -82,7 +82,7 @@ web_view_create_loading_title (const gchar *url) g_return_val_if_fail (url != NULL && url[0] != '\0', NULL); - uri = g_uri_parse (url, G_URI_FLAGS_NONE, NULL); + uri = g_uri_parse (url, G_URI_FLAGS_PARSE_RELAXED, NULL); hostname = g_uri_get_host (uri); /* translators: %s here is the address of the web page */ title = g_strdup_printf (_("Loading ā%sāā¦"), hostname); |