mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-30 12:21:25 -08:00
Handle chrooted environments in Tramp
* doc/misc/tramp.texi (Frequently Asked Questions): New item, chrooted environments. * lisp/net/tramp.el (tramp-local-host-regexp): Make it a defcustom. Allow nil. (tramp-local-host-p): * lisp/net/tramp-sh.el (tramp-compute-multi-hops): Handle this.
This commit is contained in:
parent
0ac64af1d4
commit
4e464fa98a
3 changed files with 23 additions and 5 deletions
|
|
@ -3294,6 +3294,7 @@ Keep the file @option{tramp-persistency-file-name}, which is where
|
|||
@value{tramp} caches remote information about hosts and files. Caching
|
||||
is enabled by default. Don't disable it.
|
||||
|
||||
@vindex remote-file-name-inhibit-cache
|
||||
Set @code{remote-file-name-inhibit-cache} to @code{nil} if remote
|
||||
files are not independently updated outside @value{tramp}'s control.
|
||||
That cache cleanup will be necessary if the remote directories or
|
||||
|
|
@ -3427,6 +3428,16 @@ first saving to a temporary file.
|
|||
@end itemize
|
||||
|
||||
|
||||
@item
|
||||
@value{tramp} fails in a chrooted environment
|
||||
|
||||
@vindex tramp-local-host-regexp
|
||||
When connecting to a local host, @value{tramp} uses some internal
|
||||
optimizations. They fail, when there is a chrooted environment. In
|
||||
order to disable those optimizations, set user option
|
||||
@option{tramp-local-host-regexp} to @code{nil}.
|
||||
|
||||
|
||||
@item
|
||||
@value{tramp} does not recognize if a @command{ssh} session hangs
|
||||
|
||||
|
|
|
|||
|
|
@ -4634,7 +4634,7 @@ Goes through the list `tramp-inline-compress-commands'."
|
|||
;; host name in their command template. In this case, the remote
|
||||
;; file name must use either a local host name (first hop), or a
|
||||
;; host name matching the previous hop.
|
||||
(let ((previous-host tramp-local-host-regexp))
|
||||
(let ((previous-host (or tramp-local-host-regexp "")))
|
||||
(setq choices target-alist)
|
||||
(while (setq item (pop choices))
|
||||
(let ((host (tramp-file-name-host item)))
|
||||
|
|
|
|||
|
|
@ -428,13 +428,19 @@ host runs a registered shell, it shall be added to this list, too."
|
|||
:require 'tramp)
|
||||
|
||||
;;;###tramp-autoload
|
||||
(defconst tramp-local-host-regexp
|
||||
(defcustom tramp-local-host-regexp
|
||||
(concat
|
||||
"\\`"
|
||||
(regexp-opt
|
||||
(list "localhost" "localhost6" (system-name) "127.0.0.1" "::1") t)
|
||||
"\\'")
|
||||
"Host names which are regarded as local host.")
|
||||
"Host names which are regarded as local host.
|
||||
If the local host runs a chrooted environment, set this to nil."
|
||||
:version "27.1"
|
||||
:group 'tramp
|
||||
:type '(choice (const :tag "Chrooted environment" nil)
|
||||
(regexp :tag "Host regexp"))
|
||||
:require 'tramp)
|
||||
|
||||
(defvar tramp-completion-function-alist nil
|
||||
"Alist of methods for remote files.
|
||||
|
|
@ -4239,11 +4245,12 @@ be granted."
|
|||
|
||||
;;;###tramp-autoload
|
||||
(defun tramp-local-host-p (vec)
|
||||
"Return t if this points to the local host, nil otherwise."
|
||||
"Return t if this points to the local host, nil otherwise.
|
||||
This handles also chrooted environments, which are not regarded as local."
|
||||
(let ((host (tramp-file-name-host vec))
|
||||
(port (tramp-file-name-port vec)))
|
||||
(and
|
||||
(stringp host)
|
||||
(stringp tramp-local-host-regexp) (stringp host)
|
||||
(string-match tramp-local-host-regexp host)
|
||||
;; A port is an indication for an ssh tunnel or alike.
|
||||
(null port)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue