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

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

Issue 1362503003: Use suffixed {uint,int}{8,16,32,64}_t types. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: google::int32 Created 5 years, 3 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
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 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 const int SHAKE_MAX_DELAY = 90 * 1000; // 90 seconds 52 const int SHAKE_MAX_DELAY = 90 * 1000; // 90 seconds
53 53
54 int ShakeDelay() { 54 int ShakeDelay() {
55 int range = SHAKE_MAX_DELAY - SHAKE_MIN_DELAY + 1; 55 int range = SHAKE_MAX_DELAY - SHAKE_MIN_DELAY + 1;
56 return SHAKE_MIN_DELAY + CreateRandomId() % range; 56 return SHAKE_MIN_DELAY + CreateRandomId() % range;
57 } 57 }
58 58
59 } // namespace 59 } // namespace
60 60
61 namespace cricket { 61 namespace cricket {
62 const uint32 DISABLE_ALL_PHASES = 62 const uint32_t DISABLE_ALL_PHASES =
63 PORTALLOCATOR_DISABLE_UDP | PORTALLOCATOR_DISABLE_TCP | 63 PORTALLOCATOR_DISABLE_UDP | PORTALLOCATOR_DISABLE_TCP |
64 PORTALLOCATOR_DISABLE_STUN | PORTALLOCATOR_DISABLE_RELAY; 64 PORTALLOCATOR_DISABLE_STUN | PORTALLOCATOR_DISABLE_RELAY;
65 65
66 // BasicPortAllocator 66 // BasicPortAllocator
67 BasicPortAllocator::BasicPortAllocator( 67 BasicPortAllocator::BasicPortAllocator(
68 rtc::NetworkManager* network_manager, 68 rtc::NetworkManager* network_manager,
69 rtc::PacketSocketFactory* socket_factory) 69 rtc::PacketSocketFactory* socket_factory)
70 : network_manager_(network_manager), 70 : network_manager_(network_manager),
71 socket_factory_(socket_factory), 71 socket_factory_(socket_factory),
72 stun_servers_() { 72 stun_servers_() {
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 allocator_->network_manager()->SignalNetworksChanged.connect( 150 allocator_->network_manager()->SignalNetworksChanged.connect(
151 this, &BasicPortAllocatorSession::OnNetworksChanged); 151 this, &BasicPortAllocatorSession::OnNetworksChanged);
152 allocator_->network_manager()->StartUpdating(); 152 allocator_->network_manager()->StartUpdating();
153 } 153 }
154 154
155 BasicPortAllocatorSession::~BasicPortAllocatorSession() { 155 BasicPortAllocatorSession::~BasicPortAllocatorSession() {
156 allocator_->network_manager()->StopUpdating(); 156 allocator_->network_manager()->StopUpdating();
157 if (network_thread_ != NULL) 157 if (network_thread_ != NULL)
158 network_thread_->Clear(this); 158 network_thread_->Clear(this);
159 159
160 for (uint32 i = 0; i < sequences_.size(); ++i) { 160 for (uint32_t i = 0; i < sequences_.size(); ++i) {
161 // AllocationSequence should clear it's map entry for turn ports before 161 // AllocationSequence should clear it's map entry for turn ports before
162 // ports are destroyed. 162 // ports are destroyed.
163 sequences_[i]->Clear(); 163 sequences_[i]->Clear();
164 } 164 }
165 165
166 std::vector<PortData>::iterator it; 166 std::vector<PortData>::iterator it;
167 for (it = ports_.begin(); it != ports_.end(); it++) 167 for (it = ports_.begin(); it != ports_.end(); it++)
168 delete it->port(); 168 delete it->port();
169 169
170 for (uint32 i = 0; i < configs_.size(); ++i) 170 for (uint32_t i = 0; i < configs_.size(); ++i)
171 delete configs_[i]; 171 delete configs_[i];
172 172
173 for (uint32 i = 0; i < sequences_.size(); ++i) 173 for (uint32_t i = 0; i < sequences_.size(); ++i)
174 delete sequences_[i]; 174 delete sequences_[i];
175 } 175 }
176 176
177 void BasicPortAllocatorSession::StartGettingPorts() { 177 void BasicPortAllocatorSession::StartGettingPorts() {
178 network_thread_ = rtc::Thread::Current(); 178 network_thread_ = rtc::Thread::Current();
179 if (!socket_factory_) { 179 if (!socket_factory_) {
180 owned_socket_factory_.reset( 180 owned_socket_factory_.reset(
181 new rtc::BasicPacketSocketFactory(network_thread_)); 181 new rtc::BasicPacketSocketFactory(network_thread_));
182 socket_factory_ = owned_socket_factory_.get(); 182 socket_factory_ = owned_socket_factory_.get();
183 } 183 }
184 184
185 running_ = true; 185 running_ = true;
186 network_thread_->Post(this, MSG_CONFIG_START); 186 network_thread_->Post(this, MSG_CONFIG_START);
187 187
188 if (flags() & PORTALLOCATOR_ENABLE_SHAKER) 188 if (flags() & PORTALLOCATOR_ENABLE_SHAKER)
189 network_thread_->PostDelayed(ShakeDelay(), this, MSG_SHAKE); 189 network_thread_->PostDelayed(ShakeDelay(), this, MSG_SHAKE);
190 } 190 }
191 191
192 void BasicPortAllocatorSession::StopGettingPorts() { 192 void BasicPortAllocatorSession::StopGettingPorts() {
193 ASSERT(rtc::Thread::Current() == network_thread_); 193 ASSERT(rtc::Thread::Current() == network_thread_);
194 running_ = false; 194 running_ = false;
195 network_thread_->Clear(this, MSG_ALLOCATE); 195 network_thread_->Clear(this, MSG_ALLOCATE);
196 for (uint32 i = 0; i < sequences_.size(); ++i) 196 for (uint32_t i = 0; i < sequences_.size(); ++i)
197 sequences_[i]->Stop(); 197 sequences_[i]->Stop();
198 network_thread_->Post(this, MSG_CONFIG_STOP); 198 network_thread_->Post(this, MSG_CONFIG_STOP);
199 } 199 }
200 200
201 void BasicPortAllocatorSession::OnMessage(rtc::Message *message) { 201 void BasicPortAllocatorSession::OnMessage(rtc::Message *message) {
202 switch (message->message_id) { 202 switch (message->message_id) {
203 case MSG_CONFIG_START: 203 case MSG_CONFIG_START:
204 ASSERT(rtc::Thread::Current() == network_thread_); 204 ASSERT(rtc::Thread::Current() == network_thread_);
205 GetPortConfigurations(); 205 GetPortConfigurations();
206 break; 206 break;
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
317 // during stun process. 317 // during stun process.
318 if (flags() & PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION) { 318 if (flags() & PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION) {
319 allocator_->network_manager()->GetAnyAddressNetworks(&networks); 319 allocator_->network_manager()->GetAnyAddressNetworks(&networks);
320 } else { 320 } else {
321 allocator_->network_manager()->GetNetworks(&networks); 321 allocator_->network_manager()->GetNetworks(&networks);
322 } 322 }
323 if (networks.empty()) { 323 if (networks.empty()) {
324 LOG(LS_WARNING) << "Machine has no networks; no ports will be allocated"; 324 LOG(LS_WARNING) << "Machine has no networks; no ports will be allocated";
325 done_signal_needed = true; 325 done_signal_needed = true;
326 } else { 326 } else {
327 for (uint32 i = 0; i < networks.size(); ++i) { 327 for (uint32_t i = 0; i < networks.size(); ++i) {
328 PortConfiguration* config = NULL; 328 PortConfiguration* config = NULL;
329 if (configs_.size() > 0) 329 if (configs_.size() > 0)
330 config = configs_.back(); 330 config = configs_.back();
331 331
332 uint32 sequence_flags = flags(); 332 uint32_t sequence_flags = flags();
333 if ((sequence_flags & DISABLE_ALL_PHASES) == DISABLE_ALL_PHASES) { 333 if ((sequence_flags & DISABLE_ALL_PHASES) == DISABLE_ALL_PHASES) {
334 // If all the ports are disabled we should just fire the allocation 334 // If all the ports are disabled we should just fire the allocation
335 // done event and return. 335 // done event and return.
336 done_signal_needed = true; 336 done_signal_needed = true;
337 break; 337 break;
338 } 338 }
339 339
340 if (!config || config->relays.empty()) { 340 if (!config || config->relays.empty()) {
341 // No relay ports specified in this config. 341 // No relay ports specified in this config.
342 sequence_flags |= PORTALLOCATOR_DISABLE_RELAY; 342 sequence_flags |= PORTALLOCATOR_DISABLE_RELAY;
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
376 } 376 }
377 } 377 }
378 378
379 void BasicPortAllocatorSession::OnNetworksChanged() { 379 void BasicPortAllocatorSession::OnNetworksChanged() {
380 network_manager_started_ = true; 380 network_manager_started_ = true;
381 if (allocation_started_) 381 if (allocation_started_)
382 DoAllocate(); 382 DoAllocate();
383 } 383 }
384 384
385 void BasicPortAllocatorSession::DisableEquivalentPhases( 385 void BasicPortAllocatorSession::DisableEquivalentPhases(
386 rtc::Network* network, PortConfiguration* config, uint32* flags) { 386 rtc::Network* network,
387 for (uint32 i = 0; i < sequences_.size() && 387 PortConfiguration* config,
388 (*flags & DISABLE_ALL_PHASES) != DISABLE_ALL_PHASES; ++i) { 388 uint32_t* flags) {
389 for (uint32_t i = 0; i < sequences_.size() &&
390 (*flags & DISABLE_ALL_PHASES) != DISABLE_ALL_PHASES;
391 ++i) {
389 sequences_[i]->DisableEquivalentPhases(network, config, flags); 392 sequences_[i]->DisableEquivalentPhases(network, config, flags);
390 } 393 }
391 } 394 }
392 395
393 void BasicPortAllocatorSession::AddAllocatedPort(Port* port, 396 void BasicPortAllocatorSession::AddAllocatedPort(Port* port,
394 AllocationSequence * seq, 397 AllocationSequence * seq,
395 bool prepare_address) { 398 bool prepare_address) {
396 if (!port) 399 if (!port)
397 return; 400 return;
398 401
399 LOG(LS_INFO) << "Adding allocated port for " << content_name(); 402 LOG(LS_INFO) << "Adding allocated port for " << content_name();
400 port->set_content_name(content_name()); 403 port->set_content_name(content_name());
401 port->set_component(component_); 404 port->set_component(component_);
402 port->set_generation(generation()); 405 port->set_generation(generation());
403 if (allocator_->proxy().type != rtc::PROXY_NONE) 406 if (allocator_->proxy().type != rtc::PROXY_NONE)
404 port->set_proxy(allocator_->user_agent(), allocator_->proxy()); 407 port->set_proxy(allocator_->user_agent(), allocator_->proxy());
405 port->set_send_retransmit_count_attribute((allocator_->flags() & 408 port->set_send_retransmit_count_attribute((allocator_->flags() &
406 PORTALLOCATOR_ENABLE_STUN_RETRANSMIT_ATTRIBUTE) != 0); 409 PORTALLOCATOR_ENABLE_STUN_RETRANSMIT_ATTRIBUTE) != 0);
407 410
408 // Push down the candidate_filter to individual port. 411 // Push down the candidate_filter to individual port.
409 uint32 candidate_filter = allocator_->candidate_filter(); 412 uint32_t candidate_filter = allocator_->candidate_filter();
410 413
411 // When adapter enumeration is disabled, disable CF_HOST at port level so 414 // When adapter enumeration is disabled, disable CF_HOST at port level so
412 // local address is not leaked by stunport in the candidate's related address. 415 // local address is not leaked by stunport in the candidate's related address.
413 if (flags() & PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION) { 416 if (flags() & PORTALLOCATOR_DISABLE_ADAPTER_ENUMERATION) {
414 candidate_filter &= ~CF_HOST; 417 candidate_filter &= ~CF_HOST;
415 } 418 }
416 port->set_candidate_filter(candidate_filter); 419 port->set_candidate_filter(candidate_filter);
417 420
418 PortData data(port, seq); 421 PortData data(port, seq);
419 ports_.push_back(data); 422 ports_.push_back(data);
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
530 } 533 }
531 } 534 }
532 } 535 }
533 536
534 if (!candidates.empty()) { 537 if (!candidates.empty()) {
535 SignalCandidatesReady(this, candidates); 538 SignalCandidatesReady(this, candidates);
536 } 539 }
537 } 540 }
538 541
539 bool BasicPortAllocatorSession::CheckCandidateFilter(const Candidate& c) { 542 bool BasicPortAllocatorSession::CheckCandidateFilter(const Candidate& c) {
540 uint32 filter = allocator_->candidate_filter(); 543 uint32_t filter = allocator_->candidate_filter();
541 544
542 // When binding to any address, before sending packets out, the getsockname 545 // When binding to any address, before sending packets out, the getsockname
543 // returns all 0s, but after sending packets, it'll be the NIC used to 546 // returns all 0s, but after sending packets, it'll be the NIC used to
544 // send. All 0s is not a valid ICE candidate address and should be filtered 547 // send. All 0s is not a valid ICE candidate address and should be filtered
545 // out. 548 // out.
546 if (c.address().IsAnyIP()) { 549 if (c.address().IsAnyIP()) {
547 return false; 550 return false;
548 } 551 }
549 552
550 if (c.type() == RELAY_PORT_TYPE) { 553 if (c.type() == RELAY_PORT_TYPE) {
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
672 } 675 }
673 } 676 }
674 return NULL; 677 return NULL;
675 } 678 }
676 679
677 // AllocationSequence 680 // AllocationSequence
678 681
679 AllocationSequence::AllocationSequence(BasicPortAllocatorSession* session, 682 AllocationSequence::AllocationSequence(BasicPortAllocatorSession* session,
680 rtc::Network* network, 683 rtc::Network* network,
681 PortConfiguration* config, 684 PortConfiguration* config,
682 uint32 flags) 685 uint32_t flags)
683 : session_(session), 686 : session_(session),
684 network_(network), 687 network_(network),
685 ip_(network->GetBestIP()), 688 ip_(network->GetBestIP()),
686 config_(config), 689 config_(config),
687 state_(kInit), 690 state_(kInit),
688 flags_(flags), 691 flags_(flags),
689 udp_socket_(), 692 udp_socket_(),
690 udp_port_(NULL), 693 udp_port_(NULL),
691 phase_(0) { 694 phase_(0) {
692 } 695 }
(...skipping 16 matching lines...) Expand all
709 void AllocationSequence::Clear() { 712 void AllocationSequence::Clear() {
710 udp_port_ = NULL; 713 udp_port_ = NULL;
711 turn_ports_.clear(); 714 turn_ports_.clear();
712 } 715 }
713 716
714 AllocationSequence::~AllocationSequence() { 717 AllocationSequence::~AllocationSequence() {
715 session_->network_thread()->Clear(this); 718 session_->network_thread()->Clear(this);
716 } 719 }
717 720
718 void AllocationSequence::DisableEquivalentPhases(rtc::Network* network, 721 void AllocationSequence::DisableEquivalentPhases(rtc::Network* network,
719 PortConfiguration* config, uint32* flags) { 722 PortConfiguration* config,
723 uint32_t* flags) {
720 if (!((network == network_) && (ip_ == network->GetBestIP()))) { 724 if (!((network == network_) && (ip_ == network->GetBestIP()))) {
721 // Different network setup; nothing is equivalent. 725 // Different network setup; nothing is equivalent.
722 return; 726 return;
723 } 727 }
724 728
725 // Else turn off the stuff that we've already got covered. 729 // Else turn off the stuff that we've already got covered.
726 730
727 // Every config implicitly specifies local, so turn that off right away. 731 // Every config implicitly specifies local, so turn that off right away.
728 *flags |= PORTALLOCATOR_DISABLE_UDP; 732 *flags |= PORTALLOCATOR_DISABLE_UDP;
729 *flags |= PORTALLOCATOR_DISABLE_TCP; 733 *flags |= PORTALLOCATOR_DISABLE_TCP;
(...skipping 410 matching lines...) Expand 10 before | Expand all | Expand 10 after
1140 ServerAddresses servers; 1144 ServerAddresses servers;
1141 for (size_t i = 0; i < relays.size(); ++i) { 1145 for (size_t i = 0; i < relays.size(); ++i) {
1142 if (relays[i].type == turn_type && SupportsProtocol(relays[i], type)) { 1146 if (relays[i].type == turn_type && SupportsProtocol(relays[i], type)) {
1143 servers.insert(relays[i].ports.front().address); 1147 servers.insert(relays[i].ports.front().address);
1144 } 1148 }
1145 } 1149 }
1146 return servers; 1150 return servers;
1147 } 1151 }
1148 1152
1149 } // namespace cricket 1153 } // namespace cricket
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698