summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2018-01-10 23:06:08 +0100
committerLudovic Courtès <ludo@gnu.org>2018-01-11 00:00:03 +0100
commit55f40fdbcdd98d1d1c0110d508079c068bf7f81d (patch)
treef9e3ed69bc48a6c25ea436f2e1da11ae0673d707
parent158eadefc8c6a9f7e7a447a01c58bbcf14074451 (diff)
downloadguix-55f40fdbcdd98d1d1c0110d508079c068bf7f81d.tar.gz
ssh: Pass an empty "exceptfds" set to 'select'.
Previously the redirect code could end up exiting prematurely because of
an uninteresting "exceptional condition" on the socket (info "(libc)
Waiting for I/O").

* guix/ssh.scm (remote-daemon-channel): Pass the empty list as the third
argument to 'select'.  It was a mistake to pass a non-empty list there
in the first place.
-rw-r--r--guix/ssh.scm4
1 files changed, 2 insertions, 2 deletions
diff --git a/guix/ssh.scm b/guix/ssh.scm
index 96e4af9179..cb560c0e9c 100644
--- a/guix/ssh.scm
+++ b/guix/ssh.scm
@@ -124,8 +124,8 @@ Throw an error on failure."
          (connect sock AF_UNIX ,socket-name)
 
          (let loop ()
-           (match (select (list stdin sock) '() (list stdin stdout sock))
-             ((reads writes ())
+           (match (select (list stdin sock) '() '())
+             ((reads () ())
               (when (memq stdin reads)
                 (match (read! stdin buffer)
                   ((? zero?)                      ;EOF