mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2025-01-05 11:45:45 +00:00
Handle auth-source-search failures in open-network-stream
If the user cancels the gpg decryption pop-up, auth-source-search fails *and* epa pops up an error buffer. Fix epa to allow suppressing that, and ignore errors returned from auth-source-search. * lisp/epa.el (epa-suppress-error-buffer): New defvar. Bind non-nil to stop epa popping up an error buffer. * lisp/net/network-stream.el: require epa when byte-compiling. (network-stream-certificate): ignore errors when calling auth-source-search, and suppress the epa error buffer.
This commit is contained in:
parent
5a3e96b17c
commit
2d12d4d2d4
@ -179,6 +179,7 @@ You should bind this variable with `let', but do not set it globally.")
|
||||
(defvar epa-list-keys-arguments nil)
|
||||
(defvar epa-info-buffer nil)
|
||||
(defvar epa-error-buffer nil)
|
||||
(defvar epa-suppress-error-buffer nil)
|
||||
(defvar epa-last-coding-system-specified nil)
|
||||
|
||||
(defvar epa-key-list-mode-map
|
||||
@ -578,7 +579,8 @@ If SECRET is non-nil, list secret keys instead of public keys."
|
||||
(message "%s" info)))
|
||||
|
||||
(defun epa-display-error (context)
|
||||
(unless (equal (epg-context-error-output context) "")
|
||||
(unless (or (equal (epg-context-error-output context) "")
|
||||
epa-suppress-error-buffer)
|
||||
(let ((buffer (get-buffer-create "*Error*")))
|
||||
(save-selected-window
|
||||
(unless (and epa-error-buffer (buffer-live-p epa-error-buffer))
|
||||
|
@ -46,6 +46,9 @@
|
||||
(require 'nsm)
|
||||
(require 'puny)
|
||||
|
||||
(eval-when-compile
|
||||
(require 'epa)) ; for epa-suppress-error-buffer
|
||||
|
||||
(declare-function starttls-available-p "starttls" ())
|
||||
(declare-function starttls-negotiate "starttls" (process))
|
||||
(declare-function starttls-open-stream "starttls" (name buffer host port))
|
||||
@ -225,10 +228,12 @@ gnutls-boot (as returned by `gnutls-boot-parameters')."
|
||||
;; Either nil or a list with a key/certificate pair.
|
||||
spec)
|
||||
((eq spec t)
|
||||
(let* ((auth-info
|
||||
(car (auth-source-search :max 1
|
||||
:host host
|
||||
:port service)))
|
||||
(let* ((epa-suppress-error-buffer t)
|
||||
(auth-info
|
||||
(ignore-errors
|
||||
(car (auth-source-search :max 1
|
||||
:host host
|
||||
:port service))))
|
||||
(key (plist-get auth-info :key))
|
||||
(cert (plist-get auth-info :cert)))
|
||||
(and key cert (file-readable-p key) (file-readable-p cert)
|
||||
|
Loading…
Reference in New Issue
Block a user