1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-25 07:28:20 +00:00

Tweak Tramp method definition syntax to allow overriding check for localhost-only methods

This commit is contained in:
Daniel Colascione 2013-10-28 19:50:24 -07:00
parent b7e0ef72d0
commit b9bef71fd3
3 changed files with 20 additions and 0 deletions

View File

@ -1,3 +1,10 @@
2013-10-29 Daniel Colascione <dancol@dancol.org>
* net/tramp.el (tramp-methods): Document new functionality.
* net/tramp-sh.el (tramp-compute-multi-hops): Punt to
tramp-hostname-checker if method provides one instead of scanning
argument list for "%h" to decide hostname acceptability.
2013-10-28 Michael Albinus <michael.albinus@gmx.de>
* net/tramp-sh.el (tramp-sh-handle-copy-directory):

View File

@ -4285,6 +4285,10 @@ Gateway hops are already opened."
(or
;; There are multi-hops.
(cdr target-alist)
;; This method explicitly has an explicit allowability check.
(let ((checker (tramp-get-method-parameter
method 'tramp-hostname-checker)))
(when checker (funcall checker v host method) t))
;; The host name is used for the remote shell command.
(member
'("%h") (tramp-get-method-parameter method 'tramp-login-args))

View File

@ -265,6 +265,15 @@ pair of the form (KEY VALUE). The following KEYs are defined:
In general, the global default value shall be used, but for
some methods, like \"su\" or \"sudo\", a shorter timeout
might be desirable.
* `tramp-hostname-checker'
This is a function that tramp calls while setting
up a connection. It is called with three arguments:
the target, the host, and the method description. If
the hostname is unacceptable, this function should signal
using `tramp-error'. If a method does not provide
a value here, then Tramp looks at whether the method's
login program uses a \"%h\" parameter. If not, then Tramp
requires that the given hostname match `tramp-local-host-regexp'.
What does all this mean? Well, you should specify `tramp-login-program'
for all methods; this program is used to log in to the remote site. Then,