Convert the remaining strings to unibyte before concatenating

* lisp/url/url-http.el (url-http--encode-string): New function.
(url-http-create-request): Use it to convert ASCII to unibyte.
(Bug#24117)
This commit is contained in:
Dmitry Gutov 2016-08-11 21:06:49 +03:00
parent d2db5dd835
commit 75f1882479

View file

@ -235,7 +235,7 @@ request.")
'url-http-proxy-basic-auth-storage))
(url-get-authentication url-http-proxy nil 'any nil))))
(real-fname (url-filename url-http-target-url))
(host (url-host url-http-target-url))
(host (url-http--encode-string (url-host url-http-target-url)))
(auth (if (cdr-safe (assoc "Authorization" url-http-extra-headers))
nil
(url-get-authentication (or
@ -278,7 +278,8 @@ request.")
(concat
;; The request
(or url-http-method "GET") " "
(if using-proxy (url-recreate-url url-http-target-url) real-fname)
(url-http--encode-string
(if using-proxy (url-recreate-url url-http-target-url) real-fname))
" HTTP/" url-http-version "\r\n"
;; Version of MIME we speak
"MIME-Version: 1.0\r\n"
@ -360,6 +361,11 @@ request.")
(url-http-debug "Request is: \n%s" request)
request))
(defun url-http--encode-string (s)
(if (multibyte-string-p s)
(encode-coding-string s 'us-ascii)
s))
;; Parsing routines
(defun url-http-clean-headers ()
"Remove trailing \r from header lines.