diff options
author | Juan A. Suarez Romero <jasuarez@igalia.com> | 2013-08-09 10:30:52 +0200 |
---|---|---|
committer | Juan A. Suarez Romero <jasuarez@igalia.com> | 2013-08-09 10:32:08 +0200 |
commit | 36dbe5b0720417cb85c73a62e4a5c6bdcbe2303a (patch) | |
tree | c8b3746ba60abacd2db1ad6b279d3dac3b4faf4d /libs | |
parent | 25cebaea62ebbfdecc5966cd20ea06f27eeb24cb (diff) |
net: Handle invalid URLs
For non valid URLs, return an error in the async result.
Diffstat (limited to 'libs')
-rw-r--r-- | libs/net/grl-net-wc.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/libs/net/grl-net-wc.c b/libs/net/grl-net-wc.c index 0490bf8..08db71e 100644 --- a/libs/net/grl-net-wc.c +++ b/libs/net/grl-net-wc.c @@ -695,12 +695,27 @@ get_url_now (GrlNetWc *self, #ifdef LIBSOUP_REQUESTER_DEPRECATED SoupURI *uri = soup_uri_new (url); - rr->request = soup_session_request_uri (priv->session, uri, NULL); - soup_uri_free (uri); + if (uri) { + rr->request = soup_session_request_uri (priv->session, uri, NULL); + soup_uri_free (uri); + } else { + rr->request = NULL; + } #else rr->request = soup_requester_request (priv->requester, url, NULL); #endif + if (!rr->request) { + g_simple_async_result_set_error (G_SIMPLE_ASYNC_RESULT (result), + GRL_NET_WC_ERROR, + GRL_NET_WC_ERROR_UNAVAILABLE, + _("Invalid URL %s"), + url); + g_simple_async_result_complete (G_SIMPLE_ASYNC_RESULT (result)); + g_object_unref (result); + return; + } + if (headers != NULL) { SoupMessage *message; GHashTableIter iter; |