Skip to content

Commit

Permalink
Close nodejs#1360 url: Allow _ in hostnames.
Browse files Browse the repository at this point in the history
  • Loading branch information
isaacs committed Jul 19, 2011
1 parent 87d974b commit dcecfc5
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 3 deletions.
6 changes: 3 additions & 3 deletions lib/url.js
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,8 @@ var protocolPattern = /^([a-z0-9]+:)/i,
.concat(unwise).concat(autoEscape),
nonAuthChars = ['/', '@', '?', '#'].concat(delims),
hostnameMaxLen = 255,
hostnamePartPattern = /^[a-zA-Z0-9][a-z0-9A-Z-]{0,62}$/,
hostnamePartStart = /^([a-zA-Z0-9][a-z0-9A-Z-]{0,62})(.*)$/,
hostnamePartPattern = /^[a-zA-Z0-9][a-z0-9A-Z_-]{0,62}$/,
hostnamePartStart = /^([a-zA-Z0-9][a-z0-9A-Z_-]{0,62})(.*)$/,
// protocols that can allow "unsafe" and "unwise" chars.
unsafeProtocol = {
'javascript': true,
Expand Down Expand Up @@ -226,7 +226,7 @@ function urlParse(url, parseQueryString, slashesDenoteHost) {
var newOut = [];
for (var i = 0; i < domainArray.length; ++i) {
var s = domainArray[i];
newOut.push(s.match(/[^A-Za-z0-9-]/) ?
newOut.push(s.match(/[^A-Za-z0-9_-]/) ?
'xn--' + punycode.encode(s) : s);
}
out.hostname = newOut.join('.');
Expand Down
9 changes: 9 additions & 0 deletions test/simple/test-url.js
Original file line number Diff line number Diff line change
Expand Up @@ -327,8 +327,17 @@ var parseTests = {
'host': 'xn--hgi.ws',
'hostname': 'xn--hgi.ws',
'pathname': '/➡'
},
'http://bucket_name.s3.amazonaws.com/image.jpg': {
protocol: 'http:',
slashes: true,
host: 'bucket_name.s3.amazonaws.com',
hostname: 'bucket_name.s3.amazonaws.com',
pathname: '/image.jpg',
href: 'http://bucket_name.s3.amazonaws.com/image.jpg'
}
};

for (var u in parseTests) {
var actual = url.parse(u),
expected = parseTests[u];
Expand Down

0 comments on commit dcecfc5

Please sign in to comment.