Commit a5509865 authored by Michael Albinus's avatar Michael Albinus

* net/tramp.el (tramp-action-login): Set connection property "login-as".

* net/tramp-cache.el (tramp-dump-connection-properties): Do not dump
properties, when "login-as" is set.

* net/tramp-sh.el (tramp-methods): Add user spec to "pscp" and "psftp".
(tramp-default-user-alist): Don't add "pscp".
(tramp-do-copy-or-rename-file-out-of-band): Use connection
property "login-as", if set.  (Bug#10530)
parent 0dc42289
2012-01-22 Michael Albinus <michael.albinus@gmx.de>
* net/tramp.el (tramp-action-login): Set connection property "login-as".
* net/tramp-cache.el (tramp-dump-connection-properties): Do not dump
properties, when "login-as" is set.
* net/tramp-sh.el (tramp-methods): Add user spec to "pscp" and "psftp".
(tramp-default-user-alist): Don't add "pscp".
(tramp-do-copy-or-rename-file-out-of-band): Use connection
property "login-as", if set. (Bug#10530)
2012-01-21 Michael Albinus <michael.albinus@gmx.de>
* net/tramp-sh.el (tramp-default-user-alist): Don't add "plink",
......
......@@ -243,7 +243,7 @@ PROPERTY is set persistent when KEY is a vector."
(aset key 3 nil))
(let ((hash (or (gethash key tramp-cache-data)
(puthash key (make-hash-table :test 'equal)
tramp-cache-data))))
tramp-cache-data))))
(puthash property value hash)
(setq tramp-cache-data-changed t)
(tramp-message key 7 "%s %s" property value)
......@@ -329,10 +329,15 @@ KEY identifies the connection, it is either a process or a vector."
tramp-cache-data-changed
(stringp tramp-persistency-file-name))
(let ((cache (copy-hash-table tramp-cache-data)))
;; Remove temporary data.
;; Remove temporary data. If there is the key "login-as", we
;; don't save either, because all other properties might
;; depend on the login name, and we want to give the
;; possibility to use another login name later on.
(maphash
(lambda (key value)
(if (and (vectorp key) (not (tramp-file-name-localname key)))
(if (and (vectorp key)
(not (tramp-file-name-localname key))
(not (gethash "login-as" value)))
(progn
(remhash "process-name" value)
(remhash "process-buffer" value)
......
......@@ -380,7 +380,7 @@ detected as prompt when being sent on echoing hosts, therefore.")
(tramp-remote-shell "/bin/sh")
(tramp-remote-shell-args ("-c"))
(tramp-copy-program "pscp")
(tramp-copy-args (("-P" "%p") ("-scp") ("-p" "%k")
(tramp-copy-args (("-l" "%u") ("-P" "%p") ("-scp") ("-p" "%k")
("-q") ("-r")))
(tramp-copy-keep-date t)
(tramp-copy-recursive t)
......@@ -394,7 +394,7 @@ detected as prompt when being sent on echoing hosts, therefore.")
(tramp-remote-shell "/bin/sh")
(tramp-remote-shell-args ("-c"))
(tramp-copy-program "pscp")
(tramp-copy-args (("-P" "%p") ("-sftp") ("-p" "%k")
(tramp-copy-args (("-l" "%u") ("-P" "%p") ("-sftp") ("-p" "%k")
("-q") ("-r")))
(tramp-copy-keep-date t)
(tramp-copy-recursive t)
......@@ -419,13 +419,12 @@ detected as prompt when being sent on echoing hosts, therefore.")
`(,(concat "\\`" (regexp-opt '("su" "sudo" "ksu")) "\\'")
nil "root"))
;; Do not add "ssh" based methods, otherwise ~/.ssh/config would be ignored.
;; Do not add "plink" and "psftp", they ask interactively for the user.
;; Do not add "plink" based methods, they ask interactively for the user.
;;;###tramp-autoload
(add-to-list 'tramp-default-user-alist
`(,(concat
"\\`"
(regexp-opt
'("rcp" "remcp" "rsh" "telnet" "krlogin" "pscp" "fcp"))
(regexp-opt '("rcp" "remcp" "rsh" "telnet" "krlogin" "fcp"))
"\\'")
nil ,(user-login-name)))
......@@ -2281,8 +2280,10 @@ The method used must be an out-of-band method."
;; Set variables for computing the prompt for reading
;; password.
(setq tramp-current-method (tramp-file-name-method v)
tramp-current-user (tramp-file-name-user v)
tramp-current-host (tramp-file-name-real-host v))
tramp-current-user (or (tramp-file-name-user v)
(tramp-get-connection-property
v "login-as" nil))
tramp-current-host (tramp-file-name-real-host v))
;; Expand hops. Might be necessary for gateway methods.
(setq v (car (tramp-compute-multi-hops v)))
......@@ -2309,8 +2310,15 @@ The method used must be an out-of-band method."
(setq port (string-to-number (match-string 2 host))
host (string-to-number (match-string 1 host))))
;; Check for user. There might be an interactive setting.
(setq user (or (tramp-file-name-user v)
(tramp-get-connection-property v "login-as" nil)))
;; Compose copy command.
(setq spec (format-spec-make
(setq host (or host "")
user (or user "")
port (or port "")
spec (format-spec-make
?h host ?u user ?p port
?t (tramp-get-connection-property
(tramp-get-connection-process v) "temp-file" "")
......
......@@ -3115,13 +3115,15 @@ beginning of local filename are not substituted."
(defun tramp-action-login (proc vec)
"Send the login name."
(when (not (stringp tramp-current-user))
(save-window-excursion
(let ((enable-recursive-minibuffers t))
(pop-to-buffer (tramp-get-connection-buffer vec))
(setq tramp-current-user (read-string (match-string 0))))))
(tramp-message vec 3 "Sending login name `%s'" tramp-current-user)
(setq tramp-current-user
(with-connection-property vec "login-as"
(save-window-excursion
(let ((enable-recursive-minibuffers t))
(pop-to-buffer (tramp-get-connection-buffer vec))
(read-string (match-string 0)))))))
(with-current-buffer (tramp-get-connection-buffer vec)
(tramp-message vec 6 "\n%s" (buffer-string)))
(tramp-message vec 3 "Sending login name `%s'" tramp-current-user)
(tramp-send-string vec (concat tramp-current-user tramp-local-end-of-line)))
(defun tramp-action-password (proc vec)
......
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