diff options
author | Michael Albinus <michael.albinus@gmx.de> | 2018-12-31 15:11:09 +0100 |
---|---|---|
committer | Michael Albinus <michael.albinus@gmx.de> | 2018-12-31 15:11:09 +0100 |
commit | c5bbf67d5ca36f83f57139f300a76dfc164dffba (patch) | |
tree | 4e3f3e34988192c43b6d6b79b701f2304ed4beba | |
parent | 792dc36e691b1e4b7735c75d2d402d1b9a8801ce (diff) | |
download | emacs-c5bbf67d5ca36f83f57139f300a76dfc164dffba.tar.gz |
Reset `tramp-default-proxies-alist' in case of errors
* lisp/net/tramp-sh.el (tramp-compute-multi-hops):
Reset `tramp-default-proxies-alist' in case of errors.
-rw-r--r-- | lisp/net/tramp-sh.el | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el index 991a2102634..06c1c2da830 100644 --- a/lisp/net/tramp-sh.el +++ b/lisp/net/tramp-sh.el @@ -4610,7 +4610,8 @@ Goes through the list `tramp-inline-compress-commands'." (defun tramp-compute-multi-hops (vec) "Expands VEC according to `tramp-default-proxies-alist'." - (let ((target-alist `(,vec)) + (let ((saved-tdpa tramp-default-proxies-alist) + (target-alist `(,vec)) (hops (or (tramp-file-name-hop vec) "")) (item vec) choices proxy) @@ -4676,9 +4677,9 @@ Goes through the list `tramp-inline-compress-commands'." (while (setq item (pop choices)) (when (or (not (tramp-get-method-parameter item 'tramp-login-program)) (tramp-get-method-parameter item 'tramp-copy-program)) - (tramp-error - vec 'file-error - "Method `%s' is not supported for multi-hops." + (setq tramp-default-proxies-alist saved-tdpa) + (tramp-user-error + vec "Method `%s' is not supported for multi-hops." (tramp-file-name-method item))))) ;; Some methods ("su", "sg", "sudo", "doas", "ksu") do not use the @@ -4696,8 +4697,9 @@ Goes through the list `tramp-inline-compress-commands'." '("%h") (tramp-get-method-parameter item 'tramp-login-args)) ;; The host name must match previous hop. (string-match-p previous-host host)) + (setq tramp-default-proxies-alist saved-tdpa) (tramp-user-error - item "Host name `%s' does not match `%s'" host previous-host)) + vec "Host name `%s' does not match `%s'" host previous-host)) (setq previous-host (concat "^" (regexp-quote host) "$"))))) ;; Result. |