url: revert fix url.parse() for @hostname
This reverts commit 010cb714161102de50643feb1b7aa456dba11476. Refs: https://github.com/nodejs/node/issues/42279 PR-URL: https://github.com/nodejs/node/pull/42280 Fixes: https://github.com/nodejs/node/issues/42279 Reviewed-By: Stewart X Addison <sxa@redhat.com> Reviewed-By: Richard Lau <rlau@redhat.com> Reviewed-By: Darshan Sen <raisinten@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>
This commit is contained in:
parent
72e83fcea6
commit
f91950c43e
23
lib/url.js
23
lib/url.js
@ -289,29 +289,22 @@ Url.prototype.parse = function parse(url, parseQueryString, slashesDenoteHost) {
|
||||
rest = rest.slice(proto.length);
|
||||
}
|
||||
|
||||
// Figure out if it's got a host.
|
||||
// user@server is *always* interpreted as a hostname, and URL
|
||||
// Figure out if it's got a host
|
||||
// user@server is *always* interpreted as a hostname, and url
|
||||
// resolution will treat //foo/bar as host=foo,path=bar because that's
|
||||
// how the browser resolves relative URLs. http:@example.com is treated
|
||||
// the same as http://example.com.
|
||||
// how the browser resolves relative URLs.
|
||||
let slashes;
|
||||
let at;
|
||||
if (slashesDenoteHost || proto || hostPattern.test(rest)) {
|
||||
slashes = rest.charCodeAt(0) === CHAR_FORWARD_SLASH &&
|
||||
rest.charCodeAt(1) === CHAR_FORWARD_SLASH;
|
||||
at = rest.charCodeAt(0) === CHAR_AT;
|
||||
if (!(proto && hostlessProtocol.has(lowerProto))) {
|
||||
if (slashes) {
|
||||
rest = rest.slice(2);
|
||||
this.slashes = true;
|
||||
} else if (at) {
|
||||
rest = rest.slice(1);
|
||||
}
|
||||
rest.charCodeAt(1) === CHAR_FORWARD_SLASH;
|
||||
if (slashes && !(proto && hostlessProtocol.has(lowerProto))) {
|
||||
rest = rest.slice(2);
|
||||
this.slashes = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!hostlessProtocol.has(lowerProto) &&
|
||||
(slashes || at || (proto && !slashedProtocol.has(proto)))) {
|
||||
(slashes || (proto && !slashedProtocol.has(proto)))) {
|
||||
|
||||
// there's a hostname.
|
||||
// the first instance of /, ?, ;, or # ends the host.
|
||||
|
@ -975,22 +975,7 @@ const parseTests = {
|
||||
query: null,
|
||||
pathname: '/everybody',
|
||||
path: '/everybody',
|
||||
href: '//fhqwhgads@example.com/everybody#to-the-limit',
|
||||
},
|
||||
|
||||
'http:@localhost': {
|
||||
protocol: 'http:',
|
||||
slashes: null,
|
||||
auth: null,
|
||||
host: 'localhost',
|
||||
port: null,
|
||||
hostname: 'localhost',
|
||||
hash: null,
|
||||
search: null,
|
||||
query: null,
|
||||
pathname: '/',
|
||||
path: '/',
|
||||
href: 'http://localhost/',
|
||||
href: '//fhqwhgads@example.com/everybody#to-the-limit'
|
||||
},
|
||||
|
||||
'\bhttp://example.com/\b': {
|
||||
|
Loading…
x
Reference in New Issue
Block a user