Browse Source

url: Don't swallow punycode errors

v0.7.4-release
isaacs 14 years ago
parent
commit
87900b14da
  1. 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…
Cancel
Save