Make sure to flush stdout in sshsock.
[pdm.git] / pdm / sshsock.py
index 44fd113..dd53e6a 100644 (file)
@@ -17,6 +17,14 @@ class sshsocket(object):
             raise socket.error("unexpected reply from %s: %r" % (host, head))
         head = self.recv(1)
         if head == "+":
+            buf = ""
+            while True:
+                r = self.recv(1)
+                if r == "":
+                    raise socket.error("unexpected EOF in SSH socket stream")
+                elif r == "\n":
+                    break
+                buf += r
             return
         elif head == "-":
             buf = ""
@@ -59,8 +67,10 @@ def cli():
             sk.connect(sys.argv[1])
         except socket.error as err:
             sys.stdout.write("SSOCK-connect: %s\n" % err)
+            sys.stdout.flush()
             return
         sys.stdout.write("SSOCK+\n")
+        sys.stdout.flush()
         buf1 = ""
         buf2 = ""
         while True: