aboutsummaryrefslogtreecommitdiffstats
path: root/packages/meshbay-node/src/meshbay_node/transport/quic_client.py
diff options
context:
space:
mode:
Diffstat (limited to 'packages/meshbay-node/src/meshbay_node/transport/quic_client.py')
-rw-r--r--packages/meshbay-node/src/meshbay_node/transport/quic_client.py17
1 files changed, 10 insertions, 7 deletions
diff --git a/packages/meshbay-node/src/meshbay_node/transport/quic_client.py b/packages/meshbay-node/src/meshbay_node/transport/quic_client.py
index 6041fef..a2220ff 100644
--- a/packages/meshbay-node/src/meshbay_node/transport/quic_client.py
+++ b/packages/meshbay-node/src/meshbay_node/transport/quic_client.py
@@ -100,16 +100,18 @@ class QuicChunkClient:
jwt_token: str,
gek: bytes,
pk_node_b64: str,
+ local_port: int = 0, # 0 = OS choisit; spécifier pour hole punching Port-Restricted
):
- self._host = host
- self._port = port
- self._jwt_token = jwt_token
- self._gek = gek
- self._pk_node = Ed25519PublicKey.from_public_bytes(
+ self._host = host
+ self._port = port
+ self._jwt_token = jwt_token
+ self._gek = gek
+ self._local_port = local_port
+ self._pk_node = Ed25519PublicKey.from_public_bytes(
base64.b64decode(pk_node_b64))
self._proto: _MNPClientProtocol | None = None
- self._cm = None
- self._ctrl_stream = 0 # stream 0 = control/handshake
+ self._cm = None
+ self._ctrl_stream = 0
async def __aenter__(self):
await self.connect()
@@ -129,6 +131,7 @@ class QuicChunkClient:
self._host, self._port,
configuration=config,
create_protocol=_MNPClientProtocol,
+ local_port=self._local_port, # 0 = aléatoire; local_port=X pour hole punching
)
self._proto = await self._cm.__aenter__()