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

Side by Side Diff: net/socket/tcp_socket_win.cc

Issue 1376473003: Notify NQE of TCP RTT values (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added throttle on TCP socket notifications (with tests) Created 4 years, 8 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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_socket.h" 5 #include "net/socket/tcp_socket.h"
6 #include "net/socket/tcp_socket_win.h" 6 #include "net/socket/tcp_socket_win.h"
7 7
8 #include <errno.h> 8 #include <errno.h>
9 #include <mstcpip.h> 9 #include <mstcpip.h>
10 10
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 HANDLE object) { 235 HANDLE object) {
236 DCHECK_EQ(object, core_->write_overlapped_.hEvent); 236 DCHECK_EQ(object, core_->write_overlapped_.hEvent);
237 if (core_->socket_) 237 if (core_->socket_)
238 core_->socket_->DidCompleteWrite(); 238 core_->socket_->DidCompleteWrite();
239 239
240 core_->Release(); 240 core_->Release();
241 } 241 }
242 242
243 //----------------------------------------------------------------------------- 243 //-----------------------------------------------------------------------------
244 244
245 TCPSocketWin::TCPSocketWin(net::NetLog* net_log, 245 TCPSocketWin::TCPSocketWin(
246 const net::NetLog::Source& source) 246 scoped_ptr<SocketPerformanceWatcher> socket_performance_watcher,
247 : socket_(INVALID_SOCKET), 247 net::NetLog* net_log,
248 const net::NetLog::Source& source)
249 : socket_performance_watcher_(std::move(socket_performance_watcher)),
250 socket_(INVALID_SOCKET),
248 accept_event_(WSA_INVALID_EVENT), 251 accept_event_(WSA_INVALID_EVENT),
249 accept_socket_(NULL), 252 accept_socket_(NULL),
250 accept_address_(NULL), 253 accept_address_(NULL),
251 waiting_connect_(false), 254 waiting_connect_(false),
252 waiting_read_(false), 255 waiting_read_(false),
253 waiting_write_(false), 256 waiting_write_(false),
254 connect_os_error_(0), 257 connect_os_error_(0),
255 logging_multiple_connect_attempts_(false), 258 logging_multiple_connect_attempts_(false),
256 net_log_(BoundNetLog::Make(net_log, NetLog::SOURCE_SOCKET)) { 259 net_log_(BoundNetLog::Make(net_log, NetLog::SOURCE_SOCKET)) {
257 net_log_.BeginEvent(NetLog::TYPE_SOCKET_ALIVE, 260 net_log_.BeginEvent(NetLog::TYPE_SOCKET_ALIVE,
(...skipping 434 matching lines...) Expand 10 before | Expand all | Expand 10 after
692 695
693 IPEndPoint ip_end_point; 696 IPEndPoint ip_end_point;
694 if (!ip_end_point.FromSockAddr(storage.addr, storage.addr_len)) { 697 if (!ip_end_point.FromSockAddr(storage.addr, storage.addr_len)) {
695 NOTREACHED(); 698 NOTREACHED();
696 if (closesocket(new_socket) < 0) 699 if (closesocket(new_socket) < 0)
697 PLOG(ERROR) << "closesocket"; 700 PLOG(ERROR) << "closesocket";
698 int net_error = ERR_ADDRESS_INVALID; 701 int net_error = ERR_ADDRESS_INVALID;
699 net_log_.EndEventWithNetErrorCode(NetLog::TYPE_TCP_ACCEPT, net_error); 702 net_log_.EndEventWithNetErrorCode(NetLog::TYPE_TCP_ACCEPT, net_error);
700 return net_error; 703 return net_error;
701 } 704 }
702 scoped_ptr<TCPSocketWin> tcp_socket(new TCPSocketWin( 705 scoped_ptr<TCPSocketWin> tcp_socket(
703 net_log_.net_log(), net_log_.source())); 706 new TCPSocketWin(NULL, net_log_.net_log(), net_log_.source()));
704 int adopt_result = tcp_socket->AdoptConnectedSocket(new_socket, ip_end_point); 707 int adopt_result = tcp_socket->AdoptConnectedSocket(new_socket, ip_end_point);
705 if (adopt_result != OK) { 708 if (adopt_result != OK) {
706 net_log_.EndEventWithNetErrorCode(NetLog::TYPE_TCP_ACCEPT, adopt_result); 709 net_log_.EndEventWithNetErrorCode(NetLog::TYPE_TCP_ACCEPT, adopt_result);
707 return adopt_result; 710 return adopt_result;
708 } 711 }
709 *socket = std::move(tcp_socket); 712 *socket = std::move(tcp_socket);
710 *address = ip_end_point; 713 *address = ip_end_point;
711 net_log_.EndEvent(NetLog::TYPE_TCP_ACCEPT, 714 net_log_.EndEvent(NetLog::TYPE_TCP_ACCEPT,
712 CreateNetLogIPEndPointCallback(&ip_end_point)); 715 CreateNetLogIPEndPointCallback(&ip_end_point));
713 return OK; 716 return OK;
(...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after
1006 } 1009 }
1007 1010
1008 bool TCPSocketWin::GetEstimatedRoundTripTime(base::TimeDelta* out_rtt) const { 1011 bool TCPSocketWin::GetEstimatedRoundTripTime(base::TimeDelta* out_rtt) const {
1009 DCHECK(out_rtt); 1012 DCHECK(out_rtt);
1010 // TODO(bmcquade): Consider implementing using 1013 // TODO(bmcquade): Consider implementing using
1011 // GetPerTcpConnectionEStats/GetPerTcp6ConnectionEStats. 1014 // GetPerTcpConnectionEStats/GetPerTcp6ConnectionEStats.
1012 return false; 1015 return false;
1013 } 1016 }
1014 1017
1015 } // namespace net 1018 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698