]> www.average.org Git - loctrkd.git/blobdiff - gps303/collector.py
do not respond to hibernation; minor cleanup
[loctrkd.git] / gps303 / collector.py
index b8cc379a16a5cbac14615ead70e84b841e7425ab..de65394d4f4b5eefb0527bea384746cea5d5b2a0 100644 (file)
@@ -167,15 +167,6 @@ def runserver(conf):
                         try:
                             msg = zpull.recv(zmq.NOBLOCK)
                             zmsg = Resp(msg)
-                            zpub.send(
-                                Bcast(
-                                    is_incoming=False,
-                                    proto=proto_of_message(zmsg.packet),
-                                    when=zmsg.when,
-                                    imei=zmsg.imei,
-                                    packet=zmsg.packet,
-                                ).packed
-                            )
                             tosend.append(zmsg)
                         except zmq.Again:
                             break
@@ -210,7 +201,7 @@ def runserver(conf):
                                 tostop.append(sk)
                             respmsg = inline_response(packet)
                             if respmsg is not None:
-                                clients.response(
+                                tosend.append(
                                     Resp(imei=imei, when=when, packet=respmsg)
                                 )
                 else:
@@ -220,6 +211,15 @@ def runserver(conf):
                 poller.unregister(fd)
                 clients.stop(fd)
             for zmsg in tosend:
+                zpub.send(
+                    Bcast(
+                        is_incoming=False,
+                        proto=proto_of_message(zmsg.packet),
+                        when=zmsg.when,
+                        imei=zmsg.imei,
+                        packet=zmsg.packet,
+                    ).packed
+                )
                 log.debug("Sending to the client: %s", zmsg)
                 clients.response(zmsg)
             for clntsock, clntaddr in topoll: