Commit b9bef71f authored by Daniel Colascione's avatar Daniel Colascione
Browse files

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

parent b7e0ef72
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):
......
......@@ -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))
......
......@@ -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,
......
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