]> code.delx.au - gnu-emacs/commitdiff
Revert "Change the default socket location for pinentry"
authorDaiki Ueno <ueno@gnu.org>
Mon, 22 Feb 2016 01:45:53 +0000 (10:45 +0900)
committerDaiki Ueno <ueno@gnu.org>
Mon, 22 Feb 2016 01:45:53 +0000 (10:45 +0900)
This reverts commit e34fbdee8aca84b98393b06b2450837d175999ca.
It turned out that the address is fixed in Pinentry itself.

lisp/net/pinentry.el

index f83b0734fa2f1e39b720391d679c1bf43f72731d..285f86481bc233638385f3d5204dad3442e81746 100644 (file)
@@ -26,9 +26,6 @@
 ;; This package allows GnuPG passphrase to be prompted through the
 ;; minibuffer instead of graphical dialog.
 ;;
-;; This feature requires GnuPG 2.1.5 or later and Pinentry 0.9.5 or
-;; later, with the Emacs support compiled in.
-;;
 ;; To use, add "allow-emacs-pinentry" to "~/.gnupg/gpg-agent.conf",
 ;; reload the configuration with "gpgconf --reload gpg-agent", and
 ;; start the server with M-x pinentry-start.
 ;; where pinentry and Emacs communicate through a Unix domain socket
 ;; created at:
 ;;
-;;   ~/.emacs.d/pinentry/pinentry
+;;   ${TMPDIR-/tmp}/emacs$(id -u)/pinentry
+;;
+;; under the same directory which server.el uses.  The protocol is a
+;; subset of the Pinentry Assuan protocol described in (info
+;; "(pinentry) Protocol").
 ;;
-;; The protocol is a subset of the Pinentry Assuan protocol described
-;; in (info "(pinentry) Protocol").
+;; NOTE: As of August 2015, this feature requires newer versions of
+;; GnuPG (2.1.5+) and Pinentry (0.9.5+).
 
 ;;; Code:
 
-(eval-when-compile (require 'cl-lib))
-
 (defgroup pinentry nil
   "The Pinentry server"
   :version "25.1"
 
 (defvar pinentry--prompt-buffer nil)
 
-(defvar pinentry--socket-dir (locate-user-emacs-file "pinentry")
+;; We use the same location as `server-socket-dir', when local sockets
+;; are supported.
+(defvar pinentry--socket-dir
+  (format "%s/emacs%d" (or (getenv "TMPDIR") "/tmp") (user-uid))
   "The directory in which to place the server socket.
 If local sockets are not supported, this is nil.")
 
@@ -170,17 +172,16 @@ will not be shown."
       (ignore-errors
         (let (delete-by-moving-to-trash)
           (delete-file server-file)))
-      (cl-letf (((default-file-modes) ?\700))
-        (setq pinentry--server-process
-              (make-network-process
-               :name "pinentry"
-               :server t
-               :noquery t
-               :sentinel #'pinentry--process-sentinel
-               :filter #'pinentry--process-filter
-               :coding 'no-conversion
-               :family 'local
-               :service server-file)))
+      (setq pinentry--server-process
+            (make-network-process
+             :name "pinentry"
+             :server t
+             :noquery t
+             :sentinel #'pinentry--process-sentinel
+             :filter #'pinentry--process-filter
+             :coding 'no-conversion
+             :family 'local
+             :service server-file))
       (process-put pinentry--server-process :server-file server-file))))
 
 (defun pinentry-stop ()