]> git.eshelyaron.com Git - emacs.git/commitdiff
Convert the remaining strings to unibyte before concatenating
authorDmitry Gutov <dgutov@yandex.ru>
Thu, 11 Aug 2016 18:06:49 +0000 (21:06 +0300)
committerDmitry Gutov <dgutov@yandex.ru>
Thu, 11 Aug 2016 18:06:49 +0000 (21:06 +0300)
* lisp/url/url-http.el (url-http--encode-string): New function.
(url-http-create-request): Use it to convert ASCII to unibyte.
(Bug#24117)

lisp/url/url-http.el

index 7156e6fa4ea38049b1f26044e6be77803989a17d..860e652936568241d9c327133f337a9550b829c3 100644 (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.