From 604427b8753d635616e3066c3e779fdd33e2185c Mon Sep 17 00:00:00 2001 From: Guido Urdaneta Date: Mon, 9 Oct 2017 09:53:49 +0000 Subject: [PATCH] Revert "TurnCustomizer - an interface for modifying stun messages sent by TurnPort" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit b23ed7f1af467a228cbdc63e839cac8856e9df8d. Reason for revert: Breaks Chromium FYI build Sample error log: ../../remoting/test/fake_port_allocator.cc:52:7: error: no matching constructor for initialization of 'cricket::BasicPortAllocator' : BasicPortAllocator(network_manager, socket_factory), ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../third_party/webrtc/p2p/client/basicportallocator.h:32:12: note: candidate constructor not viable: requires single argument 'network_manager', but 2 arguments were provided explicit BasicPortAllocator(rtc::NetworkManager* network_manager); ^ ../../third_party/webrtc/p2p/client/basicportallocator.h:27:7: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 2 were provided class BasicPortAllocator : public PortAllocator { ^ ../../third_party/webrtc/p2p/client/basicportallocator.h:29:3: note: candidate constructor not viable: requires 3 arguments, but 2 were provided BasicPortAllocator(rtc::NetworkManager* network_manager, ^ ../../third_party/webrtc/p2p/client/basicportallocator.h:33:3: note: candidate constructor not viable: requires 3 arguments, but 2 were provided BasicPortAllocator(rtc::NetworkManager* network_manager, ^ ../../third_party/webrtc/p2p/client/basicportallocator.h:36:3: note: candidate constructor not viable: requires 5 arguments, but 2 were provided BasicPortAllocator(rtc::NetworkManager* network_manager, Original change's description: > TurnCustomizer - an interface for modifying stun messages sent by TurnPort > > This patch adds an interface that allows modification of stun messages > sent by TurnPort. A user can inject a TurnCustomizer on the RTCConfig > and the TurnCustomizer will be invoked by TurnPort before sending > message. This allows user to e.g add custom attributes as described > in rtf5389. > > BUG=webrtc:8313 > > Change-Id: Ibf5cc10af84c57288f1eb4c578ca064611a769f1 > Reviewed-on: https://webrtc-review.googlesource.com/4781 > Commit-Queue: Jonas Oreland > Reviewed-by: Sami Kalliomäki > Reviewed-by: Taylor Brandstetter > Cr-Commit-Position: refs/heads/master@{#20197} TBR=deadbeef@webrtc.org,sakal@webrtc.org,jonaso@webrtc.org Change-Id: I624efb22f6e3ceac1b2ff8af1ec47e4cfdde9140 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: webrtc:8313 Reviewed-on: https://webrtc-review.googlesource.com/7680 Reviewed-by: Guido Urdaneta Commit-Queue: Guido Urdaneta Cr-Commit-Position: refs/heads/master@{#20199} --- api/BUILD.gn | 1 - api/peerconnectioninterface.h | 7 - api/turncustomizer.h | 46 ------ p2p/BUILD.gn | 1 - p2p/base/port_unittest.cc | 3 +- p2p/base/portallocator.cc | 5 +- p2p/base/portallocator.h | 13 +- p2p/base/stun.cc | 25 +-- p2p/base/stunrequest.cc | 4 - p2p/base/stunrequest.h | 3 - p2p/base/testturncustomizer.h | 57 ------- p2p/base/turnport.cc | 38 +---- p2p/base/turnport.h | 29 +--- p2p/base/turnport_unittest.cc | 150 +----------------- p2p/base/turnserver.cc | 7 - p2p/base/turnserver.h | 15 -- p2p/client/basicportallocator.cc | 22 +-- p2p/client/basicportallocator.h | 4 +- pc/peerconnection.cc | 18 +-- pc/peerconnection.h | 4 +- pc/peerconnection_integrationtest.cc | 67 -------- pc/peerconnectionfactory.cc | 4 +- sdk/android/BUILD.gn | 2 - .../api/org/webrtc/PeerConnection.java | 3 - .../api/org/webrtc/TurnCustomizer.java | 27 ---- .../src/jni/pc/java_native_conversion.cc | 14 -- sdk/android/src/jni/pc/turncustomizer_jni.cc | 26 --- 27 files changed, 36 insertions(+), 559 deletions(-) delete mode 100644 api/turncustomizer.h delete mode 100644 p2p/base/testturncustomizer.h delete mode 100644 sdk/android/api/org/webrtc/TurnCustomizer.java delete mode 100644 sdk/android/src/jni/pc/turncustomizer_jni.cc diff --git a/api/BUILD.gn b/api/BUILD.gn index 1c1731ee32..a2c36acd78 100644 --- a/api/BUILD.gn +++ b/api/BUILD.gn @@ -61,7 +61,6 @@ rtc_static_library("libjingle_peerconnection_api") { "rtpsenderinterface.h", "statstypes.cc", "statstypes.h", - "turncustomizer.h", "umametrics.h", "videosourceproxy.h", ] diff --git a/api/peerconnectioninterface.h b/api/peerconnectioninterface.h index 5f75a56040..7291a8641c 100644 --- a/api/peerconnectioninterface.h +++ b/api/peerconnectioninterface.h @@ -83,7 +83,6 @@ #include "api/rtpsenderinterface.h" #include "api/stats/rtcstatscollectorcallback.h" #include "api/statstypes.h" -#include "api/turncustomizer.h" #include "api/umametrics.h" #include "call/callfactoryinterface.h" #include "logging/rtc_event_log/rtc_event_log_factory_interface.h" @@ -475,12 +474,6 @@ class PeerConnectionInterface : public rtc::RefCountInterface { // interval specified in milliseconds by the uniform distribution [a, b]. rtc::Optional ice_regather_interval_range; - // Optional TurnCustomizer. - // With this class one can modify outgoing TURN messages. - // The object passed in must remain valid until PeerConnection::Close() is - // called. - webrtc::TurnCustomizer* turn_customizer = nullptr; - // // Don't forget to update operator== if adding something. // diff --git a/api/turncustomizer.h b/api/turncustomizer.h deleted file mode 100644 index 517abcc8f0..0000000000 --- a/api/turncustomizer.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright 2017 The WebRTC Project Authors. All rights reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#ifndef API_TURNCUSTOMIZER_H_ -#define API_TURNCUSTOMIZER_H_ - -#include - -namespace cricket { -class PortInterface; -class StunMessage; -} // namespace cricket - - -namespace webrtc { - -class TurnCustomizer { - public: - // This is called before a TURN message is sent. - // This could be used to add implementation specific attributes to a request. - virtual void MaybeModifyOutgoingStunMessage( - cricket::PortInterface* port, - cricket::StunMessage* message) = 0; - - // TURN can send data using channel data messages or Send indication. - // This method should return false if |data| should be sent using - // a Send indication instead of a ChannelData message, even if a - // channel is bound. - virtual bool AllowChannelData(cricket::PortInterface* port, - const void* data, - size_t size, - bool payload) = 0; - - virtual ~TurnCustomizer() {} -}; - -} // namespace webrtc - -#endif // API_TURNCUSTOMIZER_H_ diff --git a/p2p/BUILD.gn b/p2p/BUILD.gn index 9f655a7ddb..ec007b0440 100644 --- a/p2p/BUILD.gn +++ b/p2p/BUILD.gn @@ -148,7 +148,6 @@ if (rtc_include_tests) { "base/mockicetransport.h", "base/testrelayserver.h", "base/teststunserver.h", - "base/testturncustomizer.h", "base/testturnserver.h", ] deps = [ diff --git a/p2p/base/port_unittest.cc b/p2p/base/port_unittest.cc index af853cad72..36af5de2cb 100644 --- a/p2p/base/port_unittest.cc +++ b/p2p/base/port_unittest.cc @@ -536,8 +536,7 @@ class PortTest : public testing::Test, public sigslot::has_slots<> { return TurnPort::Create( &main_, socket_factory, MakeNetwork(addr), 0, 0, username_, password_, ProtocolAddress(server_addr, int_proto), kRelayCredentials, 0, - std::string(), std::vector(), std::vector(), - nullptr); + std::string(), std::vector(), std::vector()); } RelayPort* CreateGturnPort(const SocketAddress& addr, ProtocolType int_proto, ProtocolType ext_proto) { diff --git a/p2p/base/portallocator.cc b/p2p/base/portallocator.cc index 109472b136..97dedc5e66 100644 --- a/p2p/base/portallocator.cc +++ b/p2p/base/portallocator.cc @@ -33,8 +33,7 @@ bool PortAllocator::SetConfiguration( const ServerAddresses& stun_servers, const std::vector& turn_servers, int candidate_pool_size, - bool prune_turn_ports, - webrtc::TurnCustomizer* turn_customizer) { + bool prune_turn_ports) { bool ice_servers_changed = (stun_servers != stun_servers_ || turn_servers != turn_servers_); stun_servers_ = stun_servers; @@ -63,8 +62,6 @@ bool PortAllocator::SetConfiguration( pooled_sessions_.clear(); } - turn_customizer_ = turn_customizer; - // If |candidate_pool_size_| is less than the number of pooled sessions, get // rid of the extras. while (candidate_pool_size_ < static_cast(pooled_sessions_.size())) { diff --git a/p2p/base/portallocator.h b/p2p/base/portallocator.h index 5c0d303502..de8d2d9258 100644 --- a/p2p/base/portallocator.h +++ b/p2p/base/portallocator.h @@ -25,7 +25,6 @@ namespace webrtc { class MetricsObserverInterface; -class TurnCustomizer; } namespace cricket { @@ -363,8 +362,7 @@ class PortAllocator : public sigslot::has_slots<> { bool SetConfiguration(const ServerAddresses& stun_servers, const std::vector& turn_servers, int candidate_pool_size, - bool prune_turn_ports, - webrtc::TurnCustomizer* turn_customizer = nullptr); + bool prune_turn_ports); const ServerAddresses& stun_servers() const { return stun_servers_; } @@ -479,10 +477,6 @@ class PortAllocator : public sigslot::has_slots<> { metrics_observer_ = observer; } - webrtc::TurnCustomizer* turn_customizer() { - return turn_customizer_; - } - protected: virtual PortAllocatorSession* CreateSessionInternal( const std::string& content_name, @@ -518,11 +512,6 @@ class PortAllocator : public sigslot::has_slots<> { bool prune_turn_ports_ = false; webrtc::MetricsObserverInterface* metrics_observer_ = nullptr; - - // Customizer for TURN messages. - // The instance is owned by application and will be shared among - // all TurnPort(s) created. - webrtc::TurnCustomizer* turn_customizer_ = nullptr; }; } // namespace cricket diff --git a/p2p/base/stun.cc b/p2p/base/stun.cc index e7d1244484..9ac2554cf9 100644 --- a/p2p/base/stun.cc +++ b/p2p/base/stun.cc @@ -67,18 +67,9 @@ bool StunMessage::SetTransactionID(const std::string& str) { return true; } -static bool ImplementationDefinedRange(int attr_type) -{ - return attr_type >= 0xC000 && attr_type <= 0xFFFF; -} - void StunMessage::AddAttribute(std::unique_ptr attr) { - // Fail any attributes that aren't valid for this type of message, - // but allow any type for the range that is "implementation defined" - // in the RFC. - if (!ImplementationDefinedRange(attr->type())) { - RTC_DCHECK_EQ(attr->value_type(), GetAttributeValueType(attr->type())); - } + // Fail any attributes that aren't valid for this type of message. + RTC_DCHECK_EQ(attr->value_type(), GetAttributeValueType(attr->type())); attr->SetOwner(this); size_t attr_length = attr->length(); @@ -407,16 +398,8 @@ StunAttributeValueType StunMessage::GetAttributeValueType(int type) const { StunAttribute* StunMessage::CreateAttribute(int type, size_t length) /*const*/ { StunAttributeValueType value_type = GetAttributeValueType(type); - if (value_type != STUN_VALUE_UNKNOWN) { - return StunAttribute::Create(value_type, type, - static_cast(length), this); - } else if (ImplementationDefinedRange(type)) { - // Read unknown attributes as STUN_VALUE_BYTE_STRING - return StunAttribute::Create(STUN_VALUE_BYTE_STRING, type, - static_cast(length), this); - } else { - return NULL; - } + return StunAttribute::Create(value_type, type, static_cast(length), + this); } const StunAttribute* StunMessage::GetAttribute(int type) const { diff --git a/p2p/base/stunrequest.cc b/p2p/base/stunrequest.cc index cec9ce3c3d..8afd1a03c9 100644 --- a/p2p/base/stunrequest.cc +++ b/p2p/base/stunrequest.cc @@ -207,10 +207,6 @@ const StunMessage* StunRequest::msg() const { return msg_; } -StunMessage* StunRequest::mutable_msg() { - return msg_; -} - int StunRequest::Elapsed() const { return static_cast(rtc::TimeMillis() - tstamp_); } diff --git a/p2p/base/stunrequest.h b/p2p/base/stunrequest.h index e77242e086..00f317fb93 100644 --- a/p2p/base/stunrequest.h +++ b/p2p/base/stunrequest.h @@ -105,9 +105,6 @@ class StunRequest : public rtc::MessageHandler { // Returns a const pointer to |msg_|. const StunMessage* msg() const; - // Returns a mutable pointer to |msg_|. - StunMessage* mutable_msg(); - // Time elapsed since last send (in ms) int Elapsed() const; diff --git a/p2p/base/testturncustomizer.h b/p2p/base/testturncustomizer.h deleted file mode 100644 index 33f48fb83e..0000000000 --- a/p2p/base/testturncustomizer.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright 2017 The WebRTC Project Authors. All rights reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#ifndef P2P_BASE_TESTTURNCUSTOMIZER_H_ -#define P2P_BASE_TESTTURNCUSTOMIZER_H_ - -#include "api/turncustomizer.h" -#include "rtc_base/ptr_util.h" - -namespace cricket { - -class TestTurnCustomizer : public webrtc::TurnCustomizer { - public: - TestTurnCustomizer() {} - virtual ~TestTurnCustomizer() {} - - enum TestTurnAttributeExtensions { - // Test only attribute - STUN_ATTR_COUNTER = 0xFF02 // Number - }; - - void MaybeModifyOutgoingStunMessage( - cricket::PortInterface* port, - cricket::StunMessage* message) override { - modify_cnt_ ++; - - if (add_counter_) { - message->AddAttribute(rtc::MakeUnique( - STUN_ATTR_COUNTER, modify_cnt_)); - } - return; - } - - bool AllowChannelData(cricket::PortInterface* port, - const void* data, - size_t size, - bool payload) override { - allow_channel_data_cnt_++; - return allow_channel_data_; - } - - bool add_counter_ = false; - bool allow_channel_data_ = true; - unsigned int modify_cnt_ = 0; - unsigned int allow_channel_data_cnt_ = 0; -}; - -} // namespace cricket - -#endif // P2P_BASE_TESTTURNCUSTOMIZER_H_ diff --git a/p2p/base/turnport.cc b/p2p/base/turnport.cc index a0b98bb820..bf1351bcfb 100644 --- a/p2p/base/turnport.cc +++ b/p2p/base/turnport.cc @@ -196,8 +196,7 @@ TurnPort::TurnPort(rtc::Thread* thread, const ProtocolAddress& server_address, const RelayCredentials& credentials, int server_priority, - const std::string& origin, - webrtc::TurnCustomizer* customizer) + const std::string& origin) : Port(thread, RELAY_PORT_TYPE, factory, @@ -213,8 +212,7 @@ TurnPort::TurnPort(rtc::Thread* thread, next_channel_number_(TURN_CHANNEL_NUMBER_START), state_(STATE_CONNECTING), server_priority_(server_priority), - allocate_mismatch_retries_(0), - turn_customizer_(customizer) { + allocate_mismatch_retries_(0) { request_manager_.SignalSendPacket.connect(this, &TurnPort::OnSendStunPacket); request_manager_.set_origin(origin); } @@ -231,8 +229,7 @@ TurnPort::TurnPort(rtc::Thread* thread, int server_priority, const std::string& origin, const std::vector& tls_alpn_protocols, - const std::vector& tls_elliptic_curves, - webrtc::TurnCustomizer* customizer) + const std::vector& tls_elliptic_curves) : Port(thread, RELAY_PORT_TYPE, factory, @@ -252,8 +249,7 @@ TurnPort::TurnPort(rtc::Thread* thread, next_channel_number_(TURN_CHANNEL_NUMBER_START), state_(STATE_CONNECTING), server_priority_(server_priority), - allocate_mismatch_retries_(0), - turn_customizer_(customizer) { + allocate_mismatch_retries_(0) { request_manager_.SignalSendPacket.connect(this, &TurnPort::OnSendStunPacket); request_manager_.set_origin(origin); } @@ -956,7 +952,6 @@ bool TurnPort::ScheduleRefresh(int lifetime) { } void TurnPort::SendRequest(StunRequest* req, int delay) { - TurnCustomizerMaybeModifyOutgoingStunMessage(req->mutable_msg()); request_manager_.SendDelayed(req, delay); } @@ -1147,24 +1142,6 @@ std::string TurnPort::ReconstructedServerUrl() { return url.str(); } -void TurnPort::TurnCustomizerMaybeModifyOutgoingStunMessage( - StunMessage* message) { - if (turn_customizer_ == nullptr) { - return; - } - - turn_customizer_->MaybeModifyOutgoingStunMessage(this, message); -} - -bool TurnPort::TurnCustomizerAllowChannelData( - const void* data, size_t size, bool payload) { - if (turn_customizer_ == nullptr) { - return true; - } - - return turn_customizer_->AllowChannelData(this, data, size, payload); -} - TurnAllocateRequest::TurnAllocateRequest(TurnPort* port) : StunRequest(new TurnMessage()), port_(port) { @@ -1556,10 +1533,8 @@ void TurnEntry::SendChannelBindRequest(int delay) { int TurnEntry::Send(const void* data, size_t size, bool payload, const rtc::PacketOptions& options) { rtc::ByteBufferWriter buf; - if (state_ != STATE_BOUND || - !port_->TurnCustomizerAllowChannelData(data, size, payload)) { + if (state_ != STATE_BOUND) { // If we haven't bound the channel yet, we have to use a Send Indication. - // The turn_customizer_ can also make us use Send Indication. TurnMessage msg; msg.SetType(TURN_SEND_INDICATION); msg.SetTransactionID( @@ -1568,9 +1543,6 @@ int TurnEntry::Send(const void* data, size_t size, bool payload, STUN_ATTR_XOR_PEER_ADDRESS, ext_addr_)); msg.AddAttribute( rtc::MakeUnique(STUN_ATTR_DATA, data, size)); - - port_->TurnCustomizerMaybeModifyOutgoingStunMessage(&msg); - const bool success = msg.Write(&buf); RTC_DCHECK(success); diff --git a/p2p/base/turnport.h b/p2p/base/turnport.h index 1d1ffe2202..f8919836cb 100644 --- a/p2p/base/turnport.h +++ b/p2p/base/turnport.h @@ -26,10 +26,6 @@ class AsyncResolver; class SignalThread; } -namespace webrtc { -class TurnCustomizer; -} - namespace cricket { extern const char TURN_PORT_TYPE[]; @@ -56,11 +52,9 @@ class TurnPort : public Port { const ProtocolAddress& server_address, const RelayCredentials& credentials, int server_priority, - const std::string& origin, - webrtc::TurnCustomizer* customizer) { + const std::string& origin) { return new TurnPort(thread, factory, network, socket, username, password, - server_address, credentials, server_priority, origin, - customizer); + server_address, credentials, server_priority, origin); } // Create a TURN port that will use a new socket, bound to |network| and @@ -77,12 +71,10 @@ class TurnPort : public Port { int server_priority, const std::string& origin, const std::vector& tls_alpn_protocols, - const std::vector& tls_elliptic_curves, - webrtc::TurnCustomizer* customizer) { + const std::vector& tls_elliptic_curves) { return new TurnPort(thread, factory, network, min_port, max_port, username, password, server_address, credentials, server_priority, - origin, tls_alpn_protocols, tls_elliptic_curves, - customizer); + origin, tls_alpn_protocols, tls_elliptic_curves); } virtual ~TurnPort(); @@ -192,8 +184,7 @@ class TurnPort : public Port { const ProtocolAddress& server_address, const RelayCredentials& credentials, int server_priority, - const std::string& origin, - webrtc::TurnCustomizer* customizer); + const std::string& origin); TurnPort(rtc::Thread* thread, rtc::PacketSocketFactory* factory, @@ -207,8 +198,7 @@ class TurnPort : public Port { int server_priority, const std::string& origin, const std::vector& tls_alpn_protocols, - const std::vector& tls_elliptic_curves, - webrtc::TurnCustomizer* customizer); + const std::vector& tls_elliptic_curves); private: enum { @@ -285,10 +275,6 @@ class TurnPort : public Port { // Reconstruct the URL of the server which the candidate is gathered from. std::string ReconstructedServerUrl(); - void TurnCustomizerMaybeModifyOutgoingStunMessage(StunMessage* message); - bool TurnCustomizerAllowChannelData(const void* data, - size_t size, bool payload); - ProtocolAddress server_address_; TlsCertPolicy tls_cert_policy_ = TlsCertPolicy::TLS_CERT_POLICY_SECURE; std::vector tls_alpn_protocols_; @@ -319,9 +305,6 @@ class TurnPort : public Port { rtc::AsyncInvoker invoker_; - // Optional TurnCustomizer that can modify outgoing messages. - webrtc::TurnCustomizer *turn_customizer_ = nullptr; - friend class TurnEntry; friend class TurnAllocateRequest; friend class TurnRefreshRequest; diff --git a/p2p/base/turnport_unittest.cc b/p2p/base/turnport_unittest.cc index 4abc02530f..0bc4b31413 100644 --- a/p2p/base/turnport_unittest.cc +++ b/p2p/base/turnport_unittest.cc @@ -18,7 +18,6 @@ #include "p2p/base/p2pconstants.h" #include "p2p/base/portallocator.h" #include "p2p/base/tcpport.h" -#include "p2p/base/testturncustomizer.h" #include "p2p/base/testturnserver.h" #include "p2p/base/turnport.h" #include "p2p/base/udpport.h" @@ -31,7 +30,6 @@ #include "rtc_base/gunit.h" #include "rtc_base/helpers.h" #include "rtc_base/logging.h" -#include "rtc_base/ptr_util.h" #include "rtc_base/socketadapters.h" #include "rtc_base/socketaddress.h" #include "rtc_base/ssladapter.h" @@ -266,7 +264,7 @@ class TurnPortTest : public testing::Test, turn_port_.reset(TurnPort::Create( &main_, &socket_factory_, network, 0, 0, kIceUfrag1, kIcePwd1, server_address, credentials, 0, origin, std::vector(), - std::vector(), turn_customizer_.get())); + std::vector())); // This TURN port will be the controlling. turn_port_->SetIceRole(ICEROLE_CONTROLLING); ConnectSignals(); @@ -296,8 +294,7 @@ class TurnPortTest : public testing::Test, RelayCredentials credentials(username, password); turn_port_.reset(TurnPort::Create( &main_, &socket_factory_, MakeNetwork(kLocalAddr1), socket_.get(), - kIceUfrag1, kIcePwd1, server_address, credentials, 0, std::string(), - nullptr)); + kIceUfrag1, kIcePwd1, server_address, credentials, 0, std::string())); // This TURN port will be the controlling. turn_port_->SetIceRole(ICEROLE_CONTROLLING); ConnectSignals(); @@ -698,7 +695,6 @@ class TurnPortTest : public testing::Test, std::vector turn_packets_; std::vector udp_packets_; rtc::PacketOptions options; - std::unique_ptr turn_customizer_; }; TEST_F(TurnPortTest, TestTurnPortType) { @@ -1462,146 +1458,4 @@ TEST_F(TurnPortTest, TestResolverShutdown) { } #endif -class MessageObserver : public StunMessageObserver{ - public: - MessageObserver(unsigned int *message_counter, - unsigned int* channel_data_counter, - unsigned int *attr_counter) - : message_counter_(message_counter), - channel_data_counter_(channel_data_counter), - attr_counter_(attr_counter) {} - virtual ~MessageObserver() {} - virtual void ReceivedMessage(const TurnMessage* msg) override { - if (message_counter_ != nullptr) { - (*message_counter_)++; - } - // Implementation defined attributes are returned as ByteString - const StunByteStringAttribute* attr = msg->GetByteString( - TestTurnCustomizer::STUN_ATTR_COUNTER); - if (attr != nullptr && attr_counter_ != nullptr) { - rtc::ByteBufferReader buf(attr->bytes(), attr->length()); - unsigned int val = ~0u; - buf.ReadUInt32(&val); - (*attr_counter_)++; - } - } - - virtual void ReceivedChannelData(const char* data, size_t size) override { - if (channel_data_counter_ != nullptr) { - (*channel_data_counter_)++; - } - } - - // Number of TurnMessages observed. - unsigned int* message_counter_ = nullptr; - - // Number of channel data observed. - unsigned int* channel_data_counter_ = nullptr; - - // Number of TurnMessages that had STUN_ATTR_COUNTER. - unsigned int* attr_counter_ = nullptr; -}; - -// Do a TURN allocation, establish a TLS connection, and send some data. -// Add customizer and check that it get called. -TEST_F(TurnPortTest, TestTurnCustomizerCount) { - unsigned int observer_message_counter = 0; - unsigned int observer_channel_data_counter = 0; - unsigned int observer_attr_counter = 0; - TestTurnCustomizer* customizer = new TestTurnCustomizer(); - std::unique_ptr validator(new MessageObserver( - &observer_message_counter, - &observer_channel_data_counter, - &observer_attr_counter)); - - turn_server_.AddInternalSocket(kTurnTcpIntAddr, PROTO_TLS); - turn_customizer_.reset(customizer); - turn_server_.server()->SetStunMessageObserver(std::move(validator)); - - CreateTurnPort(kTurnUsername, kTurnPassword, kTurnTlsProtoAddr); - TestTurnSendData(PROTO_TLS); - EXPECT_EQ(TLS_PROTOCOL_NAME, turn_port_->Candidates()[0].relay_protocol()); - - // There should have been at least turn_packets_.size() calls to |customizer|. - EXPECT_GE(customizer->modify_cnt_ + customizer->allow_channel_data_cnt_, - turn_packets_.size()); - - // Some channel data should be received. - EXPECT_GE(observer_channel_data_counter, 0u); - - // Need to release TURN port before the customizer. - turn_port_.reset(nullptr); -} - -// Do a TURN allocation, establish a TLS connection, and send some data. -// Add customizer and check that it can can prevent usage of channel data. -TEST_F(TurnPortTest, TestTurnCustomizerDisallowChannelData) { - unsigned int observer_message_counter = 0; - unsigned int observer_channel_data_counter = 0; - unsigned int observer_attr_counter = 0; - TestTurnCustomizer* customizer = new TestTurnCustomizer(); - std::unique_ptr validator(new MessageObserver( - &observer_message_counter, - &observer_channel_data_counter, - &observer_attr_counter)); - customizer->allow_channel_data_ = false; - turn_server_.AddInternalSocket(kTurnTcpIntAddr, PROTO_TLS); - turn_customizer_.reset(customizer); - turn_server_.server()->SetStunMessageObserver(std::move(validator)); - - CreateTurnPort(kTurnUsername, kTurnPassword, kTurnTlsProtoAddr); - TestTurnSendData(PROTO_TLS); - EXPECT_EQ(TLS_PROTOCOL_NAME, turn_port_->Candidates()[0].relay_protocol()); - - // There should have been at least turn_packets_.size() calls to |customizer|. - EXPECT_GE(customizer->modify_cnt_, turn_packets_.size()); - - // No channel data should be received. - EXPECT_EQ(observer_channel_data_counter, 0u); - - // Need to release TURN port before the customizer. - turn_port_.reset(nullptr); -} - -// Do a TURN allocation, establish a TLS connection, and send some data. -// Add customizer and check that it can add attribute to messages. -TEST_F(TurnPortTest, TestTurnCustomizerAddAttribute) { - unsigned int observer_message_counter = 0; - unsigned int observer_channel_data_counter = 0; - unsigned int observer_attr_counter = 0; - TestTurnCustomizer* customizer = new TestTurnCustomizer(); - std::unique_ptr validator(new MessageObserver( - &observer_message_counter, - &observer_channel_data_counter, - &observer_attr_counter)); - customizer->allow_channel_data_ = false; - customizer->add_counter_ = true; - turn_server_.AddInternalSocket(kTurnTcpIntAddr, PROTO_TLS); - turn_customizer_.reset(customizer); - turn_server_.server()->SetStunMessageObserver(std::move(validator)); - - CreateTurnPort(kTurnUsername, kTurnPassword, kTurnTlsProtoAddr); - TestTurnSendData(PROTO_TLS); - EXPECT_EQ(TLS_PROTOCOL_NAME, turn_port_->Candidates()[0].relay_protocol()); - - // There should have been at least turn_packets_.size() calls to |customizer|. - EXPECT_GE(customizer->modify_cnt_, turn_packets_.size()); - - // Everything will be sent as messages since channel data is disallowed. - EXPECT_GE(customizer->modify_cnt_, observer_message_counter); - - // All messages should have attribute. - EXPECT_EQ(observer_message_counter, observer_attr_counter); - - // At least allow_channel_data_cnt_ messages should have been sent. - EXPECT_GE(customizer->modify_cnt_, customizer->allow_channel_data_cnt_); - EXPECT_GE(customizer->allow_channel_data_cnt_, 0u); - - // No channel data should be received. - EXPECT_EQ(observer_channel_data_counter, 0u); - - // Need to release TURN port before the customizer. - turn_port_.reset(nullptr); -} - } // namespace cricket diff --git a/p2p/base/turnserver.cc b/p2p/base/turnserver.cc index 0f7d81551d..7e4c43672f 100644 --- a/p2p/base/turnserver.cc +++ b/p2p/base/turnserver.cc @@ -211,9 +211,6 @@ void TurnServer::OnInternalPacket(rtc::AsyncPacketSocket* socket, if (allocation) { allocation->HandleChannelData(data, size); } - if (stun_message_observer_ != nullptr) { - stun_message_observer_->ReceivedChannelData(data, size); - } } } @@ -226,10 +223,6 @@ void TurnServer::HandleStunMessage(TurnServerConnection* conn, const char* data, return; } - if (stun_message_observer_ != nullptr) { - stun_message_observer_->ReceivedMessage(&msg); - } - // If it's a STUN binding request, handle that specially. if (msg.type() == STUN_BINDING_REQUEST) { HandleBindingRequest(conn, &msg); diff --git a/p2p/base/turnserver.h b/p2p/base/turnserver.h index f6949125a6..1e06a93753 100644 --- a/p2p/base/turnserver.h +++ b/p2p/base/turnserver.h @@ -157,13 +157,6 @@ class TurnRedirectInterface { virtual ~TurnRedirectInterface() {} }; -class StunMessageObserver { - public: - virtual void ReceivedMessage(const TurnMessage* msg) = 0; - virtual void ReceivedChannelData(const char* data, size_t size) = 0; - virtual ~StunMessageObserver() {} -}; - // The core TURN server class. Give it a socket to listen on via // AddInternalServerSocket, and a factory to create external sockets via // SetExternalSocketFactory, and it's ready to go. @@ -221,11 +214,6 @@ class TurnServer : public sigslot::has_slots<> { return GenerateNonce(timestamp); } - void SetStunMessageObserver( - std::unique_ptr observer) { - stun_message_observer_ = std::move(observer); - } - private: std::string GenerateNonce(int64_t now) const; void OnInternalPacket(rtc::AsyncPacketSocket* socket, const char* data, @@ -308,9 +296,6 @@ class TurnServer : public sigslot::has_slots<> { // from this value, and it will be reset to 0 after generating the NONCE. int64_t ts_for_next_nonce_ = 0; - // For testing only. Used to observe STUN messages received. - std::unique_ptr stun_message_observer_; - friend class TurnServerAllocation; }; diff --git a/p2p/client/basicportallocator.cc b/p2p/client/basicportallocator.cc index 471748400d..f4c1fbdefa 100644 --- a/p2p/client/basicportallocator.cc +++ b/p2p/client/basicportallocator.cc @@ -96,15 +96,11 @@ const uint32_t DISABLE_ALL_PHASES = PORTALLOCATOR_DISABLE_STUN | PORTALLOCATOR_DISABLE_RELAY; // BasicPortAllocator -BasicPortAllocator::BasicPortAllocator( - rtc::NetworkManager* network_manager, - rtc::PacketSocketFactory* socket_factory, - webrtc::TurnCustomizer* customizer) +BasicPortAllocator::BasicPortAllocator(rtc::NetworkManager* network_manager, + rtc::PacketSocketFactory* socket_factory) : network_manager_(network_manager), socket_factory_(socket_factory) { RTC_DCHECK(network_manager_ != nullptr); RTC_DCHECK(socket_factory_ != nullptr); - SetConfiguration(ServerAddresses(), std::vector(), - 0, false, customizer); Construct(); } @@ -119,8 +115,7 @@ BasicPortAllocator::BasicPortAllocator(rtc::NetworkManager* network_manager, const ServerAddresses& stun_servers) : network_manager_(network_manager), socket_factory_(socket_factory) { RTC_DCHECK(socket_factory_ != NULL); - SetConfiguration(stun_servers, std::vector(), 0, false, - nullptr); + SetConfiguration(stun_servers, std::vector(), 0, false); Construct(); } @@ -147,7 +142,7 @@ BasicPortAllocator::BasicPortAllocator( turn_servers.push_back(config); } - SetConfiguration(stun_servers, turn_servers, 0, false, nullptr); + SetConfiguration(stun_servers, turn_servers, 0, false); Construct(); } @@ -193,7 +188,7 @@ void BasicPortAllocator::AddTurnServer(const RelayServerConfig& turn_server) { std::vector new_turn_servers = turn_servers(); new_turn_servers.push_back(turn_server); SetConfiguration(stun_servers(), new_turn_servers, candidate_pool_size(), - prune_turn_ports(), turn_customizer()); + prune_turn_ports()); } // BasicPortAllocatorSession @@ -1379,6 +1374,7 @@ void AllocationSequence::CreateTurnPort(const RelayServerConfig& config) { continue; } + // Shared socket mode must be enabled only for UDP based ports. Hence // don't pass shared socket for ports which will create TCP sockets. // TODO(mallinath) - Enable shared socket mode for TURN ports. Disabled @@ -1390,8 +1386,7 @@ void AllocationSequence::CreateTurnPort(const RelayServerConfig& config) { network_, udp_socket_.get(), session_->username(), session_->password(), *relay_port, config.credentials, config.priority, - session_->allocator()->origin(), - session_->allocator()->turn_customizer()); + session_->allocator()->origin()); turn_ports_.push_back(port); // Listen to the port destroyed signal, to allow AllocationSequence to // remove entrt from it's map. @@ -1402,8 +1397,7 @@ void AllocationSequence::CreateTurnPort(const RelayServerConfig& config) { session_->allocator()->min_port(), session_->allocator()->max_port(), session_->username(), session_->password(), *relay_port, config.credentials, config.priority, session_->allocator()->origin(), - config.tls_alpn_protocols, config.tls_elliptic_curves, - session_->allocator()->turn_customizer()); + config.tls_alpn_protocols, config.tls_elliptic_curves); } RTC_DCHECK(port != NULL); port->SetTlsCertPolicy(config.tls_cert_policy); diff --git a/p2p/client/basicportallocator.h b/p2p/client/basicportallocator.h index 93d75d3d3d..d0c1de1c3b 100644 --- a/p2p/client/basicportallocator.h +++ b/p2p/client/basicportallocator.h @@ -15,7 +15,6 @@ #include #include -#include "api/turncustomizer.h" #include "p2p/base/portallocator.h" #include "rtc_base/checks.h" #include "rtc_base/messagequeue.h" @@ -27,8 +26,7 @@ namespace cricket { class BasicPortAllocator : public PortAllocator { public: BasicPortAllocator(rtc::NetworkManager* network_manager, - rtc::PacketSocketFactory* socket_factory, - webrtc::TurnCustomizer* customizer); + rtc::PacketSocketFactory* socket_factory); explicit BasicPortAllocator(rtc::NetworkManager* network_manager); BasicPortAllocator(rtc::NetworkManager* network_manager, rtc::PacketSocketFactory* socket_factory, diff --git a/pc/peerconnection.cc b/pc/peerconnection.cc index d63814d97e..bc95895a8e 100644 --- a/pc/peerconnection.cc +++ b/pc/peerconnection.cc @@ -277,7 +277,6 @@ bool PeerConnectionInterface::RTCConfiguration::operator==( bool redetermine_role_on_ice_restart; rtc::Optional ice_check_min_interval; rtc::Optional ice_regather_interval_range; - webrtc::TurnCustomizer* turn_customizer; }; static_assert(sizeof(stuff_being_tested_for_equality) == sizeof(*this), "Did you add something to RTCConfiguration and forget to " @@ -313,8 +312,7 @@ bool PeerConnectionInterface::RTCConfiguration::operator==( enable_ice_renomination == o.enable_ice_renomination && redetermine_role_on_ice_restart == o.redetermine_role_on_ice_restart && ice_check_min_interval == o.ice_check_min_interval && - ice_regather_interval_range == o.ice_regather_interval_range && - turn_customizer == o.turn_customizer; + ice_regather_interval_range == o.ice_regather_interval_range; } bool PeerConnectionInterface::RTCConfiguration::operator!=( @@ -456,7 +454,6 @@ bool PeerConnection::Initialize( << "This shouldn't happen if using PeerConnectionFactory."; return false; } - if (!observer) { // TODO(deadbeef): Why do we do this? LOG(LS_ERROR) << "PeerConnection initialized without a " @@ -1150,7 +1147,6 @@ bool PeerConnection::SetConfiguration(const RTCConfiguration& configuration, configuration.ice_candidate_pool_size; modified_config.prune_turn_ports = configuration.prune_turn_ports; modified_config.ice_check_min_interval = configuration.ice_check_min_interval; - modified_config.turn_customizer = configuration.turn_customizer; if (configuration != modified_config) { LOG(LS_ERROR) << "Modifying the configuration in an unsupported way."; return SafeSetError(RTCErrorType::INVALID_MODIFICATION, error); @@ -1184,8 +1180,7 @@ bool PeerConnection::SetConfiguration(const RTCConfiguration& configuration, rtc::Bind(&PeerConnection::ReconfigurePortAllocator_n, this, stun_servers, turn_servers, modified_config.type, modified_config.ice_candidate_pool_size, - modified_config.prune_turn_ports, - modified_config.turn_customizer))) { + modified_config.prune_turn_ports))) { LOG(LS_ERROR) << "Failed to apply configuration to PortAllocator."; return SafeSetError(RTCErrorType::INTERNAL_ERROR, error); } @@ -2518,8 +2513,7 @@ bool PeerConnection::InitializePortAllocator_n( // properties set above. port_allocator_->SetConfiguration(stun_servers, turn_servers, configuration.ice_candidate_pool_size, - configuration.prune_turn_ports, - configuration.turn_customizer); + configuration.prune_turn_ports); return true; } @@ -2528,15 +2522,13 @@ bool PeerConnection::ReconfigurePortAllocator_n( const std::vector& turn_servers, IceTransportsType type, int candidate_pool_size, - bool prune_turn_ports, - webrtc::TurnCustomizer* turn_customizer) { + bool prune_turn_ports) { port_allocator_->set_candidate_filter( ConvertIceTransportTypeToCandidateFilter(type)); // Call this last since it may create pooled allocator sessions using the // candidate filter set above. return port_allocator_->SetConfiguration( - stun_servers, turn_servers, candidate_pool_size, prune_turn_ports, - turn_customizer); + stun_servers, turn_servers, candidate_pool_size, prune_turn_ports); } bool PeerConnection::StartRtcEventLog_w(rtc::PlatformFile file, diff --git a/pc/peerconnection.h b/pc/peerconnection.h index 414545a9fe..fa06c3d78d 100644 --- a/pc/peerconnection.h +++ b/pc/peerconnection.h @@ -17,7 +17,6 @@ #include #include "api/peerconnectioninterface.h" -#include "api/turncustomizer.h" #include "pc/iceserverparsing.h" #include "pc/peerconnectionfactory.h" #include "pc/rtcstatscollector.h" @@ -437,8 +436,7 @@ class PeerConnection : public PeerConnectionInterface, const std::vector& turn_servers, IceTransportsType type, int candidate_pool_size, - bool prune_turn_ports, - webrtc::TurnCustomizer* turn_customizer); + bool prune_turn_ports); // Starts recording an RTC event log using the supplied platform file. // This function should only be called from the worker thread. diff --git a/pc/peerconnection_integrationtest.cc b/pc/peerconnection_integrationtest.cc index 580bfd4467..e01230101a 100644 --- a/pc/peerconnection_integrationtest.cc +++ b/pc/peerconnection_integrationtest.cc @@ -31,7 +31,6 @@ #include "p2p/base/p2pconstants.h" #include "p2p/base/portinterface.h" #include "p2p/base/sessiondescription.h" -#include "p2p/base/testturncustomizer.h" #include "p2p/base/testturnserver.h" #include "p2p/client/basicportallocator.h" #include "pc/dtmfsender.h" @@ -2993,7 +2992,6 @@ TEST_F(PeerConnectionIntegrationTest, EndToEndConnectionTimeWithTurnTurnPair) { cricket::TestTurnServer turn_server_2(network_thread(), turn_server_2_internal_address, turn_server_2_external_address); - // Bypass permission check on received packets so media can be sent before // the candidate is signaled. turn_server_1.set_enable_permission_checks(false); @@ -3040,71 +3038,6 @@ TEST_F(PeerConnectionIntegrationTest, EndToEndConnectionTimeWithTurnTurnPair) { delete SetCalleePcWrapperAndReturnCurrent(nullptr); } -// Verify that a TurnCustomizer passed in through RTCConfiguration -// is actually used by the underlying TURN candidate pair. -// Note that turnport_unittest.cc contains more detailed, lower-level tests. -TEST_F(PeerConnectionIntegrationTest, \ - TurnCustomizerUsedForTurnConnections) { - static const rtc::SocketAddress turn_server_1_internal_address{"88.88.88.0", - 3478}; - static const rtc::SocketAddress turn_server_1_external_address{"88.88.88.1", - 0}; - static const rtc::SocketAddress turn_server_2_internal_address{"99.99.99.0", - 3478}; - static const rtc::SocketAddress turn_server_2_external_address{"99.99.99.1", - 0}; - cricket::TestTurnServer turn_server_1(network_thread(), - turn_server_1_internal_address, - turn_server_1_external_address); - cricket::TestTurnServer turn_server_2(network_thread(), - turn_server_2_internal_address, - turn_server_2_external_address); - - PeerConnectionInterface::RTCConfiguration client_1_config; - webrtc::PeerConnectionInterface::IceServer ice_server_1; - ice_server_1.urls.push_back("turn:88.88.88.0:3478"); - ice_server_1.username = "test"; - ice_server_1.password = "test"; - client_1_config.servers.push_back(ice_server_1); - client_1_config.type = webrtc::PeerConnectionInterface::kRelay; - auto customizer1 = rtc::MakeUnique(); - client_1_config.turn_customizer = customizer1.get(); - - PeerConnectionInterface::RTCConfiguration client_2_config; - webrtc::PeerConnectionInterface::IceServer ice_server_2; - ice_server_2.urls.push_back("turn:99.99.99.0:3478"); - ice_server_2.username = "test"; - ice_server_2.password = "test"; - client_2_config.servers.push_back(ice_server_2); - client_2_config.type = webrtc::PeerConnectionInterface::kRelay; - auto customizer2 = rtc::MakeUnique(); - client_2_config.turn_customizer = customizer2.get(); - - ASSERT_TRUE( - CreatePeerConnectionWrappersWithConfig(client_1_config, client_2_config)); - ConnectFakeSignaling(); - - // Set "offer to receive audio/video" without adding any tracks, so we just - // set up ICE/DTLS with no media. - PeerConnectionInterface::RTCOfferAnswerOptions options; - options.offer_to_receive_audio = 1; - options.offer_to_receive_video = 1; - caller()->SetOfferAnswerOptions(options); - caller()->CreateAndSetAndSignalOffer(); - ASSERT_TRUE_WAIT(DtlsConnected(), kDefaultTimeout); - - EXPECT_GT(customizer1->allow_channel_data_cnt_, 0u); - EXPECT_GT(customizer1->modify_cnt_, 0u); - - EXPECT_GT(customizer2->allow_channel_data_cnt_, 0u); - EXPECT_GT(customizer2->modify_cnt_, 0u); - - // Need to free the clients here since they're using things we created on - // the stack. - delete SetCallerPcWrapperAndReturnCurrent(nullptr); - delete SetCalleePcWrapperAndReturnCurrent(nullptr); -} - // Test that audio and video flow end-to-end when codec names don't use the // expected casing, given that they're supposed to be case insensitive. To test // this, all but one codec is removed from each media description, and its diff --git a/pc/peerconnectionfactory.cc b/pc/peerconnectionfactory.cc index 20edaa6af1..d3c624d1c0 100644 --- a/pc/peerconnectionfactory.cc +++ b/pc/peerconnectionfactory.cc @@ -17,7 +17,6 @@ #include "api/mediastreamtrackproxy.h" #include "api/peerconnectionfactoryproxy.h" #include "api/peerconnectionproxy.h" -#include "api/turncustomizer.h" #include "api/videosourceproxy.h" #include "logging/rtc_event_log/rtc_event_log.h" #include "rtc_base/bind.h" @@ -237,8 +236,7 @@ PeerConnectionFactory::CreatePeerConnection( if (!allocator) { allocator.reset(new cricket::BasicPortAllocator( - default_network_manager_.get(), default_socket_factory_.get(), - configuration.turn_customizer)); + default_network_manager_.get(), default_socket_factory_.get())); } network_thread_->Invoke( RTC_FROM_HERE, rtc::Bind(&cricket::PortAllocator::SetNetworkIgnoreMask, diff --git a/sdk/android/BUILD.gn b/sdk/android/BUILD.gn index 5b7ffb7383..322104bf04 100644 --- a/sdk/android/BUILD.gn +++ b/sdk/android/BUILD.gn @@ -249,7 +249,6 @@ rtc_static_library("peerconnection_jni") { "src/jni/pc/sdpobserver_jni.h", "src/jni/pc/statsobserver_jni.cc", "src/jni/pc/statsobserver_jni.h", - "src/jni/pc/turncustomizer_jni.cc", ] configs += [ ":libjingle_peerconnection_jni_warnings_config" ] @@ -421,7 +420,6 @@ android_library("libjingle_peerconnection_java") { "api/org/webrtc/StatsReport.java", "api/org/webrtc/SurfaceTextureHelper.java", "api/org/webrtc/SurfaceViewRenderer.java", - "api/org/webrtc/TurnCustomizer.java", "api/org/webrtc/VideoCapturer.java", "api/org/webrtc/VideoCodecInfo.java", "api/org/webrtc/VideoCodecStatus.java", diff --git a/sdk/android/api/org/webrtc/PeerConnection.java b/sdk/android/api/org/webrtc/PeerConnection.java index 881255d9aa..9ddfdfdc06 100644 --- a/sdk/android/api/org/webrtc/PeerConnection.java +++ b/sdk/android/api/org/webrtc/PeerConnection.java @@ -304,9 +304,6 @@ public class PeerConnection { public int maxIPv6Networks; public IntervalRange iceRegatherIntervalRange; - // This is an optional wrapper for the C++ webrtc::TurnCustomizer. - public TurnCustomizer turnCustomizer; - // TODO(deadbeef): Instead of duplicating the defaults here, we should do // something to pick up the defaults from C++. The Objective-C equivalent // of RTCConfiguration does that. diff --git a/sdk/android/api/org/webrtc/TurnCustomizer.java b/sdk/android/api/org/webrtc/TurnCustomizer.java deleted file mode 100644 index 7c68bd1e77..0000000000 --- a/sdk/android/api/org/webrtc/TurnCustomizer.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright 2017 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -package org.webrtc; - -/** Java wrapper for a C++ TurnCustomizer. */ -public class TurnCustomizer { - final long nativeTurnCustomizer; - - public TurnCustomizer(long nativeTurnCustomizer) { - this.nativeTurnCustomizer = nativeTurnCustomizer; - } - - public void dispose() { - nativeFreeTurnCustomizer(nativeTurnCustomizer); - } - - private static native void nativeFreeTurnCustomizer( - long nativeTurnCustomizer); -} diff --git a/sdk/android/src/jni/pc/java_native_conversion.cc b/sdk/android/src/jni/pc/java_native_conversion.cc index 3caa438099..e500f342d2 100644 --- a/sdk/android/src/jni/pc/java_native_conversion.cc +++ b/sdk/android/src/jni/pc/java_native_conversion.cc @@ -478,15 +478,6 @@ void JavaToNativeRTCConfiguration( jmethodID get_max_id = GetMethodID(jni, j_interval_range_class, "getMax", "()I"); - jfieldID j_turn_customizer_type_id = GetFieldID( - jni, j_rtc_config_class, "turnCustomizer", "Lorg/webrtc/TurnCustomizer;"); - jobject j_turn_customizer = - GetNullableObjectField(jni, j_rtc_config, j_turn_customizer_type_id); - - jclass j_turn_customizer_class = jni->FindClass("org/webrtc/TurnCustomizer"); - jfieldID j_native_turn_customizer_id = - GetFieldID(jni, j_turn_customizer_class, "nativeTurnCustomizer", "J"); - rtc_config->type = JavaToNativeIceTransportsType(jni, j_ice_transports_type); rtc_config->bundle_policy = JavaToNativeBundlePolicy(jni, j_bundle_policy); rtc_config->rtcp_mux_policy = @@ -531,11 +522,6 @@ void JavaToNativeRTCConfiguration( int max = jni->CallIntMethod(j_ice_regather_interval_range, get_max_id); rtc_config->ice_regather_interval_range.emplace(min, max); } - - if (!IsNull(jni, j_turn_customizer)) { - rtc_config->turn_customizer = reinterpret_cast( - GetLongField(jni, j_turn_customizer, j_native_turn_customizer_id)); - } } void JavaToNativeRtpParameters(JNIEnv* jni, diff --git a/sdk/android/src/jni/pc/turncustomizer_jni.cc b/sdk/android/src/jni/pc/turncustomizer_jni.cc deleted file mode 100644 index f1c33db474..0000000000 --- a/sdk/android/src/jni/pc/turncustomizer_jni.cc +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright 2017 The WebRTC project authors. All Rights Reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -#include "api/turncustomizer.h" -#include "sdk/android/src/jni/jni_helpers.h" - -namespace webrtc { -namespace jni { - -JNI_FUNCTION_DECLARATION(void, - TurnCustomizer_nativeFreeTurnCustomizer, - JNIEnv* jni, - jclass, - jlong j_turn_customizer_pointer) { - delete reinterpret_cast(j_turn_customizer_pointer); -} - -} // namespace jni -} // namespace webrtc