From: Eugene Crosser Date: Wed, 15 Jun 2022 21:42:23 +0000 (+0200) Subject: collector: fix problems found by fuzzer test X-Git-Tag: 0.99~13 X-Git-Url: http://www.average.org/gitweb/?p=loctrkd.git;a=commitdiff_plain;h=dba371efd7945c29be62ec915f21794e8a737669 collector: fix problems found by fuzzer test --- 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__"):