You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Due to the nature of the TLS 1.3 handshake, it will look like a connection attempt succeed for the client even if the server rejects the client's certificate (for whatever reason).
If the server dislikes the client's certificate, it will close the connection immediately. However, at this point, the client has already completed the handshake, so the swarm doesn't register this as a failed dial, and doesn't feed that into the dial backoff. This will lead us to dial the same address again. We even do so explicitly in the host:
Due to the nature of the TLS 1.3 handshake, it will look like a connection attempt succeed for the client even if the server rejects the client's certificate (for whatever reason).
The handshake looks like this:
If the server dislikes the client's certificate, it will close the connection immediately. However, at this point, the client has already completed the handshake, so the swarm doesn't register this as a failed dial, and doesn't feed that into the dial backoff. This will lead us to dial the same address again. We even do so explicitly in the host:
go-libp2p/p2p/host/basic/basic_host.go
Lines 611 to 626 in 4ad3734
Maybe we should use a
NoDial
context on theNewStream
call?This will require us to send error codes: libp2p/specs#479.
The text was updated successfully, but these errors were encountered: