summaryrefslogtreecommitdiff
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-patches-3d0749b4e30dfbbdfc9c365e8ab8f7bebaa96fd7.tar
guix-patches-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