Implement ALTERNATE-SERVER for TURN
Categories
(Core :: WebRTC: Networking, defect, P2)
Tracking
()
Tracking | Status | |
---|---|---|
firefox90 | --- | fixed |
backlog | webrtc/webaudio+ |
People
(Reporter: ekr, Assigned: bwc)
References
(Blocks 1 open bug)
Details
(Whiteboard: [turn][fuzzing:queue:cdiehl])
Attachments
(20 files, 2 obsolete files)
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details | |
(deleted),
text/x-phabricator-request
|
Details |
Updated•12 years ago
|
Updated•12 years ago
|
Comment 1•11 years ago
|
||
Reporter | ||
Updated•11 years ago
|
Comment 2•11 years ago
|
||
Comment 3•11 years ago
|
||
Comment 4•11 years ago
|
||
Comment 5•11 years ago
|
||
Comment 6•11 years ago
|
||
Comment 7•11 years ago
|
||
Comment 8•11 years ago
|
||
Assignee | ||
Comment 9•11 years ago
|
||
Assignee | ||
Updated•11 years ago
|
Comment 10•10 years ago
|
||
Comment 11•10 years ago
|
||
Reporter | ||
Comment 12•10 years ago
|
||
Comment 13•10 years ago
|
||
Updated•9 years ago
|
Comment 14•9 years ago
|
||
Updated•9 years ago
|
Comment 15•8 years ago
|
||
Comment 16•7 years ago
|
||
Comment 17•6 years ago
|
||
Since rohan16garg@gmail.com is not working on this any more I am removing the NI.
Comment 18•4 years ago
|
||
Hi Team, Any News on this? Is it implented in firefox?
Updated•4 years ago
|
Comment 19•4 years ago
|
||
I tried a two different approaches to solving this, which involved directly re-using the stun context and some higher up. But I have come to the conclusion that bwc's review from comment #9 is still holds true.
It looks like the most sane way approaching this feature is to add some functions which can replicate a TURN server context, without the sockets in it. Then set or replace the IP address of the target TURN server in it that cloned context. And then feed this TURN server high up in the nICEr logic, and ignore the original turn context as failed.
That way we might also be able to build in loop detection, by checking for already failed TURN contexts with the same IP address etc in it.
Assignee | ||
Comment 20•4 years ago
|
||
So first, we have to figure out how we're going to test this. Because we don't necessarily have multi-homed hosts in CI, and do not have a test STUN/TURN server on the internet that we administer (and could configure to do redirects), I think the most viable option is to have some wrapper code (eg; in the NAT simulator) that will send redirect responses when the destination addr/port matches a specific value (configured with a pref, I guess).
Assignee | ||
Comment 21•4 years ago
|
||
Assignee | ||
Comment 22•3 years ago
|
||
Assignee | ||
Comment 23•3 years ago
|
||
Assignee | ||
Comment 24•3 years ago
|
||
Assignee | ||
Comment 25•3 years ago
|
||
Assignee | ||
Comment 26•3 years ago
|
||
Assignee | ||
Comment 27•3 years ago
|
||
Assignee | ||
Comment 28•3 years ago
|
||
Assignee | ||
Comment 29•3 years ago
|
||
Assignee | ||
Comment 30•3 years ago
|
||
Assignee | ||
Comment 31•3 years ago
|
||
Assignee | ||
Comment 32•3 years ago
|
||
Assignee | ||
Updated•3 years ago
|
Assignee | ||
Comment 33•3 years ago
|
||
Assignee | ||
Comment 34•3 years ago
|
||
Assignee | ||
Comment 35•3 years ago
|
||
Assignee | ||
Comment 36•3 years ago
|
||
Assignee | ||
Comment 37•3 years ago
|
||
Assignee | ||
Comment 38•3 years ago
|
||
Assignee | ||
Comment 39•3 years ago
|
||
Assignee | ||
Comment 40•3 years ago
|
||
Assignee | ||
Comment 41•3 years ago
|
||
Assignee | ||
Comment 42•3 years ago
|
||
Depends on D115275
Assignee | ||
Comment 43•3 years ago
|
||
We need this because the test TURN server does not support stun redirects where
the address changes. Even if we were to add this support to the test STUN
server, it would not be helpful in CI since it would require having additional
IP addresses, which we cannot count on since we do not control the network
configuration of those machines.
Also, the fact that the code in this patch does not support MESSAGE-INTEGRITY
allows us to test the case where it is not present in a STUN redirect. Some
deployments rely on this.
Lastly, this code supports adding multiple (or 0) ALTERNATE-SERVER fields,
which is something that the test TURN server does not support.
Depends on D115276
Assignee | ||
Comment 44•3 years ago
|
||
Depends on D115277
Assignee | ||
Comment 45•3 years ago
|
||
Depends on D115278
Assignee | ||
Comment 46•3 years ago
|
||
Depends on D115279
Assignee | ||
Comment 47•3 years ago
|
||
This substantially simplifies the task of replacing the nr_socket a TURN
context is using.
Depends on D115280
Assignee | ||
Comment 48•3 years ago
|
||
Depends on D115282
Assignee | ||
Comment 49•3 years ago
|
||
Depends on D115283
Assignee | ||
Comment 50•3 years ago
|
||
STUN/300 is only meaningful for specific STUN method types, and the handling
depends on the spec that those methods are defined in. Doing any handling in
the base stun client code is not appropriate.
Depends on D115284
Assignee | ||
Comment 51•3 years ago
|
||
Depends on D115285
Assignee | ||
Comment 52•3 years ago
|
||
Also some logging that was useful in debugging this.
Depends on D115286
Assignee | ||
Comment 53•3 years ago
|
||
Leaking test-case was dom/media/webrtc/tests/mochitests/test_peerConnection_bug825703.html
Depends on D115287
Assignee | ||
Comment 54•3 years ago
|
||
Depends on D115288
Assignee | ||
Comment 55•3 years ago
|
||
Also some indentation fixup.
Depends on D115289
Assignee | ||
Comment 56•3 years ago
|
||
Depends on D115290
Assignee | ||
Comment 57•3 years ago
|
||
Depends on D115291
Assignee | ||
Comment 58•3 years ago
|
||
Nothing used this function before this bug, so this field has never been used
anyway. We handle challenge loops with nr_turn_stun_ctx.retry_ct.
Depends on D115292
Assignee | ||
Updated•3 years ago
|
Assignee | ||
Comment 59•3 years ago
|
||
Assignee | ||
Comment 60•3 years ago
|
||
Assignee | ||
Comment 61•3 years ago
|
||
We only use this with TCP sockets.
Depends on D115293
Assignee | ||
Comment 62•3 years ago
|
||
Assignee | ||
Comment 63•3 years ago
|
||
Assignee | ||
Comment 64•3 years ago
|
||
Assignee | ||
Comment 65•3 years ago
|
||
Assignee | ||
Comment 66•3 years ago
|
||
Assignee | ||
Comment 67•3 years ago
|
||
Depends on D115829
Assignee | ||
Comment 68•3 years ago
|
||
This avoids shutdown leaks in cases where these tests are run in isolation.
Depends on D116029
Updated•3 years ago
|
Comment 69•3 years ago
|
||
Comment 70•3 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/143bfb916b26
https://hg.mozilla.org/mozilla-central/rev/2435ef0cd258
https://hg.mozilla.org/mozilla-central/rev/08808a003231
https://hg.mozilla.org/mozilla-central/rev/edaaced4f42b
https://hg.mozilla.org/mozilla-central/rev/76f4a828537e
https://hg.mozilla.org/mozilla-central/rev/8aaf855abaed
https://hg.mozilla.org/mozilla-central/rev/9dc0836dcc9b
https://hg.mozilla.org/mozilla-central/rev/86b7a16b487f
https://hg.mozilla.org/mozilla-central/rev/286b02c1eb23
https://hg.mozilla.org/mozilla-central/rev/2adc8298e2fa
https://hg.mozilla.org/mozilla-central/rev/97a666f07a57
https://hg.mozilla.org/mozilla-central/rev/5845d6f99b76
https://hg.mozilla.org/mozilla-central/rev/ea6463ca6695
https://hg.mozilla.org/mozilla-central/rev/4c540c962a19
https://hg.mozilla.org/mozilla-central/rev/b8158a2544e1
https://hg.mozilla.org/mozilla-central/rev/c858c4bbd547
https://hg.mozilla.org/mozilla-central/rev/c290554ad7e4
https://hg.mozilla.org/mozilla-central/rev/798446339428
https://hg.mozilla.org/mozilla-central/rev/96849c0ceebe
https://hg.mozilla.org/mozilla-central/rev/e643486292f0
Description
•