diff options
| -rw-r--r-- | lisp/ChangeLog | 5 | ||||
| -rw-r--r-- | lisp/net/secrets.el | 72 |
2 files changed, 41 insertions, 36 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 54e427eeda5..0deba1945da 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2010-03-16 Michael Albinus <michael.albinus@gmx.de> | ||
| 2 | |||
| 3 | * net/secrets.el (secrets-enabled): New variable. Use it instead | ||
| 4 | of a subfeature. | ||
| 5 | |||
| 1 | 2010-03-15 Michael Albinus <michael.albinus@gmx.de> | 6 | 2010-03-15 Michael Albinus <michael.albinus@gmx.de> |
| 2 | 7 | ||
| 3 | * net/secrets.el (top): Register the D-Bus signals only when the | 8 | * 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 07062810b80..5fa10e284a4 100644 --- a/lisp/net/secrets.el +++ b/lisp/net/secrets.el | |||
| @@ -34,11 +34,9 @@ | |||
| 34 | ;; into your .emacs: | 34 | ;; into your .emacs: |
| 35 | ;; | 35 | ;; |
| 36 | ;; (require 'secrets) | 36 | ;; (require 'secrets) |
| 37 | |||
| 38 | ;; It can be checked afterwards, whether there is a daemon providing | ||
| 39 | ;; this interface: | ||
| 40 | ;; | 37 | ;; |
| 41 | ;; (featurep 'secrets 'enabled) | 38 | ;; Afterwards, the variable `secrets-enabled' is non-nil when there is |
| 39 | ;; a daemon providing this interface. | ||
| 42 | 40 | ||
| 43 | ;; The atomic objects to be managed by the Secret Service API are | 41 | ;; The atomic objects to be managed by the Secret Service API are |
| 44 | ;; secret items, which are something an application wishes to store | 42 | ;; secret items, which are something an application wishes to store |
| @@ -150,6 +148,9 @@ | |||
| 150 | 148 | ||
| 151 | (require 'dbus) | 149 | (require 'dbus) |
| 152 | 150 | ||
| 151 | (defvar secrets-enabled nil | ||
| 152 | "Whether there is a daemon offering the Secret Service API." | ||
| 153 | |||
| 153 | (defvar secrets-debug t | 154 | (defvar secrets-debug t |
| 154 | "Write debug messages") | 155 | "Write debug messages") |
| 155 | 156 | ||
| @@ -664,38 +665,37 @@ If there is no such item, or the item doesn't own this attribute, return nil." | |||
| 664 | :session secrets-service item-path | 665 | :session secrets-service item-path |
| 665 | secrets-interface-item "Delete"))))) | 666 | secrets-interface-item "Delete"))))) |
| 666 | 667 | ||
| 667 | (if (dbus-ping :session secrets-service 100) | 668 | (when (dbus-ping :session secrets-service 100) |
| 668 | 669 | ||
| 669 | (progn | 670 | ;; We must reset all variables, when there is a new instance of the |
| 670 | ;; We must reset all variables, when there is a new instance of | 671 | ;; "org.freedesktop.secrets" service. |
| 671 | ;; the "org.freedesktop.secrets" service. | 672 | (dbus-register-signal |
| 672 | (dbus-register-signal | 673 | :session dbus-service-dbus dbus-path-dbus |
| 673 | :session dbus-service-dbus dbus-path-dbus | 674 | dbus-interface-dbus "NameOwnerChanged" |
| 674 | dbus-interface-dbus "NameOwnerChanged" | 675 | (lambda (&rest args) |
| 675 | (lambda (&rest args) | 676 | (when secrets-debug (message "Secret Service has changed: %S" args)) |
| 676 | (when secrets-debug (message "Secret Service has changed: %S" args)) | 677 | (setq secrets-session-path secrets-empty-path |
| 677 | (setq secrets-session-path secrets-empty-path | 678 | secrets-prompt-signal nil |
| 678 | secrets-prompt-signal nil | 679 | secrets-collection-paths nil)) |
| 679 | secrets-collection-paths nil)) | 680 | secrets-service) |
| 680 | secrets-service) | 681 | |
| 681 | 682 | ;; We want to refresh our cache, when there is a change in | |
| 682 | ;; We want to refresh our cache, when there is a change in | 683 | ;; collections. |
| 683 | ;; collections. | 684 | (dbus-register-signal |
| 684 | (dbus-register-signal | 685 | :session secrets-service secrets-path |
| 685 | :session secrets-service secrets-path | 686 | secrets-interface-service "CollectionCreated" |
| 686 | secrets-interface-service "CollectionCreated" | 687 | 'secrets-collection-handler) |
| 687 | 'secrets-collection-handler) | 688 | |
| 688 | 689 | (dbus-register-signal | |
| 689 | (dbus-register-signal | 690 | :session secrets-service secrets-path |
| 690 | :session secrets-service secrets-path | 691 | secrets-interface-service "CollectionDeleted" |
| 691 | secrets-interface-service "CollectionDeleted" | 692 | 'secrets-collection-handler) |
| 692 | 'secrets-collection-handler) | 693 | |
| 693 | 694 | ;; We shall inform, whether the secret service is enabled on this | |
| 694 | ;; We shall inform, whether the secret service is enabled on | 695 | ;; machine. |
| 695 | ;; this machine. | 696 | (setq secrets-enabled t))) |
| 696 | (provide 'secrets '(enabled))) | 697 | |
| 697 | 698 | (provide 'secrets) | |
| 698 | (provide 'secrets)) | ||
| 699 | 699 | ||
| 700 | ;;; TODO: | 700 | ;;; TODO: |
| 701 | 701 | ||