Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(78)

Side by Side Diff: webrtc/p2p/base/relayport.cc

Issue 2757893003: Add MakeUnique from chromium and change StunMessage::AddAttribute to take a unique_ptr. (Closed)
Patch Set: add ptr_util.h to rtc_base_approved build target Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « webrtc/p2p/base/port_unittest.cc ('k') | webrtc/p2p/base/relayserver.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2004 The WebRTC Project Authors. All rights reserved. 2 * Copyright 2004 The WebRTC Project Authors. All rights reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 #include <algorithm> 10 #include <algorithm>
(...skipping 558 matching lines...) Expand 10 before | Expand all | Expand 10 after
569 // Otherwise, we must wrap the given data in a STUN SEND request so that we 569 // Otherwise, we must wrap the given data in a STUN SEND request so that we
570 // can communicate the destination address to the server. 570 // can communicate the destination address to the server.
571 // 571 //
572 // Note that we do not use a StunRequest here. This is because there is 572 // Note that we do not use a StunRequest here. This is because there is
573 // likely no reason to resend this packet. If it is late, we just drop it. 573 // likely no reason to resend this packet. If it is late, we just drop it.
574 // The next send to this address will try again. 574 // The next send to this address will try again.
575 575
576 RelayMessage request; 576 RelayMessage request;
577 request.SetType(STUN_SEND_REQUEST); 577 request.SetType(STUN_SEND_REQUEST);
578 578
579 StunByteStringAttribute* magic_cookie_attr = 579 auto magic_cookie_attr =
580 StunAttribute::CreateByteString(STUN_ATTR_MAGIC_COOKIE); 580 StunAttribute::CreateByteString(STUN_ATTR_MAGIC_COOKIE);
581 magic_cookie_attr->CopyBytes(TURN_MAGIC_COOKIE_VALUE, 581 magic_cookie_attr->CopyBytes(TURN_MAGIC_COOKIE_VALUE,
582 sizeof(TURN_MAGIC_COOKIE_VALUE)); 582 sizeof(TURN_MAGIC_COOKIE_VALUE));
583 request.AddAttribute(magic_cookie_attr); 583 request.AddAttribute(std::move(magic_cookie_attr));
584 584
585 StunByteStringAttribute* username_attr = 585 auto username_attr = StunAttribute::CreateByteString(STUN_ATTR_USERNAME);
586 StunAttribute::CreateByteString(STUN_ATTR_USERNAME);
587 username_attr->CopyBytes(port_->username_fragment().c_str(), 586 username_attr->CopyBytes(port_->username_fragment().c_str(),
588 port_->username_fragment().size()); 587 port_->username_fragment().size());
589 request.AddAttribute(username_attr); 588 request.AddAttribute(std::move(username_attr));
590 589
591 StunAddressAttribute* addr_attr = 590 auto addr_attr = StunAttribute::CreateAddress(STUN_ATTR_DESTINATION_ADDRESS);
592 StunAttribute::CreateAddress(STUN_ATTR_DESTINATION_ADDRESS);
593 addr_attr->SetIP(addr.ipaddr()); 591 addr_attr->SetIP(addr.ipaddr());
594 addr_attr->SetPort(addr.port()); 592 addr_attr->SetPort(addr.port());
595 request.AddAttribute(addr_attr); 593 request.AddAttribute(std::move(addr_attr));
596 594
597 // Attempt to lock 595 // Attempt to lock
598 if (ext_addr_ == addr) { 596 if (ext_addr_ == addr) {
599 StunUInt32Attribute* options_attr = 597 auto options_attr = StunAttribute::CreateUInt32(STUN_ATTR_OPTIONS);
600 StunAttribute::CreateUInt32(STUN_ATTR_OPTIONS);
601 options_attr->SetValue(0x1); 598 options_attr->SetValue(0x1);
602 request.AddAttribute(options_attr); 599 request.AddAttribute(std::move(options_attr));
603 } 600 }
604 601
605 StunByteStringAttribute* data_attr = 602 auto data_attr = StunAttribute::CreateByteString(STUN_ATTR_DATA);
606 StunAttribute::CreateByteString(STUN_ATTR_DATA);
607 data_attr->CopyBytes(data, size); 603 data_attr->CopyBytes(data, size);
608 request.AddAttribute(data_attr); 604 request.AddAttribute(std::move(data_attr));
609 605
610 // TODO: compute the HMAC. 606 // TODO: compute the HMAC.
611 607
612 rtc::ByteBufferWriter buf; 608 rtc::ByteBufferWriter buf;
613 request.Write(&buf); 609 request.Write(&buf);
614 610
615 return SendPacket(buf.Data(), buf.Length(), options); 611 return SendPacket(buf.Data(), buf.Length(), options);
616 } 612 }
617 613
618 void RelayEntry::ScheduleKeepAlive() { 614 void RelayEntry::ScheduleKeepAlive() {
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
780 RelayConnection* connection) 776 RelayConnection* connection)
781 : StunRequest(new RelayMessage()), 777 : StunRequest(new RelayMessage()),
782 entry_(entry), 778 entry_(entry),
783 connection_(connection) { 779 connection_(connection) {
784 start_time_ = rtc::TimeMillis(); 780 start_time_ = rtc::TimeMillis();
785 } 781 }
786 782
787 void AllocateRequest::Prepare(StunMessage* request) { 783 void AllocateRequest::Prepare(StunMessage* request) {
788 request->SetType(STUN_ALLOCATE_REQUEST); 784 request->SetType(STUN_ALLOCATE_REQUEST);
789 785
790 StunByteStringAttribute* username_attr = 786 auto username_attr = StunAttribute::CreateByteString(STUN_ATTR_USERNAME);
791 StunAttribute::CreateByteString(STUN_ATTR_USERNAME);
792 username_attr->CopyBytes( 787 username_attr->CopyBytes(
793 entry_->port()->username_fragment().c_str(), 788 entry_->port()->username_fragment().c_str(),
794 entry_->port()->username_fragment().size()); 789 entry_->port()->username_fragment().size());
795 request->AddAttribute(username_attr); 790 request->AddAttribute(std::move(username_attr));
796 } 791 }
797 792
798 void AllocateRequest::OnSent() { 793 void AllocateRequest::OnSent() {
799 count_ += 1; 794 count_ += 1;
800 if (count_ == 5) 795 if (count_ == 5)
801 timeout_ = true; 796 timeout_ = true;
802 } 797 }
803 798
804 int AllocateRequest::resend_delay() { 799 int AllocateRequest::resend_delay() {
805 if (count_ == 0) { 800 if (count_ == 0) {
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
839 if (rtc::TimeMillis() - start_time_ <= kRetryTimeout) 834 if (rtc::TimeMillis() - start_time_ <= kRetryTimeout)
840 entry_->ScheduleKeepAlive(); 835 entry_->ScheduleKeepAlive();
841 } 836 }
842 837
843 void AllocateRequest::OnTimeout() { 838 void AllocateRequest::OnTimeout() {
844 LOG(INFO) << "Allocate request timed out"; 839 LOG(INFO) << "Allocate request timed out";
845 entry_->HandleConnectFailure(connection_->socket()); 840 entry_->HandleConnectFailure(connection_->socket());
846 } 841 }
847 842
848 } // namespace cricket 843 } // namespace cricket
OLDNEW
« no previous file with comments | « webrtc/p2p/base/port_unittest.cc ('k') | webrtc/p2p/base/relayserver.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698