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

Side by Side Diff: webrtc/p2p/client/basicportallocator.cc

Issue 1992253005: Removing PORTALLOCATOR_ENABLE_SHAKER. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 4 years, 7 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/client/basicportallocator.h ('k') | no next file » | 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 10
(...skipping 18 matching lines...) Expand all
29 29
30 using rtc::CreateRandomId; 30 using rtc::CreateRandomId;
31 31
32 namespace { 32 namespace {
33 33
34 enum { 34 enum {
35 MSG_CONFIG_START, 35 MSG_CONFIG_START,
36 MSG_CONFIG_READY, 36 MSG_CONFIG_READY,
37 MSG_ALLOCATE, 37 MSG_ALLOCATE,
38 MSG_ALLOCATION_PHASE, 38 MSG_ALLOCATION_PHASE,
39 MSG_SHAKE,
40 MSG_SEQUENCEOBJECTS_CREATED, 39 MSG_SEQUENCEOBJECTS_CREATED,
41 MSG_CONFIG_STOP, 40 MSG_CONFIG_STOP,
42 }; 41 };
43 42
44 const int PHASE_UDP = 0; 43 const int PHASE_UDP = 0;
45 const int PHASE_RELAY = 1; 44 const int PHASE_RELAY = 1;
46 const int PHASE_TCP = 2; 45 const int PHASE_TCP = 2;
47 const int PHASE_SSLTCP = 3; 46 const int PHASE_SSLTCP = 3;
48 47
49 const int kNumPhases = 4; 48 const int kNumPhases = 4;
50 49
51 const int SHAKE_MIN_DELAY = 45 * 1000; // 45 seconds
52 const int SHAKE_MAX_DELAY = 90 * 1000; // 90 seconds
53
54 int ShakeDelay() {
55 int range = SHAKE_MAX_DELAY - SHAKE_MIN_DELAY + 1;
56 return SHAKE_MIN_DELAY + CreateRandomId() % range;
57 }
58
59 } // namespace 50 } // namespace
60 51
61 namespace cricket { 52 namespace cricket {
62 const uint32_t DISABLE_ALL_PHASES = 53 const uint32_t DISABLE_ALL_PHASES =
63 PORTALLOCATOR_DISABLE_UDP | PORTALLOCATOR_DISABLE_TCP | 54 PORTALLOCATOR_DISABLE_UDP | PORTALLOCATOR_DISABLE_TCP |
64 PORTALLOCATOR_DISABLE_STUN | PORTALLOCATOR_DISABLE_RELAY; 55 PORTALLOCATOR_DISABLE_STUN | PORTALLOCATOR_DISABLE_RELAY;
65 56
66 // BasicPortAllocator 57 // BasicPortAllocator
67 BasicPortAllocator::BasicPortAllocator(rtc::NetworkManager* network_manager, 58 BasicPortAllocator::BasicPortAllocator(rtc::NetworkManager* network_manager,
68 rtc::PacketSocketFactory* socket_factory) 59 rtc::PacketSocketFactory* socket_factory)
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
179 void BasicPortAllocatorSession::StartGettingPorts() { 170 void BasicPortAllocatorSession::StartGettingPorts() {
180 network_thread_ = rtc::Thread::Current(); 171 network_thread_ = rtc::Thread::Current();
181 if (!socket_factory_) { 172 if (!socket_factory_) {
182 owned_socket_factory_.reset( 173 owned_socket_factory_.reset(
183 new rtc::BasicPacketSocketFactory(network_thread_)); 174 new rtc::BasicPacketSocketFactory(network_thread_));
184 socket_factory_ = owned_socket_factory_.get(); 175 socket_factory_ = owned_socket_factory_.get();
185 } 176 }
186 177
187 running_ = true; 178 running_ = true;
188 network_thread_->Post(this, MSG_CONFIG_START); 179 network_thread_->Post(this, MSG_CONFIG_START);
189
190 if (flags() & PORTALLOCATOR_ENABLE_SHAKER)
191 network_thread_->PostDelayed(ShakeDelay(), this, MSG_SHAKE);
192 } 180 }
193 181
194 void BasicPortAllocatorSession::StopGettingPorts() { 182 void BasicPortAllocatorSession::StopGettingPorts() {
195 ASSERT(rtc::Thread::Current() == network_thread_); 183 ASSERT(rtc::Thread::Current() == network_thread_);
196 running_ = false; 184 running_ = false;
197 network_thread_->Post(this, MSG_CONFIG_STOP); 185 network_thread_->Post(this, MSG_CONFIG_STOP);
198 ClearGettingPorts(); 186 ClearGettingPorts();
199 } 187 }
200 188
201 void BasicPortAllocatorSession::ClearGettingPorts() { 189 void BasicPortAllocatorSession::ClearGettingPorts() {
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
258 246
259 return true; 247 return true;
260 } 248 }
261 249
262 void BasicPortAllocatorSession::OnMessage(rtc::Message *message) { 250 void BasicPortAllocatorSession::OnMessage(rtc::Message *message) {
263 switch (message->message_id) { 251 switch (message->message_id) {
264 case MSG_CONFIG_START: 252 case MSG_CONFIG_START:
265 ASSERT(rtc::Thread::Current() == network_thread_); 253 ASSERT(rtc::Thread::Current() == network_thread_);
266 GetPortConfigurations(); 254 GetPortConfigurations();
267 break; 255 break;
268
269 case MSG_CONFIG_READY: 256 case MSG_CONFIG_READY:
270 ASSERT(rtc::Thread::Current() == network_thread_); 257 ASSERT(rtc::Thread::Current() == network_thread_);
271 OnConfigReady(static_cast<PortConfiguration*>(message->pdata)); 258 OnConfigReady(static_cast<PortConfiguration*>(message->pdata));
272 break; 259 break;
273
274 case MSG_ALLOCATE: 260 case MSG_ALLOCATE:
275 ASSERT(rtc::Thread::Current() == network_thread_); 261 ASSERT(rtc::Thread::Current() == network_thread_);
276 OnAllocate(); 262 OnAllocate();
277 break; 263 break;
278
279 case MSG_SHAKE:
280 ASSERT(rtc::Thread::Current() == network_thread_);
281 OnShake();
282 break;
283 case MSG_SEQUENCEOBJECTS_CREATED: 264 case MSG_SEQUENCEOBJECTS_CREATED:
284 ASSERT(rtc::Thread::Current() == network_thread_); 265 ASSERT(rtc::Thread::Current() == network_thread_);
285 OnAllocationSequenceObjectsCreated(); 266 OnAllocationSequenceObjectsCreated();
286 break; 267 break;
287 case MSG_CONFIG_STOP: 268 case MSG_CONFIG_STOP:
288 ASSERT(rtc::Thread::Current() == network_thread_); 269 ASSERT(rtc::Thread::Current() == network_thread_);
289 OnConfigStop(); 270 OnConfigStop();
290 break; 271 break;
291 default: 272 default:
292 ASSERT(false); 273 ASSERT(false);
(...skipping 413 matching lines...) Expand 10 before | Expand all | Expand 10 after
706 if (port == iter->port()) { 687 if (port == iter->port()) {
707 ports_.erase(iter); 688 ports_.erase(iter);
708 LOG_J(LS_INFO, port) << "Removed port from allocator (" 689 LOG_J(LS_INFO, port) << "Removed port from allocator ("
709 << static_cast<int>(ports_.size()) << " remaining)"; 690 << static_cast<int>(ports_.size()) << " remaining)";
710 return; 691 return;
711 } 692 }
712 } 693 }
713 ASSERT(false); 694 ASSERT(false);
714 } 695 }
715 696
716 void BasicPortAllocatorSession::OnShake() {
717 LOG(INFO) << ">>>>> SHAKE <<<<< >>>>> SHAKE <<<<< >>>>> SHAKE <<<<<";
718
719 std::vector<Port*> ports;
720 std::vector<Connection*> connections;
721
722 for (size_t i = 0; i < ports_.size(); ++i) {
723 if (ports_[i].ready())
724 ports.push_back(ports_[i].port());
725 }
726
727 for (size_t i = 0; i < ports.size(); ++i) {
728 Port::AddressMap::const_iterator iter;
729 for (iter = ports[i]->connections().begin();
730 iter != ports[i]->connections().end();
731 ++iter) {
732 connections.push_back(iter->second);
733 }
734 }
735
736 LOG(INFO) << ">>>>> Destroying " << ports.size() << " ports and "
737 << connections.size() << " connections";
738
739 for (size_t i = 0; i < connections.size(); ++i)
740 connections[i]->Destroy();
741
742 if (running_ || (ports.size() > 0) || (connections.size() > 0))
743 network_thread_->PostDelayed(ShakeDelay(), this, MSG_SHAKE);
744 }
745
746 BasicPortAllocatorSession::PortData* BasicPortAllocatorSession::FindPort( 697 BasicPortAllocatorSession::PortData* BasicPortAllocatorSession::FindPort(
747 Port* port) { 698 Port* port) {
748 for (std::vector<PortData>::iterator it = ports_.begin(); 699 for (std::vector<PortData>::iterator it = ports_.begin();
749 it != ports_.end(); ++it) { 700 it != ports_.end(); ++it) {
750 if (it->port() == port) { 701 if (it->port() == port) {
751 return &*it; 702 return &*it;
752 } 703 }
753 } 704 }
754 return NULL; 705 return NULL;
755 } 706 }
(...skipping 477 matching lines...) Expand 10 before | Expand all | Expand 10 after
1233 ServerAddresses servers; 1184 ServerAddresses servers;
1234 for (size_t i = 0; i < relays.size(); ++i) { 1185 for (size_t i = 0; i < relays.size(); ++i) {
1235 if (relays[i].type == turn_type && SupportsProtocol(relays[i], type)) { 1186 if (relays[i].type == turn_type && SupportsProtocol(relays[i], type)) {
1236 servers.insert(relays[i].ports.front().address); 1187 servers.insert(relays[i].ports.front().address);
1237 } 1188 }
1238 } 1189 }
1239 return servers; 1190 return servers;
1240 } 1191 }
1241 1192
1242 } // namespace cricket 1193 } // namespace cricket
OLDNEW
« no previous file with comments | « webrtc/p2p/client/basicportallocator.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698