summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorLars Ingebrigtsen <larsi@gnus.org>2011-02-18 23:15:24 +0000
committerKatsumi Yamaoka <yamaoka@jpl.org>2011-02-18 23:15:24 +0000
commit0d873e93b77d39afd834e80c9f05c3aeeadacee8 (patch)
tree6e312ec1982dd7462b5fe3cd1d4207efc75352e3 /lisp
parentabd20d91abead79a6a40be445b5926515fbfd5a8 (diff)
downloademacs-0d873e93b77d39afd834e80c9f05c3aeeadacee8.tar.gz
auth-source.el (auth-source-search): If we don't find a match, don't bug out on non-bound variables.
(auth-source-search): Only ask a single backend to create the credentials.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/gnus/ChangeLog4
-rw-r--r--lisp/gnus/auth-source.el18
2 files changed, 14 insertions, 8 deletions
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index b40c6b7d60f..af25ecae6ba 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -2,6 +2,10 @@
* auth-source.el (auth-source-search): Don't try to create credentials
if the caller doesn't want that.
+ (auth-source-search): If we don't find a match, don't bug out on
+ non-bound variables.
+ (auth-source-search): Only ask a single backend to create the
+ credentials.
* nnimap.el (nnimap-log-command): Add a newline to the inhibited
logging.
diff --git a/lisp/gnus/auth-source.el b/lisp/gnus/auth-source.el
index 4fdf521b1a9..c2f57abb917 100644
--- a/lisp/gnus/auth-source.el
+++ b/lisp/gnus/auth-source.el
@@ -544,14 +544,16 @@ must call it to obtain the actual value."
;; create the entries.
(when (and create
(not matches))
- (let ((match (apply
- (slot-value backend 'search-function)
- :backend backend
- :create create
- :delete delete
- spec)))
- (when match
- (push (list backend match) matches))))
+ (dolist (backend filtered-backends)
+ (unless matches
+ (let ((match (apply
+ (slot-value backend 'search-function)
+ :backend backend
+ :create create
+ :delete delete
+ spec)))
+ (when match
+ (push (list backend match) matches))))))
(setq backend (caar matches)
found-here (cadar matches))