]> git.eshelyaron.com Git - emacs.git/commitdiff
password-cache.el (password-cache-remove): Remove entries even if the value is nil...
authorJulien Danjou <julien@danjou.info>
Tue, 20 Sep 2011 14:08:04 +0000 (14:08 +0000)
committerKatsumi Yamaoka <yamaoka@jpl.org>
Tue, 20 Sep 2011 14:08:04 +0000 (14:08 +0000)
auth-source.el (auth-source-format-cache-entry): New function.

lisp/ChangeLog
lisp/gnus/ChangeLog
lisp/gnus/auth-source.el
lisp/password-cache.el

index 2f4f70512500dfe49d617ff093daa1657b1f4449..a1289fb775045d3e90a3437c1b7fdc334a4d035e 100644 (file)
@@ -1,3 +1,9 @@
+2011-09-20  Julien Danjou  <julien@danjou.info>
+
+       * password-cache.el (password-cache-remove): Remove entries even if the
+       value is nil, so that password with a nil value (negative caching) is
+       possible to invalidate.
+
 2011-09-20  Lawrence Mitchell  <wence@gmx.li>
 
        * progmodes/f90.el (f90-break-line): If breaking inside comment delete
index 1d53425388de7e8aa70371082974e8ff68b52f0b..4838044b7ac5e86003da75f1befcabafd4f2db16 100644 (file)
@@ -1,3 +1,7 @@
+2011-09-20  Julien Danjou  <julien@danjou.info>
+
+       * auth-source.el (auth-source-format-cache-entry): New function.
+
 2011-09-20  Katsumi Yamaoka  <yamaoka@jpl.org>
 
        * gnus-fun.el (gnus-convert-image-to-x-face-command): Doc fix.
index 7a05edfabc23f732e71d53c83b68d3c12b520b22..dc9c23131f14df0095c649a61ba8e1a8c530eb77 100644 (file)
@@ -749,28 +749,31 @@ Returns the deleted entries."
         do (password-cache-remove (symbol-name sym)))
   (setq auth-source-netrc-cache nil))
 
+(defun auth-source-format-cache-entry (spec)
+  "Format SPEC entry to put it in the password cache."
+  (concat auth-source-magic (format "%S" spec)))
+
 (defun auth-source-remember (spec found)
   "Remember FOUND search results for SPEC."
   (let ((password-cache-expiry auth-source-cache-expiry))
     (password-cache-add
-     (concat auth-source-magic (format "%S" spec)) found)))
+     (auth-source-format-cache-entry spec) found)))
 
 (defun auth-source-recall (spec)
   "Recall FOUND search results for SPEC."
-  (password-read-from-cache
-   (concat auth-source-magic (format "%S" spec))))
+  (password-read-from-cache (auth-source-format-cache-entry spec)))
 
 (defun auth-source-remembered-p (spec)
   "Check if SPEC is remembered."
   (password-in-cache-p
-   (concat auth-source-magic (format "%S" spec))))
+   (auth-source-format-cache-entry spec)))
 
 (defun auth-source-forget (spec)
   "Forget any cached data matching SPEC exactly.
 
 This is the same SPEC you passed to `auth-source-search'.
 Returns t or nil for forgotten or not found."
-  (password-cache-remove (concat auth-source-magic (format "%S" spec))))
+  (password-cache-remove (auth-source-format-cache-entry spec)))
 
 ;;; (loop for sym being the symbols of password-data when (string-match (concat "^" auth-source-magic) (symbol-name sym)) collect (symbol-name sym))
 
index 941428d5291b7c07f5907e0ee194d2448032973d..c425e0aa7e8bc020ca38317eabf18bfcf1d43721 100644 (file)
@@ -116,13 +116,14 @@ but can be invoked at any time to forcefully remove passwords
 from the cache.  This may be useful when it has been detected
 that a password is invalid, so that `password-read' query the
 user again."
-  (let ((password (symbol-value (intern-soft key password-data))))
-    (when password
-      (when (stringp password)
-        (if (fboundp 'clear-string)
-            (clear-string password)
-          (fillarray password ?_)))
-      (unintern key password-data))))
+  (let ((sym (intern-soft key password-data)))
+    (when sym
+      (let ((password (symbol-value sym)))
+        (when (stringp password)
+          (if (fboundp 'clear-string)
+              (clear-string password)
+            (fillarray password ?_)))
+        (unintern key password-data)))))
 
 (defun password-cache-add (key password)
   "Add password to cache.