From f0229767d1835d5857041298ede6348aa8423980 Mon Sep 17 00:00:00 2001 From: Jonas Oreland Date: Thu, 12 Oct 2017 11:18:55 +0200 Subject: [PATCH] Fix bug in recently introduced TurnCustomizer The problem was that TurnCustomizerMaybeModifyOutgoingStunMessage was called before the message was constructed. This is now fixed and tested in TestTurnCustomizer. BUG=webrtc:8313 Change-Id: Ie9a69cc2ff514796af0da987de733b3db8382883 Reviewed-on: https://webrtc-review.googlesource.com/8840 Reviewed-by: Taylor Brandstetter Commit-Queue: Jonas Oreland Cr-Commit-Position: refs/heads/master@{#20261} --- p2p/base/testturncustomizer.h | 2 ++ p2p/base/turnport.cc | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/p2p/base/testturncustomizer.h b/p2p/base/testturncustomizer.h index 33f48fb83e..012306f56c 100644 --- a/p2p/base/testturncustomizer.h +++ b/p2p/base/testturncustomizer.h @@ -12,6 +12,7 @@ #define P2P_BASE_TESTTURNCUSTOMIZER_H_ #include "api/turncustomizer.h" +#include "rtc_base/gunit.h" #include "rtc_base/ptr_util.h" namespace cricket { @@ -31,6 +32,7 @@ class TestTurnCustomizer : public webrtc::TurnCustomizer { cricket::StunMessage* message) override { modify_cnt_ ++; + ASSERT_NE(0, message->type()); if (add_counter_) { message->AddAttribute(rtc::MakeUnique( STUN_ATTR_COUNTER, modify_cnt_)); diff --git a/p2p/base/turnport.cc b/p2p/base/turnport.cc index a0b98bb820..6c8f3e5f68 100644 --- a/p2p/base/turnport.cc +++ b/p2p/base/turnport.cc @@ -956,7 +956,6 @@ bool TurnPort::ScheduleRefresh(int lifetime) { } void TurnPort::SendRequest(StunRequest* req, int delay) { - TurnCustomizerMaybeModifyOutgoingStunMessage(req->mutable_msg()); request_manager_.SendDelayed(req, delay); } @@ -1180,6 +1179,7 @@ void TurnAllocateRequest::Prepare(StunMessage* request) { if (!port_->hash().empty()) { port_->AddRequestAuthInfo(request); } + port_->TurnCustomizerMaybeModifyOutgoingStunMessage(request); } void TurnAllocateRequest::OnSent() { @@ -1354,6 +1354,7 @@ void TurnRefreshRequest::Prepare(StunMessage* request) { } port_->AddRequestAuthInfo(request); + port_->TurnCustomizerMaybeModifyOutgoingStunMessage(request); } void TurnRefreshRequest::OnSent() { @@ -1422,6 +1423,7 @@ void TurnCreatePermissionRequest::Prepare(StunMessage* request) { request->AddAttribute(rtc::MakeUnique( STUN_ATTR_XOR_PEER_ADDRESS, ext_addr_)); port_->AddRequestAuthInfo(request); + port_->TurnCustomizerMaybeModifyOutgoingStunMessage(request); } void TurnCreatePermissionRequest::OnSent() { @@ -1484,6 +1486,7 @@ void TurnChannelBindRequest::Prepare(StunMessage* request) { request->AddAttribute(rtc::MakeUnique( STUN_ATTR_XOR_PEER_ADDRESS, ext_addr_)); port_->AddRequestAuthInfo(request); + port_->TurnCustomizerMaybeModifyOutgoingStunMessage(request); } void TurnChannelBindRequest::OnSent() {