From 1440bce2a173f2ff11d62fc9ee9c9fe75956733f Mon Sep 17 00:00:00 2001 From: Joe <85746415+WB3IHY@users.noreply.github.com> Date: Sat, 16 May 2026 11:23:43 -0400 Subject: [PATCH] fix: parse host:port correctly in TCP interface retry (#312) --- modules/system.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/modules/system.py b/modules/system.py index 79f3426..f723013 100644 --- a/modules/system.py +++ b/modules/system.py @@ -2327,8 +2327,18 @@ async def retry_interface(nodeID): logger.debug(f"System: Retrying Interface{nodeID} Serial on port: {globals().get(f'port{nodeID}')}") globals()[f'interface{nodeID}'] = meshtastic.serial_interface.SerialInterface(globals().get(f'port{nodeID}')) elif interface_type == 'tcp': - logger.debug(f"System: Retrying Interface{nodeID} TCP on hostname: {globals().get(f'hostname{nodeID}')}") - globals()[f'interface{nodeID}'] = meshtastic.tcp_interface.TCPInterface(globals().get(f'hostname{nodeID}')) + host = globals().get(f'hostname{nodeID}', '127.0.0.1') + port = 4403 + if isinstance(host, str) and ':' in host: + maybe_host, maybe_port = host.rsplit(':', 1) + if maybe_port.isdigit(): + host = maybe_host + try: + port = int(maybe_port) + except ValueError: + port = 4403 + logger.debug(f"System: Retrying Interface{nodeID} TCP on hostname: {host}:{port}") + globals()[f'interface{nodeID}'] = meshtastic.tcp_interface.TCPInterface(hostname=host, portNumber=port) elif interface_type == 'ble': logger.debug(f"System: Retrying Interface{nodeID} BLE on mac: {globals().get(f'mac{nodeID}')}") globals()[f'interface{nodeID}'] = meshtastic.ble_interface.BLEInterface(globals().get(f'mac{nodeID}'))