adding request log to client object.
This commit is contained in:
@@ -16,7 +16,7 @@ from shutil import rmtree
|
|||||||
from threading import Thread
|
from threading import Thread
|
||||||
|
|
||||||
class Client:
|
class Client:
|
||||||
def __init__(self, pe_server: str, port: int, client_callsign: str):
|
def __init__(self, pe_server: str, port: int, client_callsign: str, keep_log=False):
|
||||||
if not ax25.Address.valid_call(client_callsign):
|
if not ax25.Address.valid_call(client_callsign):
|
||||||
raise ValueError(f"Provided callsign '{client_callsign}' is invalid.")
|
raise ValueError(f"Provided callsign '{client_callsign}' is invalid.")
|
||||||
self.pe_server = pe_server
|
self.pe_server = pe_server
|
||||||
@@ -26,6 +26,8 @@ class Client:
|
|||||||
self.started = False
|
self.started = False
|
||||||
self._connection_locks = {}
|
self._connection_locks = {}
|
||||||
self.lock_locker = Lock()
|
self.lock_locker = Lock()
|
||||||
|
self.keep_log = keep_log
|
||||||
|
self.request_log = []
|
||||||
signal.signal(signal.SIGINT, self.exit_gracefully)
|
signal.signal(signal.SIGINT, self.exit_gracefully)
|
||||||
signal.signal(signal.SIGTERM, self.exit_gracefully)
|
signal.signal(signal.SIGTERM, self.exit_gracefully)
|
||||||
|
|
||||||
@@ -120,6 +122,8 @@ class Client:
|
|||||||
while datetime.datetime.now() < cutoff_date:
|
while datetime.datetime.now() < cutoff_date:
|
||||||
if conn.state.name != "CONNECTED":
|
if conn.state.name != "CONNECTED":
|
||||||
logging.error(f"Connection {conn} disconnected.")
|
logging.error(f"Connection {conn} disconnected.")
|
||||||
|
if self.keep_log:
|
||||||
|
self.request_log.append((req,None))
|
||||||
return None
|
return None
|
||||||
try:
|
try:
|
||||||
unpacked = conn.data.unpack()
|
unpacked = conn.data.unpack()
|
||||||
@@ -127,7 +131,11 @@ class Client:
|
|||||||
time.sleep(.1)
|
time.sleep(.1)
|
||||||
continue
|
continue
|
||||||
msg = Message.partial_unpack(unpacked)
|
msg = Message.partial_unpack(unpacked)
|
||||||
return Response(msg)
|
resp = Response(msg)
|
||||||
|
if self.keep_log:
|
||||||
|
self.request_log.append((req, resp))
|
||||||
|
return resp
|
||||||
|
self.request_log.append((req, None))
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def send_receive_callsign(self, req: Request, callsign: str, timeout: int = 300) -> Optional[Response]:
|
def send_receive_callsign(self, req: Request, callsign: str, timeout: int = 300) -> Optional[Response]:
|
||||||
|
|||||||
Reference in New Issue
Block a user