Commit 7c75524e authored by Michael Albinus's avatar Michael Albinus

* net/secrets.el (top): Register the D-Bus signals only when the

service "org.freedesktop.secrets" can be pinged.  Provide
subfeature 'enabled.
parent 303500aa
2010-03-15 Michael Albinus <michael.albinus@gmx.de>
* net/secrets.el (top): Register the D-Bus signals only when the
service "org.freedesktop.secrets" can be pinged. Provide
subfeature 'enabled.
2010-03-14 Juri Linkov <juri@jurta.org>
Add finder unknown keywords.
......
......@@ -32,9 +32,14 @@
;; In order to activate this package, you must add the following code
;; into your .emacs:
;;
;; (require 'secrets)
;; It can be checked afterwards, whether there is a daemon providing
;; this interface:
;;
;; (featurep 'secrets 'enabled)
;; The atomic objects to be managed by the Secret Service API are
;; secret items, which are something an application wishes to store
;; securely. A good example is a password that an application needs
......@@ -383,14 +388,6 @@ returned, and it will be stored in `secrets-session-path'."
(setq secrets-collection-paths
(delete (car args) secrets-collection-paths)))))
(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)
(defun secrets-get-collections ()
"Return the object paths of all available collections."
(setq secrets-collection-paths
......@@ -667,20 +664,38 @@ 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")))))
;; We must reset all variables, when there is a new instance of the
;; "org.freedesktop.secrets" service.
(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)
(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 shall inform, whether the secret service is enabled on
;; this machine.
(provide 'secrets '(enabled)))
(provide 'secrets)
(provide 'secrets))
;;; TODO:
......
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