1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00

net.urllib: fix ipv6 address parsing [ipv6]:port closes #15309

This commit is contained in:
Joe Conigliaro 2022-08-13 00:50:38 +10:00
parent 657389446b
commit f557acf76b
No known key found for this signature in database
GPG Key ID: C12F7136C08206F1
2 changed files with 7 additions and 6 deletions

View File

@ -598,12 +598,11 @@ fn parse_host(host string) ?string {
host3 := unescape(host[i..], .encode_host) or { return err.msg() }
return host1 + host2 + host3
}
if idx := host.last_index(':') {
colon_port = host[idx..i]
if !valid_optional_port(colon_port) {
return error(error_msg('parse_host: invalid port $colon_port after host ',
''))
}
} else if i := host.last_index(':') {
colon_port := host[i..]
if !valid_optional_port(colon_port) {
return error(error_msg('parse_host: invalid port $colon_port after host ',
''))
}
}
h := unescape(host, .encode_host) or { return err.msg() }

View File

@ -111,6 +111,8 @@ fn test_parse() ? {
'telnet://192.0.2.16:80/',
'urn:oasis:names:specification:docbook:dtd:xml:4.1.2',
'foo://example.com:8042/over/there?name=ferret#nose',
'ftp://2001:0db8:85a3:0000:0000:8a2e:0370:7334/path/file.txt',
'ws://[2001:0db8:85a3:0000:0000:8a2e:0370:7334]:4000',
]
for url in urls {
_ := urllib.parse(url) or {