-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ICE connectivity checks are made for deselected network types #2782
Comments
I am not sure how this happened! We have a check that matches your exact logic here |
Assert that a remote Passive TCP candidate doesn't cause a TCP connection to be started. Resolves pion/webrtc#2782
Assert that a remote Passive TCP candidate doesn't cause a TCP connection to be started. Resolves pion/webrtc#2782
@Sean-Der - the issue, I think, is that the logic doesn't differentiate between TCP4 and TCP6 candidates. So for example, if only TCP4 is enabled in the network types, we still end up generating TCP6 local candidates and doing connectivity checks on them if the remote answers with TCP6 candidates, even though we (correctly) never nominate them. Does this make sense? |
Before if a user disabled TCPv6 (but enabled TCPv4) we would incorrectly start TCP connections over TCPv6 still. Resolves pion/webrtc#2782
@adriancable oof I missed that detail. I was able to reproduce with a test, merging now! |
@Sean-Der - great! Your change looks good to me. |
Example - I set things up like this:
But then see things like this:
As expected, the TCP6 candidate pairs never get nominated. But why are we even doing connectivity checks on them when we are excluding TCP6 via
SetNetworkTypes
?Edit to add: I think there is a logic error in
addRemotePassiveTCPCandidate
inice/agent.go
. Right now it has:But this doesn't check that
remoteCandidate.NetworkType()
is ina.networkTypes
. So we probably want to add something like this at the beginning ofaddRemotePassiveTCPCandidate
:The text was updated successfully, but these errors were encountered: