]> www.average.org Git - loctrkd.git/blobdiff - gps303/__main__.py
WIP to reorganise to microservices
[loctrkd.git] / gps303 / __main__.py
index 665615d81064d0ddde11bfe292d778f7c976f0f9..51e462c3fcdf07b68fa5024bf7334dcdb83af522 100755 (executable)
@@ -7,8 +7,9 @@ import sys
 from time import time
 
 from .config import readconfig
-from .GT06mod import handle_packet, make_response, LOGIN, set_config
+from .gps303proto import handle_packet, make_response, LOGIN, set_config
 from .evstore import initdb, stow
+from .lookaside import prepare_response
 
 CONF = "/etc/gps303.conf"
 
@@ -68,7 +69,7 @@ if __name__.endswith("__main__"):
                     packet = clntsock.recv(4096)
                     when = time()
                     if packet:
-                        msg = handle_packet(packet, clntaddr, when)
+                        msg = handle_packet(packet)
                         log.debug("%s from %s fd %d", msg, clntaddr, fd)
                         if isinstance(msg, LOGIN):
                             imei = msg.imei
@@ -78,10 +79,11 @@ if __name__.endswith("__main__"):
                             when,
                             imei,
                             msg.length,
-                            msg.proto,
+                            msg.PROTO,
                             msg.payload,
                         )
-                        response = make_response(msg)
+                        kwargs = prepare_response(conf, msg)
+                        response = make_response(msg, **kwargs)
                         if response:
                             try:
                                 # Ignore possibility of blocking
@@ -89,6 +91,7 @@ if __name__.endswith("__main__"):
                             except OSError as e:
                                 log.debug("sending to fd %d error %s", fd, e)
                     else:
+                        # TODO: Also disconnect on HIBERNATION
                         log.info("disconnect fd %d imei %s", fd, imei)
                         pollset.unregister(fd)
                         clntsock.close()