X-Git-Url: http://average.org/gitweb/?a=blobdiff_plain;f=gps303%2Fstorage.py;h=5368efc575e9910bae5da767c0d1adcede239624;hb=1888de5a5dd4bdb85f3fb745341920a9996b278e;hp=6047c39bfc9686fd0a0643564a10007792209b4e;hpb=513eaed4a832748bd77294679939627eaaf69612;p=loctrkd.git diff --git a/gps303/storage.py b/gps303/storage.py index 6047c39..5368efc 100644 --- a/gps303/storage.py +++ b/gps303/storage.py @@ -1,16 +1,12 @@ """ Store zmq broadcasts to sqlite """ from datetime import datetime, timezone -from getopt import getopt from logging import getLogger -from logging.handlers import SysLogHandler -import sys -from time import time import zmq from . import common from .evstore import initdb, stow -from .gps303proto import parse_message +from .gps303proto import proto_of_message from .zmsg import Bcast log = getLogger("gps303/storage") @@ -28,15 +24,26 @@ def runserver(conf): try: while True: zmsg = Bcast(zsub.recv()) - msg = parse_message(zmsg.packet) - log.debug("IMEI %s from %s at %s: %s", zmsg.imei, zmsg.peeraddr, datetime.fromtimestamp(zmsg.when).astimezone(tz=timezone.utc), msg) - stow( - zmsg.peeraddr, - zmsg.when, + log.debug( + "%s IMEI %s from %s at %s: %s", + "I" if zmsg.is_incoming else "O", zmsg.imei, - msg.length, - msg.PROTO, - msg.payload, + zmsg.peeraddr, + 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, + when=zmsg.when, + imei=zmsg.imei, + proto=proto_of_message(zmsg.packet), + packet=zmsg.packet, ) except KeyboardInterrupt: pass