Commit 61e9662e authored by Ted Zlatanov's avatar Ted Zlatanov Committed by Katsumi Yamaoka

Merge changes made in Gnus trunk.

auth-source.el (auth-source-search): Cache empty result sets.
password-cache.el (password-in-cache-p): Convenience function to check if a key is in the cache, even if the value is nil.
parent 4ad89555
2011-02-25 Teodor Zlatanov <tzz@lifelogs.com>
* password-cache.el (password-in-cache-p): Convenience function to
check if a key is in the cache, even if the value is nil.
2011-02-25 Jambunathan K <kjambunathan@gmail.com> 2011-02-25 Jambunathan K <kjambunathan@gmail.com>
* emacs-lisp/package-x.el (package--archive-contents-from-url) * emacs-lisp/package-x.el (package--archive-contents-from-url)
......
2011-02-25 Teodor Zlatanov <tzz@lifelogs.com> 2011-02-25 Teodor Zlatanov <tzz@lifelogs.com>
* auth-source.el (auth-source-search): Cache empty result sets.
* auth-source.el (auth-source-save-behavior): New variable to replace * auth-source.el (auth-source-save-behavior): New variable to replace
`auth-source-never-create'. `auth-source-never-create'.
(auth-source-netrc-create): Use it. (auth-source-netrc-create): Use it.
......
...@@ -524,10 +524,13 @@ must call it to obtain the actual value." ...@@ -524,10 +524,13 @@ must call it to obtain the actual value."
(keys (loop for i below (length spec) by 2 (keys (loop for i below (length spec) by 2
unless (memq (nth i spec) ignored-keys) unless (memq (nth i spec) ignored-keys)
collect (nth i spec))) collect (nth i spec)))
(cached (auth-source-remembered-p spec))
;; note that we may have cached results but found is still nil
;; (there were no results from the search)
(found (auth-source-recall spec)) (found (auth-source-recall spec))
filtered-backends accessor-key backend) filtered-backends accessor-key backend)
(if (and found auth-source-do-cache) (if (and cached auth-source-do-cache)
(auth-source-do-debug (auth-source-do-debug
"auth-source-search: found %d CACHED results matching %S" "auth-source-search: found %d CACHED results matching %S"
(length found) spec) (length found) spec)
...@@ -580,7 +583,8 @@ must call it to obtain the actual value." ...@@ -580,7 +583,8 @@ must call it to obtain the actual value."
"auth-source-search: CREATED %d results (max %d) matching %S" "auth-source-search: CREATED %d results (max %d) matching %S"
(length found) max spec)) (length found) max spec))
(when (and found auth-source-do-cache) ;; note we remember the lack of result too, if it's applicable
(when auth-source-do-cache
(auth-source-remember spec found))) (auth-source-remember spec found)))
found)) found))
...@@ -654,6 +658,11 @@ Returns the deleted entries." ...@@ -654,6 +658,11 @@ Returns the deleted entries."
(password-read-from-cache (password-read-from-cache
(concat auth-source-magic (format "%S" spec)))) (concat auth-source-magic (format "%S" spec))))
(defun auth-source-remembered-p (spec)
"Check if SPEC is remembered."
(password-in-cache-p
(concat auth-source-magic (format "%S" spec))))
(defun auth-source-forget (spec) (defun auth-source-forget (spec)
"Forget any cached data matching SPEC exactly. "Forget any cached data matching SPEC exactly.
...@@ -664,7 +673,10 @@ Returns t or nil for forgotten or not found." ...@@ -664,7 +673,10 @@ Returns t or nil for forgotten or not found."
;;; (loop for sym being the symbols of password-data when (string-match (concat "^" auth-source-magic) (symbol-name sym)) collect (symbol-name sym)) ;;; (loop for sym being the symbols of password-data when (string-match (concat "^" auth-source-magic) (symbol-name sym)) collect (symbol-name sym))
;;; (auth-source-remember '(:host "wedd") '(4 5 6)) ;;; (auth-source-remember '(:host "wedd") '(4 5 6))
;;; (auth-source-remembered-p '(:host "wedd"))
;;; (auth-source-remember '(:host "xedd") '(1 2 3)) ;;; (auth-source-remember '(:host "xedd") '(1 2 3))
;;; (auth-source-remembered-p '(:host "xedd"))
;;; (auth-source-remembered-p '(:host "zedd"))
;;; (auth-source-recall '(:host "xedd")) ;;; (auth-source-recall '(:host "xedd"))
;;; (auth-source-recall '(:host t)) ;;; (auth-source-recall '(:host t))
;;; (auth-source-forget+ :host t) ;;; (auth-source-forget+ :host t)
......
...@@ -76,6 +76,12 @@ regulate cache behavior." ...@@ -76,6 +76,12 @@ regulate cache behavior."
key key
(symbol-value (intern-soft key password-data)))) (symbol-value (intern-soft key password-data))))
(defun password-in-cache-p (key)
"Check if KEY is in the cache."
(and password-cache
key
(intern-soft key password-data)))
(defun password-read (prompt &optional key) (defun password-read (prompt &optional key)
"Read password, for use with KEY, from user, or from cache if wanted. "Read password, for use with KEY, from user, or from cache if wanted.
KEY indicate the purpose of the password, so the cache can KEY indicate the purpose of the password, so the cache can
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment