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 <deadbeef@webrtc.org>
Commit-Queue: Jonas Oreland <jonaso@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20261}
This commit is contained in:
Jonas Oreland 2017-10-12 11:18:55 +02:00 committed by Commit Bot
parent 6188018e1d
commit f0229767d1
2 changed files with 6 additions and 1 deletions

View File

@ -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<cricket::StunUInt32Attribute>(
STUN_ATTR_COUNTER, modify_cnt_));

View File

@ -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<StunXorAddressAttribute>(
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<StunXorAddressAttribute>(
STUN_ATTR_XOR_PEER_ADDRESS, ext_addr_));
port_->AddRequestAuthInfo(request);
port_->TurnCustomizerMaybeModifyOutgoingStunMessage(request);
}
void TurnChannelBindRequest::OnSent() {