OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 739 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
750 sizeof(keepalive_vals), NULL, 0, | 750 sizeof(keepalive_vals), NULL, 0, |
751 &bytes_returned, NULL, NULL); | 751 &bytes_returned, NULL, NULL); |
752 DCHECK(!rv) << "Could not enable TCP Keep-Alive for socket: " << socket_ | 752 DCHECK(!rv) << "Could not enable TCP Keep-Alive for socket: " << socket_ |
753 << " [error: " << WSAGetLastError() << "]."; | 753 << " [error: " << WSAGetLastError() << "]."; |
754 | 754 |
755 // Disregard any failure in disabling nagle or enabling TCP Keep-Alive. | 755 // Disregard any failure in disabling nagle or enabling TCP Keep-Alive. |
756 return 0; | 756 return 0; |
757 } | 757 } |
758 | 758 |
759 void TCPClientSocketWin::LogConnectCompletion(int net_error) { | 759 void TCPClientSocketWin::LogConnectCompletion(int net_error) { |
760 scoped_refptr<NetLog::EventParameters> params; | |
761 if (net_error != OK) | |
762 params = new NetLogIntegerParameter("net_error", net_error); | |
763 net_log_.EndEvent(NetLog::TYPE_TCP_CONNECT, params); | |
764 if (net_error == OK) | 760 if (net_error == OK) |
765 UpdateConnectionTypeHistograms(CONNECTION_ANY); | 761 UpdateConnectionTypeHistograms(CONNECTION_ANY); |
| 762 |
| 763 if (net_error != OK) { |
| 764 net_log_.EndEvent(NetLog::TYPE_TCP_CONNECT, |
| 765 make_scoped_refptr( |
| 766 new NetLogIntegerParameter("net_error", net_error))); |
| 767 return; |
| 768 } |
| 769 |
| 770 struct sockaddr_storage source_address; |
| 771 socklen_t addrlen = sizeof(source_address); |
| 772 int rv = getsockname( |
| 773 socket_, reinterpret_cast<struct sockaddr*>(&source_address), &addrlen); |
| 774 if (rv != 0) { |
| 775 LOG(ERROR) << "getsockname() [rv: " << rv |
| 776 << "] error: " << WSAGetLastError(); |
| 777 NOTREACHED(); |
| 778 scoped_refptr<NetLog::EventParameters> params; |
| 779 net_log_.EndEvent(NetLog::TYPE_TCP_CONNECT, NULL); |
| 780 return; |
| 781 } |
| 782 |
| 783 const std::string source_address_str = |
| 784 NetAddressToStringWithPort( |
| 785 reinterpret_cast<const struct sockaddr*>(&source_address), |
| 786 sizeof(source_address)); |
| 787 net_log_.EndEvent(NetLog::TYPE_TCP_CONNECT, |
| 788 make_scoped_refptr(new NetLogStringParameter( |
| 789 "source address", |
| 790 source_address_str))); |
766 } | 791 } |
767 | 792 |
768 void TCPClientSocketWin::DoReadCallback(int rv) { | 793 void TCPClientSocketWin::DoReadCallback(int rv) { |
769 DCHECK_NE(rv, ERR_IO_PENDING); | 794 DCHECK_NE(rv, ERR_IO_PENDING); |
770 DCHECK(read_callback_); | 795 DCHECK(read_callback_); |
771 | 796 |
772 // since Run may result in Read being called, clear read_callback_ up front. | 797 // since Run may result in Read being called, clear read_callback_ up front. |
773 CompletionCallback* c = read_callback_; | 798 CompletionCallback* c = read_callback_; |
774 read_callback_ = NULL; | 799 read_callback_ = NULL; |
775 c->Run(rv); | 800 c->Run(rv); |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
859 use_history_.set_was_used_to_convey_data(); | 884 use_history_.set_was_used_to_convey_data(); |
860 LogByteTransfer(net_log_, NetLog::TYPE_SOCKET_BYTES_SENT, num_bytes, | 885 LogByteTransfer(net_log_, NetLog::TYPE_SOCKET_BYTES_SENT, num_bytes, |
861 core_->write_buffer_.buf); | 886 core_->write_buffer_.buf); |
862 } | 887 } |
863 } | 888 } |
864 core_->write_iobuffer_ = NULL; | 889 core_->write_iobuffer_ = NULL; |
865 DoWriteCallback(rv); | 890 DoWriteCallback(rv); |
866 } | 891 } |
867 | 892 |
868 } // namespace net | 893 } // namespace net |
OLD | NEW |