X-Git-Url: http://average.org/gitweb/?a=blobdiff_plain;f=loctrkd%2Fcollector.py;h=5c1c34e25f68ee876cbf3bc8f82c866ed646397b;hb=9048314b734f8c065025179e94469695abf69dd1;hp=75cd33b861c374021c12d478631eff22c3cfcc4a;hpb=cbb7603aebedf517d7b7c61ff6de02d3e7193409;p=loctrkd.git diff --git a/loctrkd/collector.py b/loctrkd/collector.py index 75cd33b..5c1c34e 100644 --- a/loctrkd/collector.py +++ b/loctrkd/collector.py @@ -14,7 +14,7 @@ from socket import ( ) from struct import pack from time import time -from typing import Any, cast, Dict, List, Optional, Set, Tuple, Union +from typing import Any, Dict, List, Optional, Set, Tuple, Union import zmq from . import common @@ -26,9 +26,6 @@ log = getLogger("loctrkd/collector") MAXBUFFER: int = 4096 -pmods: List[ProtoModule] = [] - - class Client: """Connected socket to the terminal plus buffer and metadata""" @@ -71,11 +68,9 @@ class Client: ) return None if self.stream is None: - for pmod in pmods: - if pmod.probe_buffer(segment): - self.pmod = pmod - self.stream = pmod.Stream() - break + self.pmod = common.probe_pmod(segment) + if self.pmod is not None: + self.stream = self.pmod.Stream() if self.stream is None: log.info( "unrecognizable %d bytes of data %s from fd %d", @@ -181,11 +176,6 @@ class Clients: def runserver(conf: ConfigParser, handle_hibernate: bool = True) -> None: - global pmods - pmods = [ - cast(ProtoModule, import_module("." + modnm, __package__)) - for modnm in conf.get("collector", "protocols").split(",") - ] # Is this https://github.com/zeromq/pyzmq/issues/1627 still not fixed?! zctx = zmq.Context() # type: ignore zpub = zctx.socket(zmq.PUB) # type: ignore @@ -233,6 +223,7 @@ def runserver(conf: ConfigParser, handle_hibernate: bool = True) -> None: zpub.send( Bcast( proto=proto, + pmod=pmod.PMODNAME, imei=imei, when=when, peeraddr=peeraddr, @@ -265,8 +256,9 @@ def runserver(conf: ConfigParser, handle_hibernate: bool = True) -> None: Bcast( is_incoming=False, proto=rpmod.proto_of_message(zmsg.packet), - when=zmsg.when, + pmod=pmod.PMODNAME, imei=zmsg.imei, + when=zmsg.when, packet=zmsg.packet, ).packed )