summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Winship <danw@gnome.org>2012-12-09 13:23:25 +0100
committerDan Winship <danw@gnome.org>2013-01-12 09:45:12 -0500
commit38901ca5e684a8fac75e6ff740d45c82dd44181a (patch)
tree4c21c7f72901121181b293b1d926f94121704c72
parent00170d90c72d0cd2e6fea434e88c03f8e09f7631 (diff)
downloadlibsoup-38901ca5e684a8fac75e6ff740d45c82dd44181a.tar.gz
SoupURI: replace NULL password with "" on http
All supported HTTP auth methods use both username and password, so assume a password of "" if none is given
-rw-r--r--libsoup/soup-uri.c2
-rw-r--r--tests/uri-parsing.c12
2 files changed, 8 insertions, 6 deletions
diff --git a/libsoup/soup-uri.c b/libsoup/soup-uri.c
index 28b3025c..fdb43785 100644
--- a/libsoup/soup-uri.c
+++ b/libsoup/soup-uri.c
@@ -434,6 +434,8 @@ soup_uri_new_with_base (SoupURI *base, const char *uri_string)
uri->scheme == SOUP_URI_SCHEME_HTTPS) {
if (!uri->path)
uri->path = g_strdup ("/");
+ if (uri->user && !uri->password)
+ uri->password = g_strdup ("");
if (!SOUP_URI_VALID_FOR_HTTP (uri)) {
soup_uri_free (uri);
return NULL;
diff --git a/tests/uri-parsing.c b/tests/uri-parsing.c
index 892ee2b9..7992d70b 100644
--- a/tests/uri-parsing.c
+++ b/tests/uri-parsing.c
@@ -23,15 +23,15 @@ static struct {
{ "ftp://user:password@host", "ftp://user@host",
{ "ftp", "user", "password", "host", 21, "", NULL, NULL } },
{ "http://us%65r@host", "http://user@host/",
- { "http", "user", NULL, "host", 80, "/", NULL, NULL } },
+ { "http", "user", "", "host", 80, "/", NULL, NULL } },
{ "http://us%40r@host", "http://us%40r@host/",
- { "http", "us\x40r", NULL, "host", 80, "/", NULL, NULL } },
+ { "http", "us\x40r", "", "host", 80, "/", NULL, NULL } },
{ "http://us%3ar@host", "http://us%3Ar@host/",
- { "http", "us\x3ar", NULL, "host", 80, "/", NULL, NULL } },
+ { "http", "us\x3ar", "", "host", 80, "/", NULL, NULL } },
{ "http://us%2fr@host", "http://us%2Fr@host/",
- { "http", "us\x2fr", NULL, "host", 80, "/", NULL, NULL } },
+ { "http", "us\x2fr", "", "host", 80, "/", NULL, NULL } },
{ "http://us%3fr@host", "http://us%3Fr@host/",
- { "http", "us\x3fr", NULL, "host", 80, "/", NULL, NULL } },
+ { "http", "us\x3fr", "", "host", 80, "/", NULL, NULL } },
{ "http://host?query", "http://host/?query",
{ "http", NULL, NULL, "host", 80, "/", "query", NULL } },
{ "http://host/path?query=http%3A%2F%2Fhost%2Fpath%3Fchildparam%3Dchildvalue&param=value",
@@ -122,7 +122,7 @@ static struct {
{ "http", NULL, NULL, "", 80, "//////////////", NULL, NULL } },
{ "http://@host", "http://@host/",
- { "http", "", NULL, "host", 80, "/", NULL, NULL } },
+ { "http", "", "", "host", 80, "/", NULL, NULL } },
{ "http://:@host", "http://@host/",
{ "http", "", "", "host", 80, "/", NULL, NULL } },