This is a reland of commit 3f3f991c03bb4073a06da37c822daaa9deed9307
Original change's description:
> Let port allocator create ice tie breaker
>
> Moves the responsibility for creating the ICE tie breaker from the JSEP transport controller to the port allocator. This will allow a future change to separate the ICE tie breaker (which is sent over the network and hence known to the peer) from the "port allocator random" (that is used to seed the ICE candidate foundation crc32 checksum) as an implementation detail.
>
> BUG=webrtc:14626
>
> Change-Id: I3a9a0980238d6108b1b154f45de2975b08793b1c
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/281660
> Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> Commit-Queue: Philipp Hancke <phancke@microsoft.com>
> Cr-Commit-Position: refs/heads/main@{#41707}
Bug: webrtc:14626
Change-Id: Id3c8f257c5611958551bd66d7ce7a885bf8ba2f9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/339320
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Philipp Hancke <phancke@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#41720}
This reverts commit 3f3f991c03bb4073a06da37c822daaa9deed9307.
Reason for revert: API breaking change on PortAllocatorSession.
Is it possible to duplicate the ctor of PortAllocatorSession and remove
the deprecated one (the one without ice_tiebreaker) in another CL?
Original change's description:
> Let port allocator create ice tie breaker
>
> Moves the responsibility for creating the ICE tie breaker from the JSEP transport controller to the port allocator. This will allow a future change to separate the ICE tie breaker (which is sent over the network and hence known to the peer) from the "port allocator random" (that is used to seed the ICE candidate foundation crc32 checksum) as an implementation detail.
>
> BUG=webrtc:14626
>
> Change-Id: I3a9a0980238d6108b1b154f45de2975b08793b1c
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/281660
> Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> Commit-Queue: Philipp Hancke <phancke@microsoft.com>
> Cr-Commit-Position: refs/heads/main@{#41707}
Bug: webrtc:14626
Change-Id: I342c9a96ac1909244aedea6a7779f5682088a5fc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/339280
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Owners-Override: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41715}
Moves the responsibility for creating the ICE tie breaker from the JSEP transport controller to the port allocator. This will allow a future change to separate the ICE tie breaker (which is sent over the network and hence known to the peer) from the "port allocator random" (that is used to seed the ICE candidate foundation crc32 checksum) as an implementation detail.
BUG=webrtc:14626
Change-Id: I3a9a0980238d6108b1b154f45de2975b08793b1c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/281660
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Philipp Hancke <phancke@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#41707}
Rework transport_description_factory to only have non-DTLS mode for
testing, and rewrite tests accordingly.
Bug: webrtc:11066, chromium:804275
Change-Id: Ie7d477c4331c975e4e0a3034fbbb749ed9009446
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/336880
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41697}
This completes the breakup of the rtc_p2p target.
Remaining cleanup is to delete the rtc_p2p target and make clients
depend on the base targets.
Bug: webrtc:15796
Change-Id: I67bbeee9abf0bb663283ec3420a9a00bd3a2436a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/338340
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41683}
Subsequently also tighten IceCandidateType error checking.
The Candidate type in `cricket` should be using something similar
(currently using a string for the type), so I'm making sure that
types that we have already, align with where we'd like to be overall.
Possibly we can move IceCandidateType to where Candidate is defined.
Bug: none
Change-Id: Iffeba7268f2a393e18a5f33249efae46e6e08252
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/335980
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41640}
This is a follow up to a previous CL that removed direct dependency on
the `cricket::` string globals.
Bug: none
Change-Id: I4d839a36739fc4694ce81b72ee036e83dae580df
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/335420
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41623}
This CL does:
- Run IWYU on the relevant elements
- Make connection depend on port_interface, not port
- Make port_allocator depend only on port
- Move some constants from port.h into p2p_constants
This allows a dependency graph without ugly groups.
Bug: webrtc:15796
Change-Id: I0ff0e14eacdfe3b230a8d84902a78eb062d6c8af
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/336320
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41618}
This CL splits many of the source files in p2p:rtc_p2p into individual
compile targets.
One target - connection_and_port - was left with multiple source files
because it was too tangled to detangle at once.
Bug: webrtc:15796
Change-Id: I607417e5945306ef64335f40a0ae50f0d15dee6f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/335881
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41611}
This isn't a problem right now but will be when we move away from
using a free string as the storage type.
Bug: none
Change-Id: I12c2de416f9fce13a8284e7d36fa3c2081453299
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/335880
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Auto-Submit: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41602}
This removes several references across the code base that depended on
the global string constants.
Bug: none
Change-Id: I007bd4b195c35261039f655f1a8f52e632c3691f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/335320
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41578}
Add is_* getters to check candidate type without using the string constants directly.
Bug: none
Change-Id: I82c83c032a30a1c67de2d5d6168ecc04e0254318
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/334800
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41568}
observed in a Teams call as "turn::3478?transport=udp".
This works for TURN TCP candidates but not for UDP which turned out to be a timing issue as the server_address' hostname got cleared by DNS resolution.
Also add [] around IPv6 addresses.
Bug: webrtc:15770
Change-Id: I14ba4fb7088d5a75b1d61739fae2b165be910b75
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/333781
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Philipp Hancke <phancke@microsoft.com>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41537}
This will be done by splitting the use of variables values prior to performing std:move
Bug: webrtc:15771
Change-Id: Ia88e733c3a4edf729e440295ae271d3cd9926ec5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/334461
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41532}
To remove histogram WebRTC.PeerConnection.IceRegatheringReason expired
in M77, this CL removes the supporting codebase for it.
The removal of the histogram itself will be performed in crrev.com/c/5132272 .
This CL is a part of Chrome Code Health Rotation project.
Bug: chromium:1507997
Change-Id: I856e62920578e80970ca2453c86a588141bf120d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/331880
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Taiyo Mizuhashi <taiyo@chromium.org>
Cr-Commit-Position: refs/heads/main@{#41436}
To remove histogram WebRTC.PeerConnection.IceRestartState expired in
M77, this CL removes the supporting codebase for it.
The removal of the histogram itself will be performed in crrev.com/c/5131874.
This CL is a part of Chrome Code Health Rotation project.
Bug: chromium:1507998
Change-Id: I0451b6fbe2ae46a9c9d9be7c0302f7f01117af97
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/331881
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Taiyo Mizuhashi <taiyo@chromium.org>
Cr-Commit-Position: refs/heads/main@{#41429}
This completes the conversion of ByteBufferReader and ByteBufferWriter
to uint8_t.
No-Try: True
Bug: webrtc:15661
Change-Id: I4152a8a4fd2462282d4107b3c2eed19acc8b29b0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/331640
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41403}
and make follow-on changes.
Bug: webrtc:15665
Change-Id: Ice646f88ba5a09d6a8d9ce70415d8a14d7050d3c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/329781
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41393}
Instead of using raw pointers.
Also, ensure callbacks are registered on the correct thread.
Nat servers are test only code.
Bug: webrtc:11943
Change-Id: Ib70a5966acb512f1a07212a07aaedab70aa20f9b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/331260
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Jonas Oreland <jonaso@webrtc.org>
Reviewed-by: Jonas Oreland <jonaso@google.com>
Cr-Commit-Position: refs/heads/main@{#41372}
This is a replacement for `connections()`, which is const-qualified but
returns a `rtc::ArrayView<const cricket::Connection*>`. Unfortunately,
this is a view of mutable pointers to `const cricket::Connection`
objects: this means that the pointers in `IceControllerInterface`'s
backing store can be reassigned.
Returning `rtc::ArrayView<const cricket::Connection* const>` is more
consistent with how a view returned from a const-qualified method should
behave. Unfortunately, there are downstream overrides of this method, so
instead of just fixing this outright, add a new method with the correct
return type. Once downstream is updated, the old method can then be
removed.
Bug: chromium:1409870, webrtc:15702
Change-Id: I3d8f0c2f0bcf4c393ee63959cb61761ac00a28ab
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/329962
Reviewed-by: Jonas Oreland <jonaso@google.com>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/main@{#41318}
This reverts commit ad631f0d353011b8d4282577310abb48bf60ff67.
Reason for revert: error: virtual function 'connections' has a different return type ('ArrayView<const cricket::Connection *>') than the function it overrides (which has return type 'ArrayView<const Connection *const>')
Original change's description:
> Correctly const-qualify return value of IceControllerInterface::connections().
>
> This is intended to be a read-only view across a container of const
> Connection*, but due to the missing const, elements of the container
> could actually be re-assigned through the ArrayView.
>
> This was discovered when trying to roll Googletest, since Googletest was
> fixed to const-qualify converting actions:
> cbca6bc395
>
> Bug: chromium:1409870
> Change-Id: Iadd3abe6807111987e422b8510a23f2a4f7026ed
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/329481
> Auto-Submit: Daniel Cheng <dcheng@chromium.org>
> Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> Commit-Queue: Harald Alvestrand <hta@webrtc.org>
> Commit-Queue: Daniel Cheng <dcheng@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#41300}
Bug: chromium:1409870
Change-Id: Id0026eb7727a3d1408045d0040b3b080cca07832
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/329762
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Manashi Sarkar <manashi@google.com>
Cr-Commit-Position: refs/heads/main@{#41307}
This is intended to be a read-only view across a container of const
Connection*, but due to the missing const, elements of the container
could actually be re-assigned through the ArrayView.
This was discovered when trying to roll Googletest, since Googletest was
fixed to const-qualify converting actions:
cbca6bc395
Bug: chromium:1409870
Change-Id: Iadd3abe6807111987e422b8510a23f2a4f7026ed
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/329481
Auto-Submit: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/main@{#41300}
To be submitted after downstream usage has been removed, but no earlier than December 1, 2023.
Bug: webrtc:12598
Change-Id: Id9acbac591c48c0c5883fe8f06cf6a68471b70f0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/323004
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41290}
This allows both the signal and the callback to be used.
Bug: webrtc:11943
Change-Id: I89460126d415520295c7e7d4ee440156a6e9e5ab
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/329140
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41282}
This reverts commit 264547d084d8625c60a31b15843779173d3c95b8.
Refactor AsyncTcpSocket(s) to use rtc::ReceivedPackets
Patchset 1 contains original cl.
Newer patchsets contains fix of the problem from pathset 1.
Bug: webrtc:15368, webrtc:11943
Change-Id: Ib8c4c06daf502a5dec8c31beea78eacac8c3c644
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/328820
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Jonas Oreland <jonaso@google.com>
Cr-Commit-Position: refs/heads/main@{#41255}
with an one-user callback.
Bug: webrtc:11943
Change-Id: Ia61c7811f0058fa7238d47ef13fadfd547f052ce
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/328900
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41250}
with a callback function.
Bug: webrtc:11943
Change-Id: Ieed740a36f86be6dd45d6a495cc4fd023ea98477
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/328862
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41249}
This reverts commit 211daadb6658630346111c9a8ea8f67cba997952.
Reason for revert: AsyncStunTCPSocket::ProcessInput , Bug introduced, not reading length of each stun message in a tcp fetch
Original change's description:
> Refactor AsyncTcpSocket(s) to use rtc::ReceivedPackets
>
> Instead of using raw pointers.
>
> Bug: webrtc:15368, webrtc:11943
> Change-Id: Id28a0a4fc3d00680e972bd95e0c60344c7886892
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/328500
> Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> Commit-Queue: Per Kjellander <perkj@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#41237}
Bug: webrtc:15368, webrtc:11943
Change-Id: Id15261579a61dd200e7c3b1a013877575b87db2e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/328760
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41245}
Instead of using raw pointers.
Bug: webrtc:15368, webrtc:11943
Change-Id: Id28a0a4fc3d00680e972bd95e0c60344c7886892
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/328500
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41237}
StunServer is updated to ensure registring for receiving packet from the socket is happening on the same thread as where the packets are recevied.
Bug: webrtc:15368, webrtc:11943
Change-Id: I94cc3a47278d5489de7f170c8d43015d1551c437
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/328120
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Jonas Oreland <jonaso@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41219}
Also make it more convenient to use uint8_t array view for
interfacing to the class.
Bug: webrtc:15665
Change-Id: Ib671b5add79a48004133a6ecd99429534f7de1de
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/328140
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41212}
Change Stun, Turn, TCP and UDP ports to use Socket::RegisterReceivedPacketCallback and be notified of received packets using the rtc::ReceivedPacket class.
Change-Id: I7eba2ffdd83ae6f6181f765474aab7c57ff25507
Bug: webrtc:15368, webrtc:11943
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/327941
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Jonas Oreland <jonaso@google.com>
Cr-Commit-Position: refs/heads/main@{#41195}
This is done instead of directly using AsyncPacketSocket::SignalReceived.
Bug: webrtc:15368, webrtc:11943
Change-Id: I5671e66b270355188b1252138eced8e6c78ba7ad
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/327521
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41180}
This cl introduce RegisterReceivedPacketCallback and
DeregisterReceivedPacketCallback that will be used to replace AsyncPacketSocket::SignalReadPacket
A "proof of concept" cl is here: https://webrtc-review.googlesource.com/c/src/+/327324
Bug: webrtc:15368
Change-Id: I07e4f564dc8420d78e542991689778d8531225df
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/327325
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41164}
Deprecate old version but keep it for the time being.
Bug: webrtc:15368
Change-Id: Icbd2078a00d877ff948a2441c2027a12c85d4f2e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/326104
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41112}
Despite being in an "internal" header, IceTransportInternal is already
exported and used outside WebRTC. IceConfig is a counterpart to
IceTransportInternal, so they should be either exported or not exported
together.
See
https://chromium-review.googlesource.com/c/chromium/src/+/4980065/comment/a3a77a56_6d6c2c84/
Bug: chromium:1394755, webrtc:15609
Change-Id: I750d0de81da6ad50fade15d8f7cc57b1ca89e4be
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/325220
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: David Benjamin <davidben@webrtc.org>
Auto-Submit: David Benjamin <davidben@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41029}
RegisterReceivedPacketCallback is used instead of
sigslot::SignalReadPacket. The callback use a new data class ReceivedPacket that combine meta
data and packet payload from a received packet.
This is the first step in an attempt to cleanup the data types used in
the packet receive pipeline.
Eventually, the ReceivedPacket class can contain more meta data such as
ECN information.
Bug: webrtc:11943,webrtc:15368
Change-Id: I984c561b9262fe4aa00176529bd8d901adf66640
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/325060
Reviewed-by: Jonas Oreland <jonaso@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41021}
This patch is a follow up to https://webrtc-review.googlesource.com/c/src/+/260943
which made it possible to destroy a Port before a Connection (on that
port).
This patch "reverses" this, by adding RTC_DHECK, and fixes the Port
destructor to release the Connections before invalidating the WeakPtr<>.
Currently there are no known occurrences where a Connection is destroyed after it's Port is. But prior to the change in Port destructor, a bunch unit tests failed on the newly added DCHECKs.
In addition:
a) modify StunReqquestManager to remove entry from hash before calling callback. This makes it possible for callback to modify (clear) hash.
b) clear pending requests when disconnecting from port, "should not be needed", depends on a)
c) add a getter for pending_delete()
Bug: webrtc:13892, webrtc:13865
Change-Id: I5d18f2db8d93b7cc25d18bd620063589ee9257c9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/322861
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Jonas Oreland <jonaso@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40907}