mirror of
https://github.com/varun-r-mallya/py-libp2p.git
synced 2026-02-12 16:10:57 +00:00
PR feedbacks
- Move exceptions to exceptions.py - Raise `UpgradeFailure` in upgrader - Refine the try/catch for upgraders in swarm
This commit is contained in:
@ -10,5 +10,9 @@ class SecurityUpgradeFailure(UpgradeFailure):
|
||||
pass
|
||||
|
||||
|
||||
class MuxerUpgradeFailure(UpgradeFailure):
|
||||
pass
|
||||
|
||||
|
||||
class HandshakeFailure(BaseLibp2pError):
|
||||
pass
|
||||
|
||||
@ -3,11 +3,17 @@ from typing import Mapping
|
||||
from libp2p.network.connection.raw_connection_interface import IRawConnection
|
||||
from libp2p.network.typing import GenericProtocolHandlerFn
|
||||
from libp2p.peer.id import ID
|
||||
from libp2p.protocol_muxer.exceptions import MultiselectClientError, MultiselectError
|
||||
from libp2p.security.secure_conn_interface import ISecureConn
|
||||
from libp2p.security.secure_transport_interface import ISecureTransport
|
||||
from libp2p.security.security_multistream import SecurityMultistream
|
||||
from libp2p.stream_muxer.abc import IMuxedConn
|
||||
from libp2p.stream_muxer.muxer_multistream import MuxerClassType, MuxerMultistream
|
||||
from libp2p.transport.exceptions import (
|
||||
HandshakeFailure,
|
||||
MuxerUpgradeFailure,
|
||||
SecurityUpgradeFailure,
|
||||
)
|
||||
from libp2p.typing import TProtocol
|
||||
|
||||
from .listener_interface import IListener
|
||||
@ -39,10 +45,20 @@ class TransportUpgrader:
|
||||
"""
|
||||
Upgrade conn to a secured connection
|
||||
"""
|
||||
if initiator:
|
||||
return await self.security_multistream.secure_outbound(raw_conn, peer_id)
|
||||
|
||||
return await self.security_multistream.secure_inbound(raw_conn)
|
||||
try:
|
||||
if initiator:
|
||||
return await self.security_multistream.secure_outbound(
|
||||
raw_conn, peer_id
|
||||
)
|
||||
return await self.security_multistream.secure_inbound(raw_conn)
|
||||
except (MultiselectError, MultiselectClientError) as error:
|
||||
raise SecurityUpgradeFailure(
|
||||
"failed to negotiate the secure protocol"
|
||||
) from error
|
||||
except HandshakeFailure as error:
|
||||
raise SecurityUpgradeFailure(
|
||||
"handshake failed when upgrading to secure connection"
|
||||
) from error
|
||||
|
||||
async def upgrade_connection(
|
||||
self,
|
||||
@ -53,6 +69,11 @@ class TransportUpgrader:
|
||||
"""
|
||||
Upgrade secured connection to a muxed connection
|
||||
"""
|
||||
return await self.muxer_multistream.new_conn(
|
||||
conn, generic_protocol_handler, peer_id
|
||||
)
|
||||
try:
|
||||
return await self.muxer_multistream.new_conn(
|
||||
conn, generic_protocol_handler, peer_id
|
||||
)
|
||||
except (MultiselectError, MultiselectClientError) as error:
|
||||
raise MuxerUpgradeFailure(
|
||||
"failed to negotiate the multiplexer protocol"
|
||||
) from error
|
||||
|
||||
Reference in New Issue
Block a user