diff options
author | Michael Albinus <[email protected]> | 2006-12-17 12:58:04 +0000 |
---|---|---|
committer | Michael Albinus <[email protected]> | 2006-12-17 12:58:04 +0000 |
commit | 210a7c2c92df94a193ae3143a4c39ee65923dd5f (patch) | |
tree | 195a106279b600304563cc0ad7f8c65ddec34941 /lisp/net | |
parent | f6e22881e2e567fea51226a35d4e195fcad0381e (diff) |
* net/tramp.el (tramp-default-method): Before setting to "pscp",
check whether package password.el is loaded, or Pageant is running.
Diffstat (limited to 'lisp/net')
-rw-r--r-- | lisp/net/tramp.el | 31 |
1 files changed, 27 insertions, 4 deletions
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index a45e1a22ad..b2e4ec814f 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el @@ -684,10 +684,33 @@ various functions for details." :type '(repeat (list string function string))) (defcustom tramp-default-method - (if (and (fboundp 'executable-find) - (executable-find "pscp")) - "pscp" - "scp") + (or + ;; An external copy method seems to be preferred, because it is + ;; much more performant for large files, and it hasn't too serious + ;; delays for small files. But it must be ensured that there + ;; aren't permanent password queries. Either the copy method shall + ;; reuse other channels (ControlMaster of OpenSSH does it), a + ;; password agent like "ssh-agent" or "Pageant" shall run, or the + ;; optional password.el package shall be active for password caching. + (and (fboundp 'executable-find) + ;; Check whether PuTTY is installed. + (executable-find "pscp") + (if (or + ;; password.el is loaded. + (fboundp 'password-read) + ;; Pageant is running. + (and (fboundp 'w32-window-exists-p) + (funcall (symbol-function 'w32-window-exists-p) + "Pageant" "Pageant"))) + ;; We know that the password will not be retrieved again. + "pscp" + ;; When "pscp" exists, there is also "plink". + "plink")) + ;; Under UNIX, ControlMaster is activated. This does not work + ;; under Cygwin, but ssh-agent must be enabled then anyway due to + ;; the pseudo-tty problem of Cygwin's OpenSSH implementation. So + ;; it doesn't hurt to use "scp". + "scp") "*Default method to use for transferring files. See `tramp-methods' for possibilities. Also see `tramp-default-method-alist'." |