diff options
author | Avery Pennarun <apenwarr@gmail.com> | 2010-12-31 23:46:47 -0800 |
---|---|---|
committer | Avery Pennarun <apenwarr@gmail.com> | 2010-12-31 23:46:47 -0800 |
commit | 651b607361280c92c5d8d92567fed90ce856261e (patch) | |
tree | 0fed7eb14c90376c416341ceea328701262178c1 | |
parent | dc9a5e63c7242ea3cf3ad317363d84c8f0ca2e6a (diff) |
If ssh dies right after starting, we might get ECONNRESET.
Turn it into a nicer-looking fatal error instead of an exception dump.
-rw-r--r-- | client.py | 10 |
1 files changed, 8 insertions, 2 deletions
@@ -125,14 +125,20 @@ def _main(listener, fw, ssh_cmd, remotename, python, seed_hosts, auto_nets): (serverproc, serversock) = ssh.connect(ssh_cmd, remotename, python) except socket.error, e: if e.args[0] == errno.EPIPE: - raise Fatal("failed to establish ssh session") + raise Fatal("failed to establish ssh session (1)") else: raise mux = Mux(serversock, serversock) handlers.append(mux) expected = 'SSHUTTLE0001' - initstring = serversock.recv(len(expected)) + try: + initstring = serversock.recv(len(expected)) + except socket.error, e: + if e.args[0] == errno.ECONNRESET: + raise Fatal("failed to establish ssh session (2)") + else: + raise rv = serverproc.poll() if rv: |