]> git.eshelyaron.com Git - emacs.git/commitdiff
* net/tramp.el (tramp-process-actions, tramp-read-passwd):
authorMichael Albinus <michael.albinus@gmx.de>
Mon, 15 Feb 2010 15:04:53 +0000 (16:04 +0100)
committerMichael Albinus <michael.albinus@gmx.de>
Mon, 15 Feb 2010 15:04:53 +0000 (16:04 +0100)
* net/tramp-gvfs.el (tramp-gvfs-maybe-open-connection): Use VEC
instead of PROC for caching "first-password-request".  Otherwise,
new processes would not profit from passwords already entered.

* net/tramp-cache.el (tramp-dump-connection-properties): Don't
save "first-password-request" property.

lisp/ChangeLog
lisp/net/tramp-cache.el
lisp/net/tramp-gvfs.el
lisp/net/tramp.el

index 52ca0354c29f9e7d4f58a61ac59a7a85bd61c577..8f1c5574e413a3455eed5d1d32d883fcb9404926 100644 (file)
@@ -1,3 +1,13 @@
+2010-02-15  Michael Albinus  <michael.albinus@gmx.de>
+
+       * net/tramp.el (tramp-process-actions, tramp-read-passwd):
+       * net/tramp-gvfs.el (tramp-gvfs-maybe-open-connection): Use VEC
+       instead of PROC for caching "first-password-request".  Otherwise,
+       new processes would not profit from passwords already entered.
+
+       * net/tramp-cache.el (tramp-dump-connection-properties): Don't
+       save "first-password-request" property.
+
 2010-02-14  Juanma Barranquero  <lekktu@gmail.com>
 
        * outline.el (outline-head-from-level):
index 4338a6edad150809137206531a0b49a3228532e2..ac86fabe3a979cf7664e453159964cdfc11ba26b 100644 (file)
@@ -1,7 +1,7 @@
 ;;; tramp-cache.el --- file information caching for Tramp
 
-;; Copyright (C) 2000, 2005, 2006, 2007, 2008,
-;;   2009, 2010 Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2005, 2006, 2007, 2008, 2009,
+;;   2010 Free Software Foundation, Inc.
 
 ;; Author: Daniel Pittman <daniel@inanna.danann.net>
 ;;         Michael Albinus <michael.albinus@gmx.de>
@@ -295,7 +295,8 @@ KEY identifies the connection, it is either a process or a vector."
              (if (and (vectorp key) (not (tramp-file-name-localname key)))
                  (progn
                    (remhash "process-name" value)
-                   (remhash "process-buffer" value))
+                   (remhash "process-buffer" value)
+                   (remhash "first-password-request" value))
                (remhash key cache)))
           cache)
          ;; Dump it.
index 3f1e1a463d30b8ffb4d2e6880c8b0fc071213e1f..a80e0f27752a03bf46447d21ca43466bc9494c7c 100644 (file)
@@ -1057,8 +1057,7 @@ connection if a previous connection has died for some reason."
         vec 3 "Opening connection for %s@%s using %s..." user host method))
 
       ;; Enable auth-sorce and password-cache.
-      (tramp-set-connection-property
-       (tramp-get-connection-process vec) "first-password-request" t)
+      (tramp-set-connection-property vec "first-password-request" t)
 
       ;; There will be a callback of "askPassword", when a password is
       ;; needed.
index a573a75afe2eede4668bd2dafe559e04e4b3522a..e59383e31e7cffe80d44209a5a58a74d7b13fae8 100644 (file)
@@ -6539,7 +6539,7 @@ The terminal type can be configured with `tramp-terminal-type'."
 (defun tramp-process-actions (proc vec actions &optional timeout)
   "Perform actions until success or TIMEOUT."
   ;; Enable auth-source and password-cache.
-  (tramp-set-connection-property proc "first-password-request" t)
+  (tramp-set-connection-property vec "first-password-request" t)
   (let (exit)
     (while (not exit)
       (tramp-message proc 3 "Waiting for prompts from remote shell")
@@ -8320,26 +8320,27 @@ Invokes `password-read' if available, `read-passwd' else."
              (with-current-buffer (process-buffer proc)
                (tramp-check-for-regexp proc tramp-password-prompt-regexp)
                (format "%s for %s " (capitalize (match-string 1)) key)))))
-    (prog1
-       (or
-        ;; See if auth-sources contains something useful, if it's bound.
-        (and (boundp 'auth-sources)
-             (tramp-get-connection-property proc "first-password-request" nil)
-             ;; Try with Tramp's current method.
-             (funcall (symbol-function 'auth-source-user-or-password)
-                      "password" tramp-current-host tramp-current-method))
-        ;; Try the password cache.
-        (when (functionp 'password-read)
-          (unless (tramp-get-connection-property
-                   proc "first-password-request" nil)
-            (funcall (symbol-function 'password-cache-remove) key))
-          (let ((password
-                 (funcall (symbol-function 'password-read) pw-prompt key)))
-            (funcall (symbol-function 'password-cache-add) key password)
-            password))
-        ;; Else, get the password interactively.
-        (read-passwd pw-prompt))
-      (tramp-set-connection-property proc "first-password-request" nil))))
+    (with-parsed-tramp-file-name key nil
+      (prog1
+         (or
+          ;; See if auth-sources contains something useful, if it's bound.
+          (and (boundp 'auth-sources)
+               (tramp-get-connection-property v "first-password-request" nil)
+               ;; Try with Tramp's current method.
+               (funcall (symbol-function 'auth-source-user-or-password)
+                        "password" tramp-current-host tramp-current-method))
+          ;; Try the password cache.
+          (when (functionp 'password-read)
+            (unless (tramp-get-connection-property
+                     v "first-password-request" nil)
+              (funcall (symbol-function 'password-cache-remove) key))
+            (let ((password
+                   (funcall (symbol-function 'password-read) pw-prompt key)))
+              (funcall (symbol-function 'password-cache-add) key password)
+              password))
+          ;; Else, get the password interactively.
+          (read-passwd pw-prompt))
+       (tramp-set-connection-property v "first-password-request" nil)))))
 
 (defun tramp-clear-passwd (vec)
   "Clear password cache for connection related to VEC."
@@ -8585,7 +8586,7 @@ Only works for Bourne-like shells."
 ;;   rsync).
 ;; * Keep a second connection open for out-of-band methods like scp or
 ;;   rsync.
-;; * Support ptys in `tramp-handle-start-file-process'.
+;; * Support ptys in `tramp-handle-start-file-process'.  (Bug#4604)
 ;; * IMHO, it's a drawback that currently Tramp doesn't support
 ;;   Unicode in Dired file names by default.  Is it possible to
 ;;   improve Tramp to set LC_ALL to "C" only for commands where Tramp
@@ -8596,6 +8597,9 @@ Only works for Bourne-like shells."
 ;; * Load Tramp subpackages only when needed.  (Bug#1529, Bug#5448)
 ;; * Try telnet+curl as new method.  It might be useful for busybox,
 ;;   without built-in uuencode/uudecode.
+;; * Let `shell-dynamic-complete-*' and `comint-dynamic-complete' work
+;;   on remote hosts.
+;; * Use secrets.el for password handling.
 
 ;; Functions for file-name-handler-alist:
 ;; diff-latest-backup-file -- in diff.el