| OLD | NEW | 
|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/tcp_client_socket_win.h" | 5 #include "net/socket/tcp_client_socket_win.h" | 
| 6 | 6 | 
| 7 #include <mstcpip.h> | 7 #include <mstcpip.h> | 
| 8 | 8 | 
| 9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" | 
| 10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" | 
| (...skipping 571 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 582 | 582 | 
| 583   previously_disconnected_ = true; | 583   previously_disconnected_ = true; | 
| 584 } | 584 } | 
| 585 | 585 | 
| 586 bool TCPClientSocketWin::IsConnected() const { | 586 bool TCPClientSocketWin::IsConnected() const { | 
| 587   DCHECK(CalledOnValidThread()); | 587   DCHECK(CalledOnValidThread()); | 
| 588 | 588 | 
| 589   if (socket_ == INVALID_SOCKET || waiting_connect()) | 589   if (socket_ == INVALID_SOCKET || waiting_connect()) | 
| 590     return false; | 590     return false; | 
| 591 | 591 | 
|  | 592   if (waiting_read_) | 
|  | 593     return true; | 
|  | 594 | 
| 592   // Check if connection is alive. | 595   // Check if connection is alive. | 
| 593   char c; | 596   char c; | 
| 594   int rv = recv(socket_, &c, 1, MSG_PEEK); | 597   int rv = recv(socket_, &c, 1, MSG_PEEK); | 
| 595   if (rv == 0) | 598   if (rv == 0) | 
| 596     return false; | 599     return false; | 
| 597   if (rv == SOCKET_ERROR && WSAGetLastError() != WSAEWOULDBLOCK) | 600   if (rv == SOCKET_ERROR && WSAGetLastError() != WSAEWOULDBLOCK) | 
| 598     return false; | 601     return false; | 
| 599 | 602 | 
| 600   return true; | 603   return true; | 
| 601 } | 604 } | 
| 602 | 605 | 
| 603 bool TCPClientSocketWin::IsConnectedAndIdle() const { | 606 bool TCPClientSocketWin::IsConnectedAndIdle() const { | 
| 604   DCHECK(CalledOnValidThread()); | 607   DCHECK(CalledOnValidThread()); | 
| 605 | 608 | 
| 606   if (socket_ == INVALID_SOCKET || waiting_connect()) | 609   if (socket_ == INVALID_SOCKET || waiting_connect()) | 
| 607     return false; | 610     return false; | 
| 608 | 611 | 
|  | 612   if (waiting_read_) | 
|  | 613     return true; | 
|  | 614 | 
| 609   // Check if connection is alive and we haven't received any data | 615   // Check if connection is alive and we haven't received any data | 
| 610   // unexpectedly. | 616   // unexpectedly. | 
| 611   char c; | 617   char c; | 
| 612   int rv = recv(socket_, &c, 1, MSG_PEEK); | 618   int rv = recv(socket_, &c, 1, MSG_PEEK); | 
| 613   if (rv >= 0) | 619   if (rv >= 0) | 
| 614     return false; | 620     return false; | 
| 615   if (WSAGetLastError() != WSAEWOULDBLOCK) | 621   if (WSAGetLastError() != WSAEWOULDBLOCK) | 
| 616     return false; | 622     return false; | 
| 617 | 623 | 
| 618   return true; | 624   return true; | 
| (...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 898         use_history_.set_was_used_to_convey_data(); | 904         use_history_.set_was_used_to_convey_data(); | 
| 899       net_log_.AddByteTransferEvent(NetLog::TYPE_SOCKET_BYTES_SENT, num_bytes, | 905       net_log_.AddByteTransferEvent(NetLog::TYPE_SOCKET_BYTES_SENT, num_bytes, | 
| 900                                     core_->write_buffer_.buf); | 906                                     core_->write_buffer_.buf); | 
| 901     } | 907     } | 
| 902   } | 908   } | 
| 903   core_->write_iobuffer_ = NULL; | 909   core_->write_iobuffer_ = NULL; | 
| 904   DoWriteCallback(rv); | 910   DoWriteCallback(rv); | 
| 905 } | 911 } | 
| 906 | 912 | 
| 907 }  // namespace net | 913 }  // namespace net | 
| OLD | NEW | 
|---|