From 7127f342a90a095f678d0c007f4859c1ae67f05b Mon Sep 17 00:00:00 2001 From: "Piotr (Peter) Slatala" Date: Fri, 9 Nov 2018 08:37:19 -0800 Subject: [PATCH] Signal Network route change in fake ice. Fake Ice currently does not signal the network route change. Also, it is not aware of the network thread, so added a setter for a network thread. Bug: None Change-Id: I25326282f32d36229422eca7368b53ee7b52ec72 Reviewed-on: https://webrtc-review.googlesource.com/c/110363 Commit-Queue: Peter Slatala Reviewed-by: Qingsi Wang Reviewed-by: Bjorn Mellem Cr-Commit-Position: refs/heads/master@{#25585} --- p2p/base/fakeicetransport.h | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/p2p/base/fakeicetransport.h b/p2p/base/fakeicetransport.h index 652e69de70..88afc382ec 100644 --- a/p2p/base/fakeicetransport.h +++ b/p2p/base/fakeicetransport.h @@ -23,8 +23,13 @@ namespace cricket { class FakeIceTransport : public IceTransportInternal { public: - explicit FakeIceTransport(const std::string& name, int component) - : name_(name), component_(component) {} + explicit FakeIceTransport(const std::string& name, + int component, + rtc::Thread* network_thread = nullptr) + : name_(name), + component_(component), + network_thread_(network_thread ? network_thread + : rtc::Thread::Current()) {} ~FakeIceTransport() override { if (dest_ && dest_->dest_ == this) { dest_->dest_ = nullptr; @@ -239,6 +244,8 @@ class FakeIceTransport : public IceTransportInternal { } void SetNetworkRoute(absl::optional network_route) { network_route_ = network_route; + network_thread_->Invoke( + RTC_FROM_HERE, [this] { SignalNetworkRouteChanged(network_route_); }); } private: @@ -295,6 +302,7 @@ class FakeIceTransport : public IceTransportInternal { absl::optional network_route_; std::map socket_options_; rtc::CopyOnWriteBuffer last_sent_packet_; + rtc::Thread* const network_thread_; }; } // namespace cricket