| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "net/socket/stream_listen_socket.h" | 5 #include "net/socket/stream_listen_socket.h" |
| 6 | 6 |
| 7 #if defined(OS_WIN) | 7 #if defined(OS_WIN) |
| 8 // winsock2.h must be included first in order to ensure it is included before | 8 // winsock2.h must be included first in order to ensure it is included before |
| 9 // windows.h. | 9 // windows.h. |
| 10 #include <winsock2.h> | 10 #include <winsock2.h> |
| 11 #elif defined(OS_POSIX) | 11 #elif defined(OS_POSIX) |
| 12 #include <arpa/inet.h> | 12 #include <arpa/inet.h> |
| 13 #include <errno.h> | 13 #include <errno.h> |
| 14 #include <netinet/in.h> | 14 #include <netinet/in.h> |
| 15 #include <sys/socket.h> | 15 #include <sys/socket.h> |
| 16 #include <sys/types.h> | 16 #include <sys/types.h> |
| 17 #include "net/base/net_errors.h" | 17 #include "net/base/net_errors.h" |
| 18 #endif | 18 #endif |
| 19 | 19 |
| 20 #include "base/logging.h" | 20 #include "base/logging.h" |
| 21 #include "base/memory/ref_counted.h" | 21 #include "base/memory/ref_counted.h" |
| 22 #include "base/memory/scoped_ptr.h" | 22 #include "base/memory/scoped_ptr.h" |
| 23 #include "base/posix/eintr_wrapper.h" | 23 #include "base/posix/eintr_wrapper.h" |
| 24 #include "base/profiler/scoped_profile.h" | 24 #include "base/profiler/scoped_tracker.h" |
| 25 #include "base/sys_byteorder.h" | 25 #include "base/sys_byteorder.h" |
| 26 #include "base/threading/platform_thread.h" | 26 #include "base/threading/platform_thread.h" |
| 27 #include "build/build_config.h" | 27 #include "build/build_config.h" |
| 28 #include "net/base/ip_endpoint.h" | 28 #include "net/base/ip_endpoint.h" |
| 29 #include "net/base/net_errors.h" | 29 #include "net/base/net_errors.h" |
| 30 #include "net/base/net_util.h" | 30 #include "net/base/net_util.h" |
| 31 #include "net/socket/socket_descriptor.h" | 31 #include "net/socket/socket_descriptor.h" |
| 32 | 32 |
| 33 using std::string; | 33 using std::string; |
| 34 | 34 |
| (...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 240 watcher_.StopWatching(); | 240 watcher_.StopWatching(); |
| 241 #elif defined(OS_POSIX) | 241 #elif defined(OS_POSIX) |
| 242 watcher_.StopWatchingFileDescriptor(); | 242 watcher_.StopWatchingFileDescriptor(); |
| 243 #endif | 243 #endif |
| 244 } | 244 } |
| 245 | 245 |
| 246 // TODO(ibrar): We can add these functions into OS dependent files. | 246 // TODO(ibrar): We can add these functions into OS dependent files. |
| 247 #if defined(OS_WIN) | 247 #if defined(OS_WIN) |
| 248 // MessageLoop watcher callback. | 248 // MessageLoop watcher callback. |
| 249 void StreamListenSocket::OnObjectSignaled(HANDLE object) { | 249 void StreamListenSocket::OnObjectSignaled(HANDLE object) { |
| 250 // TODO(vadimt): Remove ScopedProfile below once crbug.com/418183 is fixed. | 250 // TODO(vadimt): Remove ScopedTracker below once crbug.com/418183 is fixed. |
| 251 tracked_objects::ScopedProfile tracking_profile( | 251 tracked_objects::ScopedTracker tracking_profile( |
| 252 FROM_HERE_WITH_EXPLICIT_FUNCTION( | 252 FROM_HERE_WITH_EXPLICIT_FUNCTION("StreamListenSocket_OnObjectSignaled")); |
| 253 "StreamListenSocket_OnObjectSignaled")); | |
| 254 | 253 |
| 255 WSANETWORKEVENTS ev; | 254 WSANETWORKEVENTS ev; |
| 256 if (kSocketError == WSAEnumNetworkEvents(socket_, socket_event_, &ev)) { | 255 if (kSocketError == WSAEnumNetworkEvents(socket_, socket_event_, &ev)) { |
| 257 // TODO | 256 // TODO |
| 258 return; | 257 return; |
| 259 } | 258 } |
| 260 | 259 |
| 261 // If both FD_CLOSE and FD_READ are set we only call Read(). | 260 // If both FD_CLOSE and FD_READ are set we only call Read(). |
| 262 // This will cause OnObjectSignaled to be called immediately again | 261 // This will cause OnObjectSignaled to be called immediately again |
| 263 // unless this socket is destroyed in Read(). | 262 // unless this socket is destroyed in Read(). |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 322 void StreamListenSocket::ResumeReads() { | 321 void StreamListenSocket::ResumeReads() { |
| 323 DCHECK(reads_paused_); | 322 DCHECK(reads_paused_); |
| 324 reads_paused_ = false; | 323 reads_paused_ = false; |
| 325 if (has_pending_reads_) { | 324 if (has_pending_reads_) { |
| 326 has_pending_reads_ = false; | 325 has_pending_reads_ = false; |
| 327 Read(); | 326 Read(); |
| 328 } | 327 } |
| 329 } | 328 } |
| 330 | 329 |
| 331 } // namespace net | 330 } // namespace net |
| OLD | NEW |