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

Unified Diff: net/socket/tcp_client_socket_win.cc

Issue 1696005: Add net log entries that summarize transmit and receive byte counts. (Closed)
Patch Set: More tests and address comments Created 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/socket/tcp_client_socket_win.h ('k') | net/socket/tcp_pinger.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/socket/tcp_client_socket_win.cc
diff --git a/net/socket/tcp_client_socket_win.cc b/net/socket/tcp_client_socket_win.cc
index 8d8cdd479c683f6b99ad3307c5f1c6da5004a02c..24c3ecac2330f2e027cd8b6e86f1521b9b37e1e7 100644
--- a/net/socket/tcp_client_socket_win.cc
+++ b/net/socket/tcp_client_socket_win.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -272,7 +272,8 @@ void TCPClientSocketWin::Core::WriteDelegate::OnObjectSignaled(
//-----------------------------------------------------------------------------
-TCPClientSocketWin::TCPClientSocketWin(const AddressList& addresses)
+TCPClientSocketWin::TCPClientSocketWin(const AddressList& addresses,
+ net::NetLog* net_log)
: socket_(INVALID_SOCKET),
addresses_(addresses),
current_ai_(addresses_.head()),
@@ -280,28 +281,27 @@ TCPClientSocketWin::TCPClientSocketWin(const AddressList& addresses)
waiting_read_(false),
waiting_write_(false),
read_callback_(NULL),
- write_callback_(NULL) {
+ write_callback_(NULL),
+ net_log_(BoundNetLog::Make(net_log, NetLog::SOURCE_SOCKET)) {
EnsureWinsockInit();
}
TCPClientSocketWin::~TCPClientSocketWin() {
Disconnect();
+ net_log_.AddEvent(NetLog::TYPE_TCP_SOCKET_DONE);
}
-int TCPClientSocketWin::Connect(CompletionCallback* callback,
- const BoundNetLog& net_log) {
+int TCPClientSocketWin::Connect(CompletionCallback* callback) {
// If already connected, then just return OK.
if (socket_ != INVALID_SOCKET)
return OK;
- DCHECK(!net_log_.net_log());
-
static StatsCounter connects("tcp.connect");
connects.Increment();
TRACE_EVENT_BEGIN("socket.connect", this, "");
- net_log.BeginEvent(NetLog::TYPE_TCP_CONNECT);
+ net_log_.BeginEvent(NetLog::TYPE_TCP_CONNECT);
int rv = DoConnect();
@@ -309,12 +309,11 @@ int TCPClientSocketWin::Connect(CompletionCallback* callback,
// Synchronous operation not supported.
DCHECK(callback);
- net_log_ = net_log;
waiting_connect_ = true;
read_callback_ = callback;
} else {
TRACE_EVENT_END("socket.connect", this, "");
- net_log.EndEvent(NetLog::TYPE_TCP_CONNECT);
+ net_log_.EndEvent(NetLog::TYPE_TCP_CONNECT);
if (rv == OK)
UpdateConnectionTypeHistograms(CONNECTION_ANY);
}
@@ -478,6 +477,7 @@ int TCPClientSocketWin::Read(IOBuffer* buf,
base::MemoryDebug::MarkAsInitialized(core_->read_buffer_.buf, num);
static StatsCounter read_bytes("tcp.read_bytes");
read_bytes.Add(num);
+ net_log_.AddEventWithInteger(NetLog::TYPE_SOCKET_BYTES_RECEIVED, num);
return static_cast<int>(num);
}
} else {
@@ -528,6 +528,7 @@ int TCPClientSocketWin::Write(IOBuffer* buf,
TRACE_EVENT_END("socket.write", this, StringPrintf("%d bytes", rv));
static StatsCounter write_bytes("tcp.write_bytes");
write_bytes.Add(rv);
+ net_log_.AddEventWithInteger(NetLog::TYPE_SOCKET_BYTES_SENT, rv);
return rv;
}
} else {
@@ -659,23 +660,19 @@ void TCPClientSocketWin::DidCompleteConnect() {
const struct addrinfo* next = current_ai_->ai_next;
Disconnect();
current_ai_ = next;
- BoundNetLog net_log(net_log_);
- net_log_ = BoundNetLog();
TRACE_EVENT_END("socket.connect", this, "");
- net_log.EndEvent(NetLog::TYPE_TCP_CONNECT);
- result = Connect(read_callback_, net_log);
+ net_log_.EndEvent(NetLog::TYPE_TCP_CONNECT);
+ result = Connect(read_callback_);
} else {
result = MapConnectError(os_error);
TRACE_EVENT_END("socket.connect", this, "");
net_log_.EndEvent(NetLog::TYPE_TCP_CONNECT);
- net_log_ = BoundNetLog();
}
} else {
NOTREACHED();
result = ERR_UNEXPECTED;
TRACE_EVENT_END("socket.connect", this, "");
net_log_.EndEvent(NetLog::TYPE_TCP_CONNECT);
- net_log_ = BoundNetLog();
}
if (result != ERR_IO_PENDING) {
@@ -694,6 +691,8 @@ void TCPClientSocketWin::DidCompleteRead() {
TRACE_EVENT_END("socket.read", this, StringPrintf("%d bytes", num_bytes));
waiting_read_ = false;
core_->read_iobuffer_ = NULL;
+ if (ok)
+ net_log_.AddEventWithInteger(NetLog::TYPE_SOCKET_BYTES_RECEIVED, num_bytes);
DoReadCallback(ok ? num_bytes : MapWinsockError(WSAGetLastError()));
}
@@ -718,6 +717,8 @@ void TCPClientSocketWin::DidCompleteWrite() {
<< core_->write_buffer_length_ << " bytes, but " << rv
<< " bytes reported.";
rv = ERR_WINSOCK_UNEXPECTED_WRITTEN_BYTES;
+ } else {
+ net_log_.AddEventWithInteger(NetLog::TYPE_SOCKET_BYTES_SENT, rv);
}
}
core_->write_iobuffer_ = NULL;
« no previous file with comments | « net/socket/tcp_client_socket_win.h ('k') | net/socket/tcp_pinger.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698