2013-02-21 Michael Albinus <michael.albinus@gmx.de>
+ * 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".
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