]> git.eshelyaron.com Git - emacs.git/commitdiff
Support PuTTY's antispoof message in Tramp
authorMichael Albinus <michael.albinus@gmx.de>
Sat, 19 Oct 2019 12:23:21 +0000 (14:23 +0200)
committerMichael Albinus <michael.albinus@gmx.de>
Sat, 19 Oct 2019 12:23:21 +0000 (14:23 +0200)
* lisp/net/tramp-sh.el (tramp-actions-before-shell):
Add respective entry for PuTTY's antispoof message.

* lisp/net/tramp.el (tramp-antispoof-regexp): New defcustom.
(tramp-action-confirm-message): New defun.

lisp/net/tramp-sh.el
lisp/net/tramp.el

index e92b9d7729b3b107b61cb2711b923cd0b39b05a8..26254f87fe1ef22fe55f7f8c17736e64000ab697 100644 (file)
@@ -556,6 +556,7 @@ shell from reading its init file."
     (tramp-yesno-prompt-regexp tramp-action-yesno)
     (tramp-yn-prompt-regexp tramp-action-yn)
     (tramp-terminal-prompt-regexp tramp-action-terminal)
+    (tramp-antispoof-regexp tramp-action-confirm-message)
     (tramp-process-alive-regexp tramp-action-process-alive))
   "List of pattern/action pairs.
 Whenever a pattern matches, the corresponding action is performed.
index 6ff313e8fb30624916bba5fd1783f7176d4344dd..6c17ef0b34439190725ff49d441271397840ae37 100644 (file)
@@ -636,6 +636,16 @@ The regexp should match at end of buffer.
 The answer will be provided by `tramp-action-terminal', which see."
   :type 'regexp)
 
+;; Plink 0.71 has added an additional anti-spoofing prompt after
+;; authentication.  This could be discarded with the argument
+;; \"-no-antispoof\".  However, since we don't know which PuTTY
+;; version is installed, we must react interactively.
+(defcustom tramp-antispoof-regexp
+  (regexp-quote "Access granted. Press Return to begin session. ")
+  "Regular expression matching plink's anti-spoofing message."
+  :version 27.1
+  :type 'regexp)
+
 (defcustom tramp-operation-not-permitted-regexp
   (concat "\\(" "preserving times.*" "\\|" "set mode" "\\)" ":\\s-*"
          (regexp-opt '("Operation not permitted") t))
@@ -3935,6 +3945,13 @@ The terminal type can be configured with `tramp-terminal-type'."
   (tramp-send-string vec (concat tramp-terminal-type tramp-local-end-of-line))
   t)
 
+(defun tramp-action-confirm-message (_proc vec)
+  "Return RET in order to confirm the message."
+  (with-current-buffer (tramp-get-connection-buffer vec)
+    (tramp-message vec 6 "\n%s" (buffer-string)))
+  (tramp-send-string vec tramp-local-end-of-line)
+  t)
+
 (defun tramp-action-process-alive (proc _vec)
   "Check, whether a process has finished."
   (unless (process-live-p proc)