From: Lars Ingebrigtsen Date: Mon, 28 Dec 2015 23:11:06 +0000 (+0100) Subject: IDNA-related fixes for the URL library X-Git-Tag: emacs-26.0.90~2832 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=8b61c22ea1a53167dae2e39eb318ceeb326cdff5;p=emacs.git IDNA-related fixes for the URL library * lisp/url/url-http.el (url-http-create-request): IDNA-encode the Host: header. * lisp/url/url-util.el (url-encode-url): Don't hex-encode domain names, but leave them as UTF-8, so that they can be IDNA-encoded later when contacting the host. --- diff --git a/lisp/url/url-http.el b/lisp/url/url-http.el index 916f263e4fe..258f8025662 100644 --- a/lisp/url/url-http.el +++ b/lisp/url/url-http.el @@ -26,6 +26,7 @@ ;;; Code: (require 'cl-lib) +(require 'puny) (eval-when-compile (require 'subr-x)) @@ -318,8 +319,9 @@ request.") (url-scheme-get-property (url-type url-http-target-url) 'default-port)) (format - "Host: %s:%d\r\n" host (url-port url-http-target-url)) - (format "Host: %s\r\n" host)) + "Host: %s:%d\r\n" (puny-encode-domain host) + (url-port url-http-target-url)) + (format "Host: %s\r\n" (puny-encode-domain host))) ;; Who its from (if url-personal-mail-address (concat diff --git a/lisp/url/url-util.el b/lisp/url/url-util.el index e011b96ada2..54b02e98c97 100644 --- a/lisp/url/url-util.el +++ b/lisp/url/url-util.el @@ -468,7 +468,7 @@ should return it unchanged." (and host (not (string-match "\\`\\[.*\\]\\'" host)) (setf (url-host obj) - (url-hexify-string host url-host-allowed-chars))) + (decode-coding-string (url-host obj) 'utf-8))) (if path (setq path (url-hexify-string path url-path-allowed-chars)))