From: Michael Albinus Date: Mon, 31 Dec 2018 14:11:09 +0000 (+0100) Subject: Reset `tramp-default-proxies-alist' in case of errors X-Git-Tag: emacs-27.0.90~3892 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=c5bbf67d5ca36f83f57139f300a76dfc164dffba;p=emacs.git 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. --- 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.