diff options
Diffstat (limited to 'lisp/gnus/auth-source.el')
-rw-r--r-- | lisp/gnus/auth-source.el | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/lisp/gnus/auth-source.el b/lisp/gnus/auth-source.el index d3261b137b2..6fe033fea79 100644 --- a/lisp/gnus/auth-source.el +++ b/lisp/gnus/auth-source.el @@ -713,7 +713,8 @@ Returns the deleted entries." when (string-match (concat "^" auth-source-magic) (symbol-name sym)) ;; remove that key - do (password-cache-remove (symbol-name sym)))) + do (password-cache-remove (symbol-name sym))) + (setq auth-source-netrc-cache nil)) (defun auth-source-remember (spec found) "Remember FOUND search results for SPEC." @@ -1144,6 +1145,9 @@ See `auth-source-search' for details on SPEC." ;; we know (because of an assertion in auth-source-search) that the ;; :create parameter is either t or a list (which includes nil) (create-extra (if (eq t create) nil create)) + (current-data (car (auth-source-search :max 1 + :host host + :port port))) (required (append base-required create-extra)) (file (oref backend source)) (add "") @@ -1178,7 +1182,9 @@ See `auth-source-search' for details on SPEC." (dolist (r required) (let* ((data (aget valist r)) ;; take the first element if the data is a list - (data (auth-source-netrc-element-or-first data)) + (data (or (auth-source-netrc-element-or-first data) + (plist-get current-data + (intern (format ":%s" r) obarray)))) ;; this is the default to be offered (given-default (aget auth-source-creation-defaults r)) ;; the default supplementals are simple: |