From d20e6e9093f74ce2e435a3dac948df200e767405 Mon Sep 17 00:00:00 2001 From: Michael Albinus Date: Thu, 21 Feb 2013 15:23:12 +0100 Subject: [PATCH] * net/tramp.el (tramp-ssh-controlmaster-template): Make it a defconst. Apply independent check for ControlPersist. --- lisp/ChangeLog | 3 +++ lisp/net/tramp.el | 18 +++++++++++++----- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 9ecf7ebddd7..4210740791f 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,8 @@ 2013-02-21 Michael Albinus + * net/tramp.el (tramp-ssh-controlmaster-template): Make it a + defconst. Apply independent check for ControlPersist. + * net/tramp-sh.el (tramp-sh-handle-set-file-times): Set $UTC only temporarily, via "env". diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index 89648b0e9a9..5305484e920 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el @@ -281,16 +281,24 @@ started on the local host. You should specify a remote host useful only in combination with `tramp-default-proxies-alist'.") ;;;###tramp-autoload -(defvar tramp-ssh-controlmaster-template +(defconst tramp-ssh-controlmaster-template + (let (result) (ignore-errors (with-temp-buffer (call-process "ssh" nil t nil "-o" "ControlMaster") (goto-char (point-min)) (when (search-forward-regexp "Missing ControlMaster argument" nil t) - '("-o" "ControlPath=%t.%%r@%%h:%%p" - "-o" "ControlMaster=auto" - "-o" "ControlPersist=no")))) - "Call ssh to detect whether it supports the ControlMaster argument. + (setq result + '("-o" "ControlPath=%t.%%r@%%h:%%p" + "-o" "ControlMaster=auto")))) + (when result + (with-temp-buffer + (call-process "ssh" nil t nil "-o" "ControlPersist") + (goto-char (point-min)) + (when (search-forward-regexp "Missing ControlPersist argument" nil t) + (setq result (append result '("-o" "ControlPersist=no"))))))) + result) + "Call ssh to detect whether it supports the Control* arguments. Return a template to be used in `tramp-methods'.") (defcustom tramp-default-method -- 2.39.2