X-Git-Url: http://average.org/gitweb/?a=blobdiff_plain;f=gps303%2Fstorage.py;h=c0fc89be0ad3d41029faacbce17be5c76cafd207;hb=18eda7307e92eeee6a9e2fdd2e810f98d25df654;hp=5368efc575e9910bae5da767c0d1adcede239624;hpb=5e1e7a4d37a1e149d5e899dada7b55a863cd8e64;p=loctrkd.git diff --git a/gps303/storage.py b/gps303/storage.py index 5368efc..c0fc89b 100644 --- a/gps303/storage.py +++ b/gps303/storage.py @@ -1,5 +1,6 @@ """ Store zmq broadcasts to sqlite """ +from configparser import ConfigParser from datetime import datetime, timezone from logging import getLogger import zmq @@ -12,12 +13,13 @@ from .zmsg import Bcast log = getLogger("gps303/storage") -def runserver(conf): +def runserver(conf: ConfigParser) -> None: dbname = conf.get("storage", "dbfn") log.info('Using Sqlite3 database "%s"', dbname) initdb(dbname) - zctx = zmq.Context() - zsub = zctx.socket(zmq.SUB) + # Is this https://github.com/zeromq/pyzmq/issues/1627 still not fixed?! + zctx = zmq.Context() # type: ignore + zsub = zctx.socket(zmq.SUB) # type: ignore zsub.connect(conf.get("collector", "publishurl")) zsub.setsockopt(zmq.SUBSCRIBE, b"") @@ -32,21 +34,17 @@ def runserver(conf): datetime.fromtimestamp(zmsg.when).astimezone(tz=timezone.utc), zmsg.packet.hex(), ) - if zmsg.peeraddr is not None: - addr, port = zmsg.peeraddr - peeraddr = str((str(addr), port)) - else: - peeraddr = None stow( is_incoming=zmsg.is_incoming, - peeraddr=peeraddr, + peeraddr=str(zmsg.peeraddr), when=zmsg.when, imei=zmsg.imei, proto=proto_of_message(zmsg.packet), packet=zmsg.packet, ) except KeyboardInterrupt: - pass + zsub.close() + zctx.destroy() # type: ignore if __name__.endswith("__main__"):