X-Git-Url: http://www.average.org/gitweb/?p=loctrkd.git;a=blobdiff_plain;f=gps303%2Fcollector.py;h=c2efd79b82182e13319526a644abccb0e85071b9;hp=28ee4a8cd92321a8007747fea3dd7226066902b7;hb=dba371efd7945c29be62ec915f21794e8a737669;hpb=4b4c5078f02af922758afa195e8fcdcaccab950d diff --git a/gps303/collector.py b/gps303/collector.py index 28ee4a8..c2efd79 100644 --- a/gps303/collector.py +++ b/gps303/collector.py @@ -171,7 +171,7 @@ class Clients: log.info("Not connected (IMEI %s)", resp.imei) -def runserver(conf: ConfigParser) -> None: +def runserver(conf: ConfigParser, handle_hibernate: bool = True) -> None: # Is this https://github.com/zeromq/pyzmq/issues/1627 still not fixed?! zctx = zmq.Context() # type: ignore zpub = zctx.socket(zmq.PUB) # type: ignore @@ -224,7 +224,7 @@ def runserver(conf: ConfigParser) -> None: packet=packet, ).packed ) - if proto == HIBERNATION.PROTO: + if proto == HIBERNATION.PROTO and handle_hibernate: log.debug( "HIBERNATION from fd %d (IMEI %s)", sk, @@ -258,7 +258,10 @@ def runserver(conf: ConfigParser) -> None: fd = clients.add(clntsock, clntaddr) poller.register(fd, flags=zmq.POLLIN) except KeyboardInterrupt: - pass + zpub.close() + zpull.close() + zctx.destroy() # type: ignore + tcpl.close() if __name__.endswith("__main__"):