From 811c6082131b07c528dcaefb60315691b8d31002 Mon Sep 17 00:00:00 2001 From: Michael Woods Date: Sat, 15 Feb 2025 15:47:28 -0500 Subject: [PATCH] Adding connection wait for connected status to new_connection. --- src/packetserver/client/__init__.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/packetserver/client/__init__.py b/src/packetserver/client/__init__.py index 98c2e36..8269fc6 100644 --- a/src/packetserver/client/__init__.py +++ b/src/packetserver/client/__init__.py @@ -50,8 +50,12 @@ class Client: if not ax25.Address.valid_call(dest): raise ValueError(f"Provided destination callsign '{dest}' is invalid.") conn = self.app.open_connection(0, self.callsign, dest) - logging.debug("Allowing connection to stabilize for 3 seconds") - time.sleep(8) + while conn.state.name != "CONNECTED": + if conn.state.name in ['DISCONNECTED', 'DISCONNECTING']: + raise RuntimeError("Connection disconnected unexpectedly.") + time.sleep(.1) + logging.debug("Allowing connection to stabilize for 10 seconds") + time.sleep(10) return conn def send_and_receive(self, req: Request, conn: PacketServerConnection, timeout: int = 300) -> Optional[Response]: