From dba371efd7945c29be62ec915f21794e8a737669 Mon Sep 17 00:00:00 2001 From: Eugene Crosser Date: Wed, 15 Jun 2022 23:42:23 +0200 Subject: [PATCH] collector: fix problems found by fuzzer test --- gps303/collector.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) 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__"): -- 2.39.2