]> www.average.org Git - loctrkd.git/blobdiff - gps303/collector.py
change error reporting and fix bugs
[loctrkd.git] / gps303 / collector.py
index 5215d7b42289762b8b8bc79b2da0de0ec2203e09..3cb7b0bda98b09a961af7f5cc834ea95ae46a76a 100644 (file)
@@ -19,7 +19,6 @@ import zmq
 from . import common
 from .gps303proto import (
     GPS303Conn,
-    StreamError,
     HIBERNATION,
     LOGIN,
     inline_response,
@@ -69,16 +68,18 @@ class Client:
             )
             return None
         when = time()
-        while True:
-            try:
-                return [
-                    (when, self.addr, packet)
-                    for packet in self.stream.recv(segment)
-                ]
-            except StreamError as e:
+        msgs = []
+        for elem in self.stream.recv(segment):
+            if isinstance(elem, bytes):
+                msgs.append((when, self.addr, elem))
+            else:
                 log.warning(
-                    "%s from fd %d (IMEI %s)", e, self.sock.fileno(), self.imei
+                    "%s from fd %d (IMEI %s)",
+                    elem,
+                    self.sock.fileno(),
+                    self.imei,
                 )
+        return msgs
 
     def send(self, buffer: bytes) -> None:
         try: