chiark / gitweb /
wip
[hippotat.git] / client
diff --git a/client b/client
index f26d46b8eff30e177a11c379bd81100249d6ee1e..062b99270a7676e0622448d5bd0bbe1a2c1bc353 100755 (executable)
--- a/client
+++ b/client
@@ -23,9 +23,8 @@ class ResponseConsumer(GeneralResponseConsumer):
   def __init__(self, cl, req):
     super().__init__(cl, req, 'RC')
     ssddesc = '[%s] %s' % (id(req), self._desc)
-    self._ssd = SlipStreamDecoder(ssddesc, cl.queue_inbound)
+    self._ssd = SlipStreamDecoder(ssddesc, partial(queue_inbound, cl.ipif))
     self._log(DBG.HTTP_CTRL, '__init__')
-    self._success_reported = False
 
   def dataReceived(self, data):
     self._log(DBG.HTTP, 'dataReceived', d=data)
@@ -45,9 +44,7 @@ class ResponseConsumer(GeneralResponseConsumer):
       self._cl.req_fin(self._req)
     except Exception as e:
       self._handleexception()
-    if not self._success_reported:
-      log.info(cl.desc + 'running OK', dflag=False)
-      self._success_reported = True
+    self._cl.report_running()
 
   def _handleexception(self):
     self._latefailure(traceback.format_exc())
@@ -87,7 +84,16 @@ class Client():
     cl.c = c
     cl.outstanding = { }
     cl.desc = '[%s %s] ' % (ss,cs)
-    log.info(cl.desc + 'setting up', dflag=False)
+    cl.running_reported = False
+    cl.log_info('setting up')
+
+  def log_info(cl, msg):
+    log.info(cl.desc + msg, dflag=False)
+
+  def report_running(cl):
+    if not cl.running_reported:
+      cl.log_info('running OK')
+      cl.running_reported = True
 
   def log(cl, dflag, msg, **kwargs):
     log_debug(dflag, cl.desc + msg, **kwargs)
@@ -245,7 +251,7 @@ common_startup(process_cfg)
 
 for cl in clients:
   cl.start()
-  start_ipif(cl.c.ipif_command, cl.outbound)
+  cl.ipif = start_ipif(cl.c.ipif_command, cl.outbound)
   cl.check_outbound()
 
 common_run()