summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorJuan A. Suarez Romero <jasuarez@igalia.com>2013-08-09 10:30:52 +0200
committerJuan A. Suarez Romero <jasuarez@igalia.com>2013-08-09 10:32:08 +0200
commit36dbe5b0720417cb85c73a62e4a5c6bdcbe2303a (patch)
treec8b3746ba60abacd2db1ad6b279d3dac3b4faf4d /libs
parent25cebaea62ebbfdecc5966cd20ea06f27eeb24cb (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.c19
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;