summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2022-06-14 09:02:43 +0200
committerLudovic Courtès <ludo@gnu.org>2022-06-15 00:25:20 +0200
commit3d0749b4e30dfbbdfc9c365e8ab8f7bebaa96fd7 (patch)
tree17c8c285302978a7969fe0c6d3b1664e10f99c6e
parent7046e777212233b89df68379c270b448c45195ce (diff)
downloadguix-3d0749b4e30dfbbdfc9c365e8ab8f7bebaa96fd7.tar.gz
ssh: Add #:connection-timeout parameter to 'open-ssh-session'.
* guix/ssh.scm (open-ssh-session): Add #:connection-timeout parameter
and honor it.
-rw-r--r--guix/ssh.scm10
1 files changed, 6 insertions, 4 deletions
diff --git a/guix/ssh.scm b/guix/ssh.scm
index 232b6bfe94..a6f0f2eb96 100644
--- a/guix/ssh.scm
+++ b/guix/ssh.scm
@@ -102,7 +102,8 @@ actual key does not match."
 (define* (open-ssh-session host #:key user port identity
                            host-key
                            (compression %compression)
-                           (timeout 3600))
+                           (timeout 3600)
+                           (connection-timeout 10))
   "Open an SSH session for HOST and return it.  IDENTITY specifies the file
 name of a private key to use for authenticating with the host.  When USER,
 PORT, or IDENTITY are #f, use default values or whatever '~/.ssh/config'
@@ -112,15 +113,16 @@ When HOST-KEY is true, it must be a string like \"ssh-ed25519 AAAAC3Nz…
 root@example.org\"; the server is authenticated and an error is raised if its
 host key is different from HOST-KEY.
 
-Install TIMEOUT as the maximum time in seconds after which a read or write
-operation on a channel of the returned session is considered as failing.
+Error out if connection establishment takes more than CONNECTION-TIMEOUT
+seconds.  Install TIMEOUT as the maximum time in seconds after which a read or
+write operation on a channel of the returned session is considered as failing.
 
 Throw an error on failure."
   (let ((session (make-session #:user user
                                #:identity identity
                                #:host host
                                #:port port
-                               #:timeout 10       ;seconds
+                               #:timeout connection-timeout
                                ;; #:log-verbosity 'protocol
 
                                ;; Prevent libssh from reading