chiark / gitweb /
wip, fixes
[hippotat.git] / hippotat / __init__.py
index 6286f49bdeae63b1d3a4c1a50b3b95b6de934048..4cc9e70855bfb49f609d6695e85b5a07eb7c51aa 100644 (file)
@@ -23,6 +23,7 @@ from configparser import NoOptionError
 import collections
 import time
 import codecs
+import traceback
 
 import re as regexp
 
@@ -162,8 +163,9 @@ class SlipStreamDecoder():
 
   def inputdata(self, data):
     #print('SLIP-GOT ', repr(data))
-    self._buffer += data
-    packets = slip.decode(self._buffer)
+    data = self._buffer + data
+    self._buffer = b''
+    packets = slip.decode(data)
     self._buffer = packets.pop()
     for packet in packets:
       self._maybe_packet(packet)
@@ -201,6 +203,7 @@ def start_ipif(command, router):
                        env=None)
 
 def queue_inbound(packet):
+  log_debug(DBG.FLOW, "queue_inbound", d=packet)
   ipif.transport.write(slip.delimiter)
   ipif.transport.write(slip.encode(packet))
   ipif.transport.write(slip.delimiter)