| Index: webrtc/p2p/base/port.cc
|
| diff --git a/webrtc/p2p/base/port.cc b/webrtc/p2p/base/port.cc
|
| index 559fe725495f2a6afb9bbdeee7e02b20494e7f60..72f92b20ab25b01546047167b3e1409f0df36d69 100644
|
| --- a/webrtc/p2p/base/port.cc
|
| +++ b/webrtc/p2p/base/port.cc
|
| @@ -13,8 +13,6 @@
|
| #include <algorithm>
|
| #include <vector>
|
|
|
| -#include "webrtc/p2p/base/common.h"
|
| -#include "webrtc/p2p/base/portallocator.h"
|
| #include "webrtc/base/base64.h"
|
| #include "webrtc/base/checks.h"
|
| #include "webrtc/base/crc32.h"
|
| @@ -22,8 +20,11 @@
|
| #include "webrtc/base/logging.h"
|
| #include "webrtc/base/messagedigest.h"
|
| #include "webrtc/base/network.h"
|
| +#include "webrtc/base/ptr_util.h"
|
| #include "webrtc/base/stringencode.h"
|
| #include "webrtc/base/stringutils.h"
|
| +#include "webrtc/p2p/base/common.h"
|
| +#include "webrtc/p2p/base/portallocator.h"
|
|
|
| namespace {
|
|
|
| @@ -598,7 +599,7 @@ void Port::SendBindingResponse(StunMessage* request,
|
| if (retransmit_attr) {
|
| // Inherit the incoming retransmit value in the response so the other side
|
| // can see our view of lost pings.
|
| - response.AddAttribute(new StunUInt32Attribute(
|
| + response.AddAttribute(rtc::MakeUnique<StunUInt32Attribute>(
|
| STUN_ATTR_RETRANSMIT_COUNT, retransmit_attr->value()));
|
|
|
| if (retransmit_attr->value() > CONNECTION_WRITE_CONNECT_FAILURES) {
|
| @@ -608,8 +609,8 @@ void Port::SendBindingResponse(StunMessage* request,
|
| }
|
| }
|
|
|
| - response.AddAttribute(
|
| - new StunXorAddressAttribute(STUN_ATTR_XOR_MAPPED_ADDRESS, addr));
|
| + response.AddAttribute(rtc::MakeUnique<StunXorAddressAttribute>(
|
| + STUN_ATTR_XOR_MAPPED_ADDRESS, addr));
|
| response.AddMessageIntegrity(password_);
|
| response.AddFingerprint();
|
|
|
| @@ -651,10 +652,10 @@ void Port::SendBindingErrorResponse(StunMessage* request,
|
|
|
| // When doing GICE, we need to write out the error code incorrectly to
|
| // maintain backwards compatiblility.
|
| - StunErrorCodeAttribute* error_attr = StunAttribute::CreateErrorCode();
|
| + auto error_attr = StunAttribute::CreateErrorCode();
|
| error_attr->SetCode(error_code);
|
| error_attr->SetReason(reason);
|
| - response.AddAttribute(error_attr);
|
| + response.AddAttribute(std::move(error_attr));
|
|
|
| // Per Section 10.1.2, certain error cases don't get a MESSAGE-INTEGRITY,
|
| // because we don't have enough information to determine the shared secret.
|
| @@ -783,37 +784,37 @@ class ConnectionRequest : public StunRequest {
|
| connection_->port()->CreateStunUsername(
|
| connection_->remote_candidate().username(), &username);
|
| request->AddAttribute(
|
| - new StunByteStringAttribute(STUN_ATTR_USERNAME, username));
|
| + rtc::MakeUnique<StunByteStringAttribute>(STUN_ATTR_USERNAME, username));
|
|
|
| // connection_ already holds this ping, so subtract one from count.
|
| if (connection_->port()->send_retransmit_count_attribute()) {
|
| - request->AddAttribute(new StunUInt32Attribute(
|
| + request->AddAttribute(rtc::MakeUnique<StunUInt32Attribute>(
|
| STUN_ATTR_RETRANSMIT_COUNT,
|
| static_cast<uint32_t>(connection_->pings_since_last_response_.size() -
|
| 1)));
|
| }
|
| uint32_t network_info = connection_->port()->Network()->id();
|
| network_info = (network_info << 16) | connection_->port()->network_cost();
|
| - request->AddAttribute(
|
| - new StunUInt32Attribute(STUN_ATTR_NETWORK_INFO, network_info));
|
| + request->AddAttribute(rtc::MakeUnique<StunUInt32Attribute>(
|
| + STUN_ATTR_NETWORK_INFO, network_info));
|
|
|
| // Adding ICE_CONTROLLED or ICE_CONTROLLING attribute based on the role.
|
| if (connection_->port()->GetIceRole() == ICEROLE_CONTROLLING) {
|
| - request->AddAttribute(new StunUInt64Attribute(
|
| + request->AddAttribute(rtc::MakeUnique<StunUInt64Attribute>(
|
| STUN_ATTR_ICE_CONTROLLING, connection_->port()->IceTiebreaker()));
|
| // We should have either USE_CANDIDATE attribute or ICE_NOMINATION
|
| // attribute but not both. That was enforced in p2ptransportchannel.
|
| if (connection_->use_candidate_attr()) {
|
| - request->AddAttribute(new StunByteStringAttribute(
|
| - STUN_ATTR_USE_CANDIDATE));
|
| + request->AddAttribute(
|
| + rtc::MakeUnique<StunByteStringAttribute>(STUN_ATTR_USE_CANDIDATE));
|
| }
|
| if (connection_->nomination() &&
|
| connection_->nomination() != connection_->acked_nomination()) {
|
| - request->AddAttribute(new StunUInt32Attribute(
|
| + request->AddAttribute(rtc::MakeUnique<StunUInt32Attribute>(
|
| STUN_ATTR_NOMINATION, connection_->nomination()));
|
| }
|
| } else if (connection_->port()->GetIceRole() == ICEROLE_CONTROLLED) {
|
| - request->AddAttribute(new StunUInt64Attribute(
|
| + request->AddAttribute(rtc::MakeUnique<StunUInt64Attribute>(
|
| STUN_ATTR_ICE_CONTROLLED, connection_->port()->IceTiebreaker()));
|
| } else {
|
| RTC_NOTREACHED();
|
| @@ -832,8 +833,8 @@ class ConnectionRequest : public StunRequest {
|
| uint32_t prflx_priority =
|
| type_preference << 24 |
|
| (connection_->local_candidate().priority() & 0x00FFFFFF);
|
| - request->AddAttribute(
|
| - new StunUInt32Attribute(STUN_ATTR_PRIORITY, prflx_priority));
|
| + request->AddAttribute(rtc::MakeUnique<StunUInt32Attribute>(
|
| + STUN_ATTR_PRIORITY, prflx_priority));
|
|
|
| // Adding Message Integrity attribute.
|
| request->AddMessageIntegrity(connection_->remote_candidate().password());
|
|
|