url: Don't swallow punycode errors
This commit is contained in:
parent
8475e1527d
commit
87900b14da
18
lib/url.js
18
lib/url.js
@ -222,18 +222,14 @@ function urlParse(url, parseQueryString, slashesDenoteHost) {
|
||||
// It only converts the part of the domain name that
|
||||
// has non ASCII characters. I.e. it dosent matter if
|
||||
// you call it with a domain that already is in ASCII.
|
||||
try {
|
||||
var domainArray = out.hostname.split('.');
|
||||
var newOut = [];
|
||||
for (var i = 0; i < domainArray.length; ++i) {
|
||||
var s = domainArray[i];
|
||||
newOut.push(s.match(/[^A-Za-z0-9-]/) ?
|
||||
'xn--' + punycode.encode(s) : s);
|
||||
}
|
||||
out.hostname = newOut.join('.');
|
||||
} catch (e) {
|
||||
// if encode fail for some reason, we just do the classic behavior.
|
||||
var domainArray = out.hostname.split('.');
|
||||
var newOut = [];
|
||||
for (var i = 0; i < domainArray.length; ++i) {
|
||||
var s = domainArray[i];
|
||||
newOut.push(s.match(/[^A-Za-z0-9-]/) ?
|
||||
'xn--' + punycode.encode(s) : s);
|
||||
}
|
||||
out.hostname = newOut.join('.');
|
||||
|
||||
out.host = ((out.auth) ? out.auth + '@' : '') +
|
||||
(out.hostname || '') +
|
||||
|
Loading…
x
Reference in New Issue
Block a user