+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):
(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))
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,