aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorMichael Albinus <albinus@detlef>2010-03-16 17:45:07 +0100
committerMichael Albinus <albinus@detlef>2010-03-16 17:45:07 +0100
commitae84eb977523ab4effaeb629bb1bbca783dd57ec (patch)
treedf2b98fb61f0a0d9836fd031b107df6400daefb5 /lisp
parent7c75524e72f5cc43f6dcb9a46b08108c3c6f4f71 (diff)
* net/secrets.el (secrets-enabled): New variable. Use it instead
of a subfeature.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/net/secrets.el72
2 files changed, 41 insertions, 36 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 54e427eeda..0deba1945d 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
+2010-03-16 Michael Albinus <[email protected]>
+
+ * net/secrets.el (secrets-enabled): New variable. Use it instead
+ of a subfeature.
+
2010-03-15 Michael Albinus <[email protected]>
* net/secrets.el (top): Register the D-Bus signals only when the
diff --git a/lisp/net/secrets.el b/lisp/net/secrets.el
index 07062810b8..5fa10e284a 100644
--- a/lisp/net/secrets.el
+++ b/lisp/net/secrets.el
@@ -34,11 +34,9 @@
;; into your .emacs:
;;
;; (require 'secrets)
-
-;; It can be checked afterwards, whether there is a daemon providing
-;; this interface:
;;
-;; (featurep 'secrets 'enabled)
+;; Afterwards, the variable `secrets-enabled' is non-nil when there is
+;; a daemon providing this interface.
;; The atomic objects to be managed by the Secret Service API are
;; secret items, which are something an application wishes to store
@@ -150,6 +148,9 @@
(require 'dbus)
+(defvar secrets-enabled nil
+ "Whether there is a daemon offering the Secret Service API."
+
(defvar secrets-debug t
"Write debug messages")
@@ -664,38 +665,37 @@ If there is no such item, or the item doesn't own this attribute, return nil."
:session secrets-service item-path
secrets-interface-item "Delete")))))
-(if (dbus-ping :session secrets-service 100)
-
- (progn
- ;; We must reset all variables, when there is a new instance of
- ;; the "org.freedesktop.secrets" service.
- (dbus-register-signal
- :session dbus-service-dbus dbus-path-dbus
- dbus-interface-dbus "NameOwnerChanged"
- (lambda (&rest args)
- (when secrets-debug (message "Secret Service has changed: %S" args))
- (setq secrets-session-path secrets-empty-path
- secrets-prompt-signal nil
- secrets-collection-paths nil))
- secrets-service)
-
- ;; We want to refresh our cache, when there is a change in
- ;; collections.
- (dbus-register-signal
- :session secrets-service secrets-path
- secrets-interface-service "CollectionCreated"
- 'secrets-collection-handler)
-
- (dbus-register-signal
- :session secrets-service secrets-path
- secrets-interface-service "CollectionDeleted"
- 'secrets-collection-handler)
-
- ;; We shall inform, whether the secret service is enabled on
- ;; this machine.
- (provide 'secrets '(enabled)))
-
- (provide 'secrets))
+(when (dbus-ping :session secrets-service 100)
+
+ ;; We must reset all variables, when there is a new instance of the
+ ;; "org.freedesktop.secrets" service.
+ (dbus-register-signal
+ :session dbus-service-dbus dbus-path-dbus
+ dbus-interface-dbus "NameOwnerChanged"
+ (lambda (&rest args)
+ (when secrets-debug (message "Secret Service has changed: %S" args))
+ (setq secrets-session-path secrets-empty-path
+ secrets-prompt-signal nil
+ secrets-collection-paths nil))
+ secrets-service)
+
+ ;; We want to refresh our cache, when there is a change in
+ ;; collections.
+ (dbus-register-signal
+ :session secrets-service secrets-path
+ secrets-interface-service "CollectionCreated"
+ 'secrets-collection-handler)
+
+ (dbus-register-signal
+ :session secrets-service secrets-path
+ secrets-interface-service "CollectionDeleted"
+ 'secrets-collection-handler)
+
+ ;; We shall inform, whether the secret service is enabled on this
+ ;; machine.
+ (setq secrets-enabled t)))
+
+(provide 'secrets)
;;; TODO: