diff options
| author | Lars Ingebrigtsen | 2015-12-29 00:09:10 +0100 |
|---|---|---|
| committer | Lars Ingebrigtsen | 2015-12-29 00:09:10 +0100 |
| commit | fc3965ed9b19bdd167a466a06181c88ad59a57de (patch) | |
| tree | f6802113b43466dc67c47df564e5c2c7a0af0714 | |
| parent | 341feb3a26a0277f535217f4919b23eb70e3680e (diff) | |
| download | emacs-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.el | 12 |
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 |