chiark / gitweb /
wip
[hippotat.git] / client
diff --git a/client b/client
index 48b635a9d2f62c19a2f2489f66d2a43a70bc0b54..c878d724cd243b5ebcaaa73d227f390435f01840 100755 (executable)
--- a/client
+++ b/client
@@ -51,8 +51,20 @@ def outbound(packet, saddr, daddr):
   queue.append(packet)
   check_outbound()
 
+class ResponseConsumer(twisted.internet.protocol.Protocol):
+  def __init__(self):
+    self._ssd = SlipStreamDecoder(queue_inbound)
+  def dataReceived(self, data):
+    self._ssd.inputdata(mime_translate(data))
+  def connectionMade(self): pass
+  def connectionLost(self, reason):
+    if isinstance(reason, twisted.internet.error.ConnectionDone):
+      self._ssd.flush()
+    else:
+      print(reason, file=sys.stderr)
+
 def req_ok(resp):
-  
+  resp.deliverBody(ResponseConsumer())
 
 def req_err(err):
   print(err, >>sys.stderr)