Commit 7540f029 authored by Michael Albinus's avatar Michael Albinus
Browse files

* 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.
parent 737b5223
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):
......
;;; 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.
......
......@@ -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.
......
......@@ -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
......
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