Merge branch 'uri-ipv6-bkt' into 'master'

uri: do not add ipv6 brackets on non-ip host

See merge request GNOME/glib!1599
This commit is contained in:
Sebastian Dröge 2020-08-04 12:44:12 +00:00
commit a97fe4e863
2 changed files with 8 additions and 1 deletions

View File

@ -1383,7 +1383,7 @@ g_uri_join_internal (GUriFlags flags,
g_string_append_c (str, '@');
}
if (strchr (host, ':'))
if (strchr (host, ':') && g_hostname_is_ip_address (host))
{
g_string_append_c (str, '[');
if (encoded)

View File

@ -669,6 +669,9 @@ static const UriAbsoluteTest absolute_tests[] = {
{ "http://:@host",
{ "http", ":", "host", -1, "", NULL, NULL }
},
{ "scheme://foo%3Abar._webdav._tcp.local",
{ "scheme", NULL, "foo:bar._webdav._tcp.local", -1, "", NULL, NULL}
},
/* IPv6 scope ID parsing (both correct and incorrect) */
{ "http://[fe80::dead:beef%em1]/",
@ -1410,6 +1413,10 @@ test_uri_join (void)
g_assert_cmpstr (uri, ==,
"scheme://user%01:pass%02;authparams%03@[::192.9.5.5]:9876/path?query#fragment");
g_free (uri);
uri = g_uri_join (G_URI_FLAGS_NONE, "scheme", NULL, "foo:bar._webdav._tcp.local", -1, "", NULL, NULL);
g_assert_cmpstr (uri, ==, "scheme://foo%3Abar._webdav._tcp.local");
g_free (uri);
}
int