xmlParseURI doesn't fully comply with RFC 3986 regarding empty host
nbd_unlocked_aio_connect_uri (h=0x620680,
raw_uri=0x7fffffffd538 "nbd://:10888") at connect.c:234
(gdb)
242 uri = xmlParseURI (raw_uri);
(gdb) p *uri
$7 = {scheme = 0x61bf20 "nbd", opaque = 0x0, authority = 0x0, server = 0x0,
user = 0x0, port = -1, path = 0x0, query = 0x0, fragment = 0x0, cleanup = 0,
query_raw = 0x0}
This is wrong per my reading of RFC 3986; I argue that authority should be ":10888", server can be NULL or "", and port should be 10888. The RFC production states:
authority = [ userinfo "@" ] host [ ":" port ] host = IP-literal / IPv4address / reg-name reg-name = *( unreserved / pct-encoded / sub-delims )
If the URI scheme defines a default for host, then that default applies when the host subcomponent is undefined or when the registered name is empty (zero length). For example, the "file" URI scheme is defined so that no authority, an empty host, and "localhost" all mean the end-user's machine,