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

Side by Side Diff: webrtc/p2p/base/relayserver.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: rebase + revert basictypes.h (to be landed separately just in case of a revert due to unexpected us… Created 5 years, 2 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/relayserver.h ('k') | webrtc/p2p/base/relayserver_unittest.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 10
11 #include "webrtc/p2p/base/relayserver.h" 11 #include "webrtc/p2p/base/relayserver.h"
12 12
13 #ifdef WEBRTC_POSIX 13 #ifdef WEBRTC_POSIX
14 #include <errno.h> 14 #include <errno.h>
15 #endif // WEBRTC_POSIX 15 #endif // WEBRTC_POSIX
16 16
17 #include <algorithm> 17 #include <algorithm>
18 18
19 #include "webrtc/base/asynctcpsocket.h" 19 #include "webrtc/base/asynctcpsocket.h"
20 #include "webrtc/base/helpers.h" 20 #include "webrtc/base/helpers.h"
21 #include "webrtc/base/logging.h" 21 #include "webrtc/base/logging.h"
22 #include "webrtc/base/socketadapters.h" 22 #include "webrtc/base/socketadapters.h"
23 23
24 namespace cricket { 24 namespace cricket {
25 25
26 // By default, we require a ping every 90 seconds. 26 // By default, we require a ping every 90 seconds.
27 const int MAX_LIFETIME = 15 * 60 * 1000; 27 const int MAX_LIFETIME = 15 * 60 * 1000;
28 28
29 // The number of bytes in each of the usernames we use. 29 // The number of bytes in each of the usernames we use.
30 const uint32 USERNAME_LENGTH = 16; 30 const uint32_t USERNAME_LENGTH = 16;
31 31
32 // Calls SendTo on the given socket and logs any bad results. 32 // Calls SendTo on the given socket and logs any bad results.
33 void Send(rtc::AsyncPacketSocket* socket, const char* bytes, size_t size, 33 void Send(rtc::AsyncPacketSocket* socket, const char* bytes, size_t size,
34 const rtc::SocketAddress& addr) { 34 const rtc::SocketAddress& addr) {
35 rtc::PacketOptions options; 35 rtc::PacketOptions options;
36 int result = socket->SendTo(bytes, size, addr, options); 36 int result = socket->SendTo(bytes, size, addr, options);
37 if (result < static_cast<int>(size)) { 37 if (result < static_cast<int>(size)) {
38 LOG(LS_ERROR) << "SendTo wrote only " << result << " of " << size 38 LOG(LS_ERROR) << "SendTo wrote only " << result << " of " << size
39 << " bytes"; 39 << " bytes";
40 } else if (result < 0) { 40 } else if (result < 0) {
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after
256 } 256 }
257 257
258 // The initial packet should have a username (which identifies the binding). 258 // The initial packet should have a username (which identifies the binding).
259 const StunByteStringAttribute* username_attr = 259 const StunByteStringAttribute* username_attr =
260 msg.GetByteString(STUN_ATTR_USERNAME); 260 msg.GetByteString(STUN_ATTR_USERNAME);
261 if (!username_attr) { 261 if (!username_attr) {
262 LOG(LS_WARNING) << "Dropping packet: no username"; 262 LOG(LS_WARNING) << "Dropping packet: no username";
263 return; 263 return;
264 } 264 }
265 265
266 uint32 length = 266 uint32_t length =
267 std::min(static_cast<uint32>(username_attr->length()), USERNAME_LENGTH); 267 std::min(static_cast<uint32_t>(username_attr->length()), USERNAME_LENGTH);
268 std::string username(username_attr->bytes(), length); 268 std::string username(username_attr->bytes(), length);
269 // TODO: Check the HMAC. 269 // TODO: Check the HMAC.
270 270
271 // The binding should already be present. 271 // The binding should already be present.
272 BindingMap::iterator biter = bindings_.find(username); 272 BindingMap::iterator biter = bindings_.find(username);
273 if (biter == bindings_.end()) { 273 if (biter == bindings_.end()) {
274 LOG(LS_WARNING) << "Dropping packet: no binding with username"; 274 LOG(LS_WARNING) << "Dropping packet: no binding with username";
275 return; 275 return;
276 } 276 }
277 277
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
348 RelayServerBinding* binding; 348 RelayServerBinding* binding;
349 349
350 BindingMap::iterator biter = bindings_.find(username); 350 BindingMap::iterator biter = bindings_.find(username);
351 if (biter != bindings_.end()) { 351 if (biter != bindings_.end()) {
352 binding = biter->second; 352 binding = biter->second;
353 } else { 353 } else {
354 // NOTE: In the future, bindings will be created by the bot only. This 354 // NOTE: In the future, bindings will be created by the bot only. This
355 // else-branch will then disappear. 355 // else-branch will then disappear.
356 356
357 // Compute the appropriate lifetime for this binding. 357 // Compute the appropriate lifetime for this binding.
358 uint32 lifetime = MAX_LIFETIME; 358 uint32_t lifetime = MAX_LIFETIME;
359 const StunUInt32Attribute* lifetime_attr = 359 const StunUInt32Attribute* lifetime_attr =
360 request.GetUInt32(STUN_ATTR_LIFETIME); 360 request.GetUInt32(STUN_ATTR_LIFETIME);
361 if (lifetime_attr) 361 if (lifetime_attr)
362 lifetime = std::min(lifetime, lifetime_attr->value() * 1000); 362 lifetime = std::min(lifetime, lifetime_attr->value() * 1000);
363 363
364 binding = new RelayServerBinding(this, username, "0", lifetime); 364 binding = new RelayServerBinding(this, username, "0", lifetime);
365 binding->SignalTimeout.connect(this, &RelayServer::OnTimeout); 365 binding->SignalTimeout.connect(this, &RelayServer::OnTimeout);
366 bindings_[username] = binding; 366 bindings_[username] = binding;
367 367
368 if (log_bindings_) { 368 if (log_bindings_) {
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
523 bindings_.erase(iter); 523 bindings_.erase(iter);
524 524
525 if (log_bindings_) { 525 if (log_bindings_) {
526 LOG(LS_INFO) << "Removed binding " << binding->username() << ", " 526 LOG(LS_INFO) << "Removed binding " << binding->username() << ", "
527 << bindings_.size() << " remaining"; 527 << bindings_.size() << " remaining";
528 } 528 }
529 } 529 }
530 530
531 void RelayServer::OnMessage(rtc::Message *pmsg) { 531 void RelayServer::OnMessage(rtc::Message *pmsg) {
532 #if ENABLE_DEBUG 532 #if ENABLE_DEBUG
533 static const uint32 kMessageAcceptConnection = 1; 533 static const uint32_t kMessageAcceptConnection = 1;
534 ASSERT(pmsg->message_id == kMessageAcceptConnection); 534 ASSERT(pmsg->message_id == kMessageAcceptConnection);
535 #endif 535 #endif
536 rtc::MessageData* data = pmsg->pdata; 536 rtc::MessageData* data = pmsg->pdata;
537 rtc::AsyncSocket* socket = 537 rtc::AsyncSocket* socket =
538 static_cast <rtc::TypedMessageData<rtc::AsyncSocket*>*> 538 static_cast <rtc::TypedMessageData<rtc::AsyncSocket*>*>
539 (data)->data(); 539 (data)->data();
540 AcceptConnection(socket); 540 AcceptConnection(socket);
541 delete data; 541 delete data;
542 } 542 }
543 543
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
609 609
610 StunAddressAttribute* addr_attr = 610 StunAddressAttribute* addr_attr =
611 StunAttribute::CreateAddress(STUN_ATTR_SOURCE_ADDRESS2); 611 StunAttribute::CreateAddress(STUN_ATTR_SOURCE_ADDRESS2);
612 addr_attr->SetIP(from_addr.ipaddr()); 612 addr_attr->SetIP(from_addr.ipaddr());
613 addr_attr->SetPort(from_addr.port()); 613 addr_attr->SetPort(from_addr.port());
614 msg.AddAttribute(addr_attr); 614 msg.AddAttribute(addr_attr);
615 615
616 StunByteStringAttribute* data_attr = 616 StunByteStringAttribute* data_attr =
617 StunAttribute::CreateByteString(STUN_ATTR_DATA); 617 StunAttribute::CreateByteString(STUN_ATTR_DATA);
618 ASSERT(size <= 65536); 618 ASSERT(size <= 65536);
619 data_attr->CopyBytes(data, uint16(size)); 619 data_attr->CopyBytes(data, uint16_t(size));
620 msg.AddAttribute(data_attr); 620 msg.AddAttribute(data_attr);
621 621
622 SendStun(msg); 622 SendStun(msg);
623 } 623 }
624 624
625 void RelayServerConnection::SendStun(const StunMessage& msg) { 625 void RelayServerConnection::SendStun(const StunMessage& msg) {
626 // Note that the binding has been used again. 626 // Note that the binding has been used again.
627 binding_->NoteUsed(); 627 binding_->NoteUsed();
628 628
629 cricket::SendStun(msg, socket_, addr_pair_.source()); 629 cricket::SendStun(msg, socket_, addr_pair_.source());
(...skipping 11 matching lines...) Expand all
641 641
642 void RelayServerConnection::Lock() { 642 void RelayServerConnection::Lock() {
643 locked_ = true; 643 locked_ = true;
644 } 644 }
645 645
646 void RelayServerConnection::Unlock() { 646 void RelayServerConnection::Unlock() {
647 locked_ = false; 647 locked_ = false;
648 } 648 }
649 649
650 // IDs used for posted messages: 650 // IDs used for posted messages:
651 const uint32 MSG_LIFETIME_TIMER = 1; 651 const uint32_t MSG_LIFETIME_TIMER = 1;
652 652
653 RelayServerBinding::RelayServerBinding( 653 RelayServerBinding::RelayServerBinding(RelayServer* server,
654 RelayServer* server, const std::string& username, 654 const std::string& username,
655 const std::string& password, uint32 lifetime) 655 const std::string& password,
656 : server_(server), username_(username), password_(password), 656 uint32_t lifetime)
657 lifetime_(lifetime) { 657 : server_(server),
658 username_(username),
659 password_(password),
660 lifetime_(lifetime) {
658 // For now, every connection uses the standard magic cookie value. 661 // For now, every connection uses the standard magic cookie value.
659 magic_cookie_.append( 662 magic_cookie_.append(
660 reinterpret_cast<const char*>(TURN_MAGIC_COOKIE_VALUE), 663 reinterpret_cast<const char*>(TURN_MAGIC_COOKIE_VALUE),
661 sizeof(TURN_MAGIC_COOKIE_VALUE)); 664 sizeof(TURN_MAGIC_COOKIE_VALUE));
662 665
663 // Initialize the last-used time to now. 666 // Initialize the last-used time to now.
664 NoteUsed(); 667 NoteUsed();
665 668
666 // Set the first timeout check. 669 // Set the first timeout check.
667 server_->thread()->PostDelayed(lifetime_, this, MSG_LIFETIME_TIMER); 670 server_->thread()->PostDelayed(lifetime_, this, MSG_LIFETIME_TIMER);
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
737 } else { 740 } else {
738 server_->thread()->PostDelayed(lifetime_, this, MSG_LIFETIME_TIMER); 741 server_->thread()->PostDelayed(lifetime_, this, MSG_LIFETIME_TIMER);
739 } 742 }
740 743
741 } else { 744 } else {
742 ASSERT(false); 745 ASSERT(false);
743 } 746 }
744 } 747 }
745 748
746 } // namespace cricket 749 } // namespace cricket
OLDNEW
« no previous file with comments | « webrtc/p2p/base/relayserver.h ('k') | webrtc/p2p/base/relayserver_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698