From 72b8dd5facde10ba181fa61564e073275bd69a50 Mon Sep 17 00:00:00 2001 From: Nomads_Reach <144523850+NomadsReach@users.noreply.github.com> Date: Sun, 16 Aug 2026 00:27:56 -0400 Subject: [PATCH] Test GNS remote endpoint preservation --- server/tests/test_gns_transport.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/server/tests/test_gns_transport.py b/server/tests/test_gns_transport.py index 75158b1..c5f2080 100644 --- a/server/tests/test_gns_transport.py +++ b/server/tests/test_gns_transport.py @@ -5,7 +5,7 @@ from collections import deque import pytest -from gns_transport import EventType, GnsServerTransport, GnsTransportError, SendResult +from gns_transport import EventType, GnsServerTransport, GnsTransportError, RemoteEndpoint, SendResult class FakeFunction: @@ -23,6 +23,7 @@ class FakeNativeBridge: self.events = deque() self.sent = [] self.disconnects = [] + self.endpoints = {42: (0x7F000001, 54321)} self.destroyed = False self.co_gns_server_create = FakeFunction(self._create) self.co_gns_server_destroy = FakeFunction(self._destroy) @@ -31,6 +32,7 @@ class FakeNativeBridge: self.co_gns_server_poll = FakeFunction(self._poll) self.co_gns_server_send = FakeFunction(self._send) self.co_gns_server_disconnect = FakeFunction(self._disconnect) + self.co_gns_server_remote_ipv4 = FakeFunction(self._remote_ipv4) def _create(self, host, port, out_handle, error_buffer, error_size): assert host == b"127.0.0.1" @@ -66,6 +68,15 @@ class FakeNativeBridge: self.disconnects.append((connection_id, reason, debug)) return 1 + def _remote_ipv4(self, handle, connection_id, out_ipv4, out_port): + endpoint = self.endpoints.get(connection_id) + if endpoint is None: + return 0 + ipv4, port = endpoint + ctypes.cast(out_ipv4, ctypes.POINTER(ctypes.c_uint32))[0] = ipv4 + ctypes.cast(out_port, ctypes.POINTER(ctypes.c_uint16))[0] = port + return 1 + def test_wrapper_polls_message_events_without_line_framing(): native = FakeNativeBridge() @@ -75,6 +86,8 @@ def test_wrapper_polls_message_events_without_line_framing(): transport = GnsServerTransport("127.0.0.1", 0, native_library=native) assert transport.local_port == 7777 assert transport.connection_count == 2 + assert transport.remote_endpoint(42) == RemoteEndpoint("127.0.0.1", 54321) + assert transport.remote_endpoint(99) is None connected = transport.poll() assert connected is not None