aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars Ingebrigtsen2015-12-29 00:09:10 +0100
committerLars Ingebrigtsen2015-12-29 00:09:10 +0100
commitfc3965ed9b19bdd167a466a06181c88ad59a57de (patch)
treef6802113b43466dc67c47df564e5c2c7a0af0714
parent341feb3a26a0277f535217f4919b23eb70e3680e (diff)
downloademacs-fc3965ed9b19bdd167a466a06181c88ad59a57de.tar.gz
emacs-fc3965ed9b19bdd167a466a06181c88ad59a57de.zip
IDNA-encode all domain names in `open-network-stream'
* network-stream.el (open-network-stream) (network-stream-open-plain, network-stream-open-starttls): IDNA-encode all domain names, if needed.
-rw-r--r--lisp/net/network-stream.el12
1 files changed, 8 insertions, 4 deletions
diff --git a/lisp/net/network-stream.el b/lisp/net/network-stream.el
index 1eb5342009c..8e1ad637b29 100644
--- a/lisp/net/network-stream.el
+++ b/lisp/net/network-stream.el
@@ -46,6 +46,7 @@
46(require 'starttls) 46(require 'starttls)
47(require 'auth-source) 47(require 'auth-source)
48(require 'nsm) 48(require 'nsm)
49(require 'puny)
49 50
50(autoload 'gnutls-negotiate "gnutls") 51(autoload 'gnutls-negotiate "gnutls")
51(autoload 'open-gnutls-stream "gnutls") 52(autoload 'open-gnutls-stream "gnutls")
@@ -148,7 +149,7 @@ asynchronously, if possible."
148 (plist-get parameters :capability-command)))))) 149 (plist-get parameters :capability-command))))))
149 ;; The simplest case: wrapper around `make-network-process'. 150 ;; The simplest case: wrapper around `make-network-process'.
150 (make-network-process :name name :buffer buffer 151 (make-network-process :name name :buffer buffer
151 :host host :service service 152 :host (puny-encode-domain host) :service service
152 :nowait (plist-get parameters :nowait)) 153 :nowait (plist-get parameters :nowait))
153 (let ((work-buffer (or buffer 154 (let ((work-buffer (or buffer
154 (generate-new-buffer " *stream buffer*"))) 155 (generate-new-buffer " *stream buffer*")))
@@ -198,7 +199,8 @@ asynchronously, if possible."
198(defun network-stream-open-plain (name buffer host service parameters) 199(defun network-stream-open-plain (name buffer host service parameters)
199 (let ((start (with-current-buffer buffer (point))) 200 (let ((start (with-current-buffer buffer (point)))
200 (stream (make-network-process :name name :buffer buffer 201 (stream (make-network-process :name name :buffer buffer
201 :host host :service service 202 :host (puny-encode-domain host)
203 :service service
202 :nowait (plist-get parameters :nowait)))) 204 :nowait (plist-get parameters :nowait))))
203 (when (plist-get parameters :warn-unless-encrypted) 205 (when (plist-get parameters :warn-unless-encrypted)
204 (setq stream (nsm-verify-connection stream host service nil t))) 206 (setq stream (nsm-verify-connection stream host service nil t)))
@@ -219,7 +221,8 @@ asynchronously, if possible."
219 eoc)) 221 eoc))
220 ;; Return (STREAM GREETING CAPABILITIES RESULTING-TYPE) 222 ;; Return (STREAM GREETING CAPABILITIES RESULTING-TYPE)
221 (stream (make-network-process :name name :buffer buffer 223 (stream (make-network-process :name name :buffer buffer
222 :host host :service service)) 224 :host (puny-encode-domain host)
225 :service service))
223 (greeting (and (not (plist-get parameters :nogreeting)) 226 (greeting (and (not (plist-get parameters :nogreeting))
224 (network-stream-get-response stream start eoc))) 227 (network-stream-get-response stream start eoc)))
225 (capabilities (network-stream-command stream capability-command 228 (capabilities (network-stream-command stream capability-command
@@ -296,7 +299,8 @@ asynchronously, if possible."
296 (unless require-tls 299 (unless require-tls
297 (setq stream 300 (setq stream
298 (make-network-process :name name :buffer buffer 301 (make-network-process :name name :buffer buffer
299 :host host :service service)) 302 :host (puny-encode-domain host)
303 :service service))
300 (network-stream-get-response stream start eoc))) 304 (network-stream-get-response stream start eoc)))
301 ;; Re-get the capabilities, which may have now changed. 305 ;; Re-get the capabilities, which may have now changed.
302 (setq capabilities 306 (setq capabilities