OLD | NEW |
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 233 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
244 UpdateLastError(); | 244 UpdateLastError(); |
245 return false; | 245 return false; |
246 } | 246 } |
247 if ((SOCK_DGRAM == type) && !SetAsync(FD_READ | FD_WRITE)) { | 247 if ((SOCK_DGRAM == type) && !SetAsync(FD_READ | FD_WRITE)) { |
248 return false; | 248 return false; |
249 } | 249 } |
250 return true; | 250 return true; |
251 } | 251 } |
252 | 252 |
253 int Win32Socket::Attach(SOCKET s) { | 253 int Win32Socket::Attach(SOCKET s) { |
254 ASSERT(socket_ == INVALID_SOCKET); | 254 RTC_DCHECK(socket_ == INVALID_SOCKET); |
255 if (socket_ != INVALID_SOCKET) | 255 if (socket_ != INVALID_SOCKET) |
256 return SOCKET_ERROR; | 256 return SOCKET_ERROR; |
257 | 257 |
258 ASSERT(s != INVALID_SOCKET); | 258 RTC_DCHECK(s != INVALID_SOCKET); |
259 if (s == INVALID_SOCKET) | 259 if (s == INVALID_SOCKET) |
260 return SOCKET_ERROR; | 260 return SOCKET_ERROR; |
261 | 261 |
262 socket_ = s; | 262 socket_ = s; |
263 state_ = CS_CONNECTED; | 263 state_ = CS_CONNECTED; |
264 | 264 |
265 if (!SetAsync(FD_READ | FD_WRITE | FD_CLOSE)) | 265 if (!SetAsync(FD_READ | FD_WRITE | FD_CLOSE)) |
266 return SOCKET_ERROR; | 266 return SOCKET_ERROR; |
267 | 267 |
268 return 0; | 268 return 0; |
(...skipping 28 matching lines...) Expand all Loading... |
297 if (result >= 0) { | 297 if (result >= 0) { |
298 SocketAddressFromSockAddrStorage(addr, &address); | 298 SocketAddressFromSockAddrStorage(addr, &address); |
299 } else { | 299 } else { |
300 LOG(LS_WARNING) << "GetRemoteAddress: unable to get remote addr, socket=" | 300 LOG(LS_WARNING) << "GetRemoteAddress: unable to get remote addr, socket=" |
301 << socket_; | 301 << socket_; |
302 } | 302 } |
303 return address; | 303 return address; |
304 } | 304 } |
305 | 305 |
306 int Win32Socket::Bind(const SocketAddress& addr) { | 306 int Win32Socket::Bind(const SocketAddress& addr) { |
307 ASSERT(socket_ != INVALID_SOCKET); | 307 RTC_DCHECK(socket_ != INVALID_SOCKET); |
308 if (socket_ == INVALID_SOCKET) | 308 if (socket_ == INVALID_SOCKET) |
309 return SOCKET_ERROR; | 309 return SOCKET_ERROR; |
310 | 310 |
311 sockaddr_storage saddr; | 311 sockaddr_storage saddr; |
312 size_t len = addr.ToSockAddrStorage(&saddr); | 312 size_t len = addr.ToSockAddrStorage(&saddr); |
313 int err = ::bind(socket_, | 313 int err = ::bind(socket_, |
314 reinterpret_cast<sockaddr*>(&saddr), | 314 reinterpret_cast<sockaddr*>(&saddr), |
315 static_cast<int>(len)); | 315 static_cast<int>(len)); |
316 UpdateLastError(); | 316 UpdateLastError(); |
317 return err; | 317 return err; |
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
546 *mtu = PACKET_MAXIMUMS[level]; | 546 *mtu = PACKET_MAXIMUMS[level]; |
547 return 0; | 547 return 0; |
548 } | 548 } |
549 } | 549 } |
550 | 550 |
551 RTC_NOTREACHED(); | 551 RTC_NOTREACHED(); |
552 return 0; | 552 return 0; |
553 } | 553 } |
554 | 554 |
555 void Win32Socket::CreateSink() { | 555 void Win32Socket::CreateSink() { |
556 ASSERT(NULL == sink_); | 556 RTC_DCHECK(NULL == sink_); |
557 | 557 |
558 // Create window | 558 // Create window |
559 sink_ = new EventSink(this); | 559 sink_ = new EventSink(this); |
560 sink_->Create(NULL, L"EventSink", 0, 0, 0, 0, 10, 10); | 560 sink_->Create(NULL, L"EventSink", 0, 0, 0, 0, 10, 10); |
561 } | 561 } |
562 | 562 |
563 bool Win32Socket::SetAsync(int events) { | 563 bool Win32Socket::SetAsync(int events) { |
564 if (NULL == sink_) { | 564 if (NULL == sink_) { |
565 CreateSink(); | 565 CreateSink(); |
566 ASSERT(NULL != sink_); | 566 RTC_DCHECK(NULL != sink_); |
567 } | 567 } |
568 | 568 |
569 // start the async select | 569 // start the async select |
570 if (WSAAsyncSelect(socket_, sink_->handle(), WM_SOCKETNOTIFY, events) | 570 if (WSAAsyncSelect(socket_, sink_->handle(), WM_SOCKETNOTIFY, events) |
571 == SOCKET_ERROR) { | 571 == SOCKET_ERROR) { |
572 UpdateLastError(); | 572 UpdateLastError(); |
573 Close(); | 573 Close(); |
574 return false; | 574 return false; |
575 } | 575 } |
576 | 576 |
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
786 } else if(b) { | 786 } else if(b) { |
787 if (!hdlg_ || !IsDialogMessage(hdlg_, &msg)) { | 787 if (!hdlg_ || !IsDialogMessage(hdlg_, &msg)) { |
788 TranslateMessage(&msg); | 788 TranslateMessage(&msg); |
789 DispatchMessage(&msg); | 789 DispatchMessage(&msg); |
790 } | 790 } |
791 } | 791 } |
792 KillTimer(wnd_.handle(), 0); | 792 KillTimer(wnd_.handle(), 0); |
793 } while (b && TimeSince(start) < cms); | 793 } while (b && TimeSince(start) < cms); |
794 } else if (cms != 0) { | 794 } else if (cms != 0) { |
795 // Sit and wait forever for a WakeUp. This is the Thread::Send case. | 795 // Sit and wait forever for a WakeUp. This is the Thread::Send case. |
796 ASSERT(cms == -1); | 796 RTC_DCHECK(cms == -1); |
797 MSG msg; | 797 MSG msg; |
798 b = GetMessage(&msg, NULL, s_wm_wakeup_id, s_wm_wakeup_id); | 798 b = GetMessage(&msg, NULL, s_wm_wakeup_id, s_wm_wakeup_id); |
799 { | 799 { |
800 CritScope scope(&cs_); | 800 CritScope scope(&cs_); |
801 posted_ = false; | 801 posted_ = false; |
802 } | 802 } |
803 } else { | 803 } else { |
804 // No-op (cms == 0 && !process_io). This is the Pump case. | 804 // No-op (cms == 0 && !process_io). This is the Pump case. |
805 b = TRUE; | 805 b = TRUE; |
806 } | 806 } |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
854 bool handled = false; | 854 bool handled = false; |
855 if (wm == s_wm_wakeup_id || (wm == WM_TIMER && wp == 1)) { | 855 if (wm == s_wm_wakeup_id || (wm == WM_TIMER && wp == 1)) { |
856 ss_->Pump(); | 856 ss_->Pump(); |
857 lr = 0; | 857 lr = 0; |
858 handled = true; | 858 handled = true; |
859 } | 859 } |
860 return handled; | 860 return handled; |
861 } | 861 } |
862 | 862 |
863 } // namespace rtc | 863 } // namespace rtc |
OLD | NEW |