]> git.eshelyaron.com Git - emacs.git/commitdiff
* net/tramp.el: (tramp-process-one-action): Remove `with-timeout'.
authorMichael Albinus <michael.albinus@gmx.de>
Tue, 9 Jan 2007 05:04:15 +0000 (05:04 +0000)
committerMichael Albinus <michael.albinus@gmx.de>
Tue, 9 Jan 2007 05:04:15 +0000 (05:04 +0000)
(tramp-process-actions): Add optional parameter TIMEOUT.
(tramp-open-connection-telnet, tramp-open-connection-rsh)
(tramp-open-connection-su): Add timeout of 60".

lisp/ChangeLog
lisp/net/tramp.el

index b7cce56092e5bff5fcfe194da8bafe92f4fb65c9..db118187f1dc0b2a3e402f5d9acd67d096e0c8a2 100644 (file)
@@ -1,3 +1,10 @@
+2007-01-09  Michael Albinus  <michael.albinus@gmx.de>
+
+       * net/tramp.el: (tramp-process-one-action): Remove `with-timeout'.
+       (tramp-process-actions): Add optional parameter TIMEOUT.
+       (tramp-open-connection-telnet, tramp-open-connection-rsh)
+       (tramp-open-connection-su): Add timeout of 60".
+
 2007-01-09  Richard Stallman  <rms@gnu.org>
 
        * progmodes/compile.el (compile): Doc fix.
index 822a995230e2540056e61f9e9a57890051d95110..4d3ee29c4d6dc7839ac0fbb59017523696e13b74 100644 (file)
@@ -2,7 +2,7 @@
 ;;; tramp.el --- Transparent Remote Access, Multiple Protocol
 
 ;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-;;   2005, 2006 Free Software Foundation, Inc.
+;;   2005, 2006, 2007 Free Software Foundation, Inc.
 
 ;; Author: Kai Gro\e,A_\e(Bjohann <kai.grossjohann@gmx.net>
 ;;         Michael Albinus <michael.albinus@gmx.de>
@@ -5540,32 +5540,36 @@ The terminal type can be configured with `tramp-terminal-type'."
   (let (found item pattern action todo)
     (erase-buffer)
     (tramp-message 9 "Waiting 60s for prompt from remote shell")
-    (with-timeout (60 (throw 'tramp-action 'timeout))
-      (while (not found)
-       (tramp-accept-process-output p 1)
+    (while (not found)
+      (tramp-accept-process-output p 1)
+      (goto-char (point-min))
+      (setq todo actions)
+      (while todo
        (goto-char (point-min))
-       (setq todo actions)
-       (while todo
-         (goto-char (point-min))
-         (setq item (pop todo))
-         (setq pattern (symbol-value (nth 0 item)))
-         (setq action (nth 1 item))
-         (tramp-message 10 "Looking for regexp \"%s\" from remote shell"
-                        pattern)
-         (when (re-search-forward (concat pattern "\\'") nil t)
-           (setq found (funcall action p multi-method method user host)))))
-      found)))
+       (setq item (pop todo))
+       (setq pattern (symbol-value (nth 0 item)))
+       (setq action (nth 1 item))
+       (tramp-message 10 "Looking for regexp \"%s\" from remote shell"
+                      pattern)
+       (when (re-search-forward (concat pattern "\\'") nil t)
+         (setq found (funcall action p multi-method method user host)))))
+    found))
 
-(defun tramp-process-actions (p multi-method method user host actions)
-  "Perform actions until success."
+(defun tramp-process-actions
+  (p multi-method method user host actions &optional timeout)
+  "Perform actions until success or TIMEOUT."
   (tramp-message 10 "%s" (mapconcat 'identity (process-command p) " "))
   (let (exit)
     (while (not exit)
       (tramp-message 9 "Waiting for prompts from remote shell")
       (setq exit
            (catch 'tramp-action
-             (tramp-process-one-action
-              p multi-method method user host actions)
+             (if timeout
+                 (with-timeout (timeout)
+                   (tramp-process-one-action
+                    p multi-method method user host actions))
+               (tramp-process-one-action
+                p multi-method method user host actions))
              nil)))
     (unless (eq exit 'ok)
       (tramp-clear-passwd user host)
@@ -5689,7 +5693,7 @@ Maybe the different regular expressions need to be tuned.
        (set-buffer (tramp-get-buffer multi-method method user host))
        (erase-buffer)
        (tramp-process-actions p multi-method method user host
-                              tramp-actions-before-shell)
+                              tramp-actions-before-shell 60)
         (tramp-open-connection-setup-interactive-shell
          p multi-method method user host)
         (tramp-post-connection multi-method method user host)))))
@@ -5762,7 +5766,7 @@ arguments, and xx will be used as the host name to connect to.
 
        (set-buffer buf)
        (tramp-process-actions p multi-method method user host
-                              tramp-actions-before-shell)
+                              tramp-actions-before-shell 60)
         (tramp-message 7 "Initializing remote shell")
         (tramp-open-connection-setup-interactive-shell
          p multi-method method user host)
@@ -5823,7 +5827,7 @@ prompt than you do, so it is not at all unlikely that the variable
         (tramp-set-process-query-on-exit-flag p nil)
        (set-buffer (tramp-get-buffer multi-method method user host))
        (tramp-process-actions p multi-method method user host
-                              tramp-actions-before-shell)
+                              tramp-actions-before-shell 60)
         (tramp-open-connection-setup-interactive-shell
          p multi-method method user host)
         (tramp-post-connection multi-method method