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

Side by Side Diff: webrtc/base/win32socketserver.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/base/win32socketserver.h ('k') | webrtc/base/win32socketserver_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
(...skipping 10 matching lines...) Expand all
21 21
22 namespace rtc { 22 namespace rtc {
23 23
24 /////////////////////////////////////////////////////////////////////////////// 24 ///////////////////////////////////////////////////////////////////////////////
25 // Win32Socket 25 // Win32Socket
26 /////////////////////////////////////////////////////////////////////////////// 26 ///////////////////////////////////////////////////////////////////////////////
27 27
28 // TODO: Move this to a common place where PhysicalSocketServer can 28 // TODO: Move this to a common place where PhysicalSocketServer can
29 // share it. 29 // share it.
30 // Standard MTUs 30 // Standard MTUs
31 static const uint16 PACKET_MAXIMUMS[] = { 31 static const uint16_t PACKET_MAXIMUMS[] = {
32 65535, // Theoretical maximum, Hyperchannel 32 65535, // Theoretical maximum, Hyperchannel
33 32000, // Nothing 33 32000, // Nothing
34 17914, // 16Mb IBM Token Ring 34 17914, // 16Mb IBM Token Ring
35 8166, // IEEE 802.4 35 8166, // IEEE 802.4
36 // 4464 // IEEE 802.5 (4Mb max) 36 // 4464 // IEEE 802.5 (4Mb max)
37 4352, // FDDI 37 4352, // FDDI
38 // 2048, // Wideband Network 38 // 2048, // Wideband Network
39 2002, // IEEE 802.5 (4Mb recommended) 39 2002, // IEEE 802.5 (4Mb recommended)
40 // 1536, // Expermental Ethernet Networks 40 // 1536, // Expermental Ethernet Networks
41 // 1500, // Ethernet, Point-to-Point (default) 41 // 1500, // Ethernet, Point-to-Point (default)
42 1492, // IEEE 802.3 42 1492, // IEEE 802.3
43 1006, // SLIP, ARPANET 43 1006, // SLIP, ARPANET
44 // 576, // X.25 Networks 44 // 576, // X.25 Networks
45 // 544, // DEC IP Portal 45 // 544, // DEC IP Portal
46 // 512, // NETBIOS 46 // 512, // NETBIOS
47 508, // IEEE 802/Source-Rt Bridge, ARCNET 47 508, // IEEE 802/Source-Rt Bridge, ARCNET
48 296, // Point-to-Point (low delay) 48 296, // Point-to-Point (low delay)
49 68, // Official minimum 49 68, // Official minimum
50 0, // End of list marker 50 0, // End of list marker
51 }; 51 };
52 52
53 static const int IP_HEADER_SIZE = 20u; 53 static const int IP_HEADER_SIZE = 20u;
54 static const int ICMP_HEADER_SIZE = 8u; 54 static const int ICMP_HEADER_SIZE = 8u;
55 static const int ICMP_PING_TIMEOUT_MILLIS = 10000u; 55 static const int ICMP_PING_TIMEOUT_MILLIS = 10000u;
56 56
57 // TODO: Enable for production builds also? Use FormatMessage? 57 // TODO: Enable for production builds also? Use FormatMessage?
58 #ifdef _DEBUG 58 #ifdef _DEBUG
59 LPCSTR WSAErrorToString(int error, LPCSTR *description_result) { 59 LPCSTR WSAErrorToString(int error, LPCSTR *description_result) {
60 LPCSTR string = "Unspecified"; 60 LPCSTR string = "Unspecified";
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
136 136
137 ///////////////////////////////////////////////////////////////////////////// 137 /////////////////////////////////////////////////////////////////////////////
138 // Win32Socket::EventSink 138 // Win32Socket::EventSink
139 ///////////////////////////////////////////////////////////////////////////// 139 /////////////////////////////////////////////////////////////////////////////
140 140
141 #define WM_SOCKETNOTIFY (WM_USER + 50) 141 #define WM_SOCKETNOTIFY (WM_USER + 50)
142 #define WM_DNSNOTIFY (WM_USER + 51) 142 #define WM_DNSNOTIFY (WM_USER + 51)
143 143
144 struct Win32Socket::DnsLookup { 144 struct Win32Socket::DnsLookup {
145 HANDLE handle; 145 HANDLE handle;
146 uint16 port; 146 uint16_t port;
147 char buffer[MAXGETHOSTSTRUCT]; 147 char buffer[MAXGETHOSTSTRUCT];
148 }; 148 };
149 149
150 class Win32Socket::EventSink : public Win32Window { 150 class Win32Socket::EventSink : public Win32Window {
151 public: 151 public:
152 explicit EventSink(Win32Socket * parent) : parent_(parent) { } 152 explicit EventSink(Win32Socket * parent) : parent_(parent) { }
153 153
154 void Dispose(); 154 void Dispose();
155 155
156 virtual bool OnMessage(UINT uMsg, WPARAM wParam, LPARAM lParam, 156 virtual bool OnMessage(UINT uMsg, WPARAM wParam, LPARAM lParam,
(...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after
505 } 505 }
506 if (sink_) { 506 if (sink_) {
507 sink_->Dispose(); 507 sink_->Dispose();
508 sink_ = NULL; 508 sink_ = NULL;
509 } 509 }
510 addr_.Clear(); 510 addr_.Clear();
511 state_ = CS_CLOSED; 511 state_ = CS_CLOSED;
512 return err; 512 return err;
513 } 513 }
514 514
515 int Win32Socket::EstimateMTU(uint16* mtu) { 515 int Win32Socket::EstimateMTU(uint16_t* mtu) {
516 SocketAddress addr = GetRemoteAddress(); 516 SocketAddress addr = GetRemoteAddress();
517 if (addr.IsAny()) { 517 if (addr.IsAny()) {
518 error_ = ENOTCONN; 518 error_ = ENOTCONN;
519 return -1; 519 return -1;
520 } 520 }
521 521
522 WinPing ping; 522 WinPing ping;
523 if (!ping.IsValid()) { 523 if (!ping.IsValid()) {
524 error_ = EINVAL; // can't think of a better error ID 524 error_ = EINVAL; // can't think of a better error ID
525 return -1; 525 return -1;
526 } 526 }
527 527
528 for (int level = 0; PACKET_MAXIMUMS[level + 1] > 0; ++level) { 528 for (int level = 0; PACKET_MAXIMUMS[level + 1] > 0; ++level) {
529 int32 size = PACKET_MAXIMUMS[level] - IP_HEADER_SIZE - ICMP_HEADER_SIZE; 529 int32_t size = PACKET_MAXIMUMS[level] - IP_HEADER_SIZE - ICMP_HEADER_SIZE;
530 WinPing::PingResult result = ping.Ping(addr.ipaddr(), size, 530 WinPing::PingResult result = ping.Ping(addr.ipaddr(), size,
531 ICMP_PING_TIMEOUT_MILLIS, 1, false); 531 ICMP_PING_TIMEOUT_MILLIS, 1, false);
532 if (result == WinPing::PING_FAIL) { 532 if (result == WinPing::PING_FAIL) {
533 error_ = EINVAL; // can't think of a better error ID 533 error_ = EINVAL; // can't think of a better error ID
534 return -1; 534 return -1;
535 } 535 }
536 if (result != WinPing::PING_TOO_LARGE) { 536 if (result != WinPing::PING_TOO_LARGE) {
537 *mtu = PACKET_MAXIMUMS[level]; 537 *mtu = PACKET_MAXIMUMS[level];
538 return 0; 538 return 0;
539 } 539 }
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
620 // Ignore events if we're already closed. 620 // Ignore events if we're already closed.
621 if (socket != socket_) 621 if (socket != socket_)
622 return; 622 return;
623 623
624 error_ = error; 624 error_ = error;
625 switch (event) { 625 switch (event) {
626 case FD_CONNECT: 626 case FD_CONNECT:
627 if (error != ERROR_SUCCESS) { 627 if (error != ERROR_SUCCESS) {
628 ReportWSAError("WSAAsync:connect notify", error, addr_); 628 ReportWSAError("WSAAsync:connect notify", error, addr_);
629 #ifdef _DEBUG 629 #ifdef _DEBUG
630 int32 duration = TimeSince(connect_time_); 630 int32_t duration = TimeSince(connect_time_);
631 LOG(LS_INFO) << "WSAAsync:connect error (" << duration 631 LOG(LS_INFO) << "WSAAsync:connect error (" << duration
632 << " ms), faking close"; 632 << " ms), faking close";
633 #endif 633 #endif
634 state_ = CS_CLOSED; 634 state_ = CS_CLOSED;
635 // If you get an error connecting, close doesn't really do anything 635 // If you get an error connecting, close doesn't really do anything
636 // and it certainly doesn't send back any close notification, but 636 // and it certainly doesn't send back any close notification, but
637 // we really only maintain a few states, so it is easiest to get 637 // we really only maintain a few states, so it is easiest to get
638 // back into a known state by pretending that a close happened, even 638 // back into a known state by pretending that a close happened, even
639 // though the connect event never did occur. 639 // though the connect event never did occur.
640 SignalCloseEvent(this, error); 640 SignalCloseEvent(this, error);
641 } else { 641 } else {
642 #ifdef _DEBUG 642 #ifdef _DEBUG
643 int32 duration = TimeSince(connect_time_); 643 int32_t duration = TimeSince(connect_time_);
644 LOG(LS_INFO) << "WSAAsync:connect (" << duration << " ms)"; 644 LOG(LS_INFO) << "WSAAsync:connect (" << duration << " ms)";
645 #endif 645 #endif
646 state_ = CS_CONNECTED; 646 state_ = CS_CONNECTED;
647 SignalConnectEvent(this); 647 SignalConnectEvent(this);
648 } 648 }
649 break; 649 break;
650 650
651 case FD_ACCEPT: 651 case FD_ACCEPT:
652 case FD_READ: 652 case FD_READ:
653 if (error != ERROR_SUCCESS) { 653 if (error != ERROR_SUCCESS) {
(...skipping 18 matching lines...) Expand all
672 SignalCloseEvent(this, error); 672 SignalCloseEvent(this, error);
673 } 673 }
674 break; 674 break;
675 } 675 }
676 } 676 }
677 677
678 void Win32Socket::OnDnsNotify(HANDLE task, int error) { 678 void Win32Socket::OnDnsNotify(HANDLE task, int error) {
679 if (!dns_ || dns_->handle != task) 679 if (!dns_ || dns_->handle != task)
680 return; 680 return;
681 681
682 uint32 ip = 0; 682 uint32_t ip = 0;
683 if (error == 0) { 683 if (error == 0) {
684 hostent* pHost = reinterpret_cast<hostent*>(dns_->buffer); 684 hostent* pHost = reinterpret_cast<hostent*>(dns_->buffer);
685 uint32 net_ip = *reinterpret_cast<uint32*>(pHost->h_addr_list[0]); 685 uint32_t net_ip = *reinterpret_cast<uint32_t*>(pHost->h_addr_list[0]);
686 ip = NetworkToHost32(net_ip); 686 ip = NetworkToHost32(net_ip);
687 } 687 }
688 688
689 LOG_F(LS_INFO) << "(" << IPAddress(ip).ToSensitiveString() 689 LOG_F(LS_INFO) << "(" << IPAddress(ip).ToSensitiveString()
690 << ", " << error << ")"; 690 << ", " << error << ")";
691 691
692 if (error == 0) { 692 if (error == 0) {
693 SocketAddress address(ip, dns_->port); 693 SocketAddress address(ip, dns_->port);
694 error = DoConnect(address); 694 error = DoConnect(address);
695 } else { 695 } else {
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
755 755
756 void Win32SocketServer::SetMessageQueue(MessageQueue* queue) { 756 void Win32SocketServer::SetMessageQueue(MessageQueue* queue) {
757 message_queue_ = queue; 757 message_queue_ = queue;
758 } 758 }
759 759
760 bool Win32SocketServer::Wait(int cms, bool process_io) { 760 bool Win32SocketServer::Wait(int cms, bool process_io) {
761 BOOL b; 761 BOOL b;
762 if (process_io) { 762 if (process_io) {
763 // Spin the Win32 message pump at least once, and as long as requested. 763 // Spin the Win32 message pump at least once, and as long as requested.
764 // This is the Thread::ProcessMessages case. 764 // This is the Thread::ProcessMessages case.
765 uint32 start = Time(); 765 uint32_t start = Time();
766 do { 766 do {
767 MSG msg; 767 MSG msg;
768 SetTimer(wnd_.handle(), 0, cms, NULL); 768 SetTimer(wnd_.handle(), 0, cms, NULL);
769 // Get the next available message. If we have a modeless dialog, give 769 // Get the next available message. If we have a modeless dialog, give
770 // give the message to IsDialogMessage, which will return true if it 770 // give the message to IsDialogMessage, which will return true if it
771 // was a message for the dialog that it handled internally. 771 // was a message for the dialog that it handled internally.
772 // Otherwise, dispatch as usual via Translate/DispatchMessage. 772 // Otherwise, dispatch as usual via Translate/DispatchMessage.
773 b = GetMessage(&msg, NULL, 0, 0); 773 b = GetMessage(&msg, NULL, 0, 0);
774 if (b == -1) { 774 if (b == -1) {
775 LOG_GLE(LS_ERROR) << "GetMessage failed."; 775 LOG_GLE(LS_ERROR) << "GetMessage failed.";
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
845 bool handled = false; 845 bool handled = false;
846 if (wm == s_wm_wakeup_id || (wm == WM_TIMER && wp == 1)) { 846 if (wm == s_wm_wakeup_id || (wm == WM_TIMER && wp == 1)) {
847 ss_->Pump(); 847 ss_->Pump();
848 lr = 0; 848 lr = 0;
849 handled = true; 849 handled = true;
850 } 850 }
851 return handled; 851 return handled;
852 } 852 }
853 853
854 } // namespace rtc 854 } // namespace rtc
OLDNEW
« no previous file with comments | « webrtc/base/win32socketserver.h ('k') | webrtc/base/win32socketserver_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698