mirror of
https://github.com/varun-r-mallya/py-libp2p.git
synced 2026-02-11 07:30:55 +00:00
Feat/587-circuit-relay (#611)
* feat: implemented setup of circuit relay and test cases * chore: remove test files to be rewritten * added 1 test suite for protocol * added 1 test suite for discovery * fixed protocol timeouts and message types to handle reservations and stream operations. * Resolved merge conflict in libp2p/tools/utils.py by combining timeout approach with retry mechanism * fix: linting issues * docs: updated documentation with circuit-relay * chore: added enums, improved typing, security and examples * fix: created proper __init__ file to ensure importability * fix: replace transport_opt with listen_addrs in examples, fixed typing and improved code * fix type checking issues across relay module and test suite * regenerated circuit_pb2 file protobuf version 3 * fixed circuit relay example and moved imports to top in test_security_multistream * chore: moved imports to the top * chore: fixed linting of test_circuit_v2_transport.py --------- Co-authored-by: Manu Sheel Gupta <manusheel.edu@gmail.com>
This commit is contained in:
@ -13,6 +13,8 @@ from libp2p.security.secio.transport import ID as SECIO_PROTOCOL_ID
|
||||
from libp2p.security.secure_session import (
|
||||
SecureSession,
|
||||
)
|
||||
from libp2p.stream_muxer.mplex.mplex import Mplex
|
||||
from libp2p.stream_muxer.yamux.yamux import Yamux
|
||||
from tests.utils.factories import (
|
||||
host_pair_factory,
|
||||
)
|
||||
@ -47,9 +49,28 @@ async def perform_simple_test(assertion_func, security_protocol):
|
||||
assert conn_0 is not None, "Failed to establish connection from host0 to host1"
|
||||
assert conn_1 is not None, "Failed to establish connection from host1 to host0"
|
||||
|
||||
# Perform assertion
|
||||
assertion_func(conn_0.muxed_conn.secured_conn)
|
||||
assertion_func(conn_1.muxed_conn.secured_conn)
|
||||
# Extract the secured connection from either Mplex or Yamux implementation
|
||||
def get_secured_conn(conn):
|
||||
muxed_conn = conn.muxed_conn
|
||||
# Direct attribute access for known implementations
|
||||
has_secured_conn = hasattr(muxed_conn, "secured_conn")
|
||||
if isinstance(muxed_conn, (Mplex, Yamux)) and has_secured_conn:
|
||||
return muxed_conn.secured_conn
|
||||
# Fallback to _connection attribute if it exists
|
||||
elif hasattr(muxed_conn, "_connection"):
|
||||
return muxed_conn._connection
|
||||
# Last resort - warn but return the muxed_conn itself for type checking
|
||||
else:
|
||||
print(f"Warning: Cannot find secured connection in {type(muxed_conn)}")
|
||||
return muxed_conn
|
||||
|
||||
# Get secured connections for both peers
|
||||
secured_conn_0 = get_secured_conn(conn_0)
|
||||
secured_conn_1 = get_secured_conn(conn_1)
|
||||
|
||||
# Perform assertion on the secured connections
|
||||
assertion_func(secured_conn_0)
|
||||
assertion_func(secured_conn_1)
|
||||
|
||||
|
||||
@pytest.mark.trio
|
||||
|
||||
Reference in New Issue
Block a user