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

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

Issue 7084007: Adds URLRequestJob bytes read to NetLog. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: sync Created 9 years, 6 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 | Annotate | Revision Log
OLDNEW
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.h" 5 #include "net/socket/tcp_client_socket.h"
6 6
7 #include <errno.h> 7 #include <errno.h>
8 #include <fcntl.h> 8 #include <fcntl.h>
9 #include <netdb.h> 9 #include <netdb.h>
10 #include <sys/socket.h> 10 #include <sys/socket.h>
(...skipping 417 matching lines...) Expand 10 before | Expand all | Expand 10 after
428 // Synchronous operation not supported 428 // Synchronous operation not supported
429 DCHECK(callback); 429 DCHECK(callback);
430 DCHECK_GT(buf_len, 0); 430 DCHECK_GT(buf_len, 0);
431 431
432 int nread = HANDLE_EINTR(read(socket_, buf->data(), buf_len)); 432 int nread = HANDLE_EINTR(read(socket_, buf->data(), buf_len));
433 if (nread >= 0) { 433 if (nread >= 0) {
434 base::StatsCounter read_bytes("tcp.read_bytes"); 434 base::StatsCounter read_bytes("tcp.read_bytes");
435 read_bytes.Add(nread); 435 read_bytes.Add(nread);
436 if (nread > 0) 436 if (nread > 0)
437 use_history_.set_was_used_to_convey_data(); 437 use_history_.set_was_used_to_convey_data();
438 LogByteTransfer( 438 net_log_.AddByteTransferEvent(NetLog::TYPE_SOCKET_BYTES_RECEIVED, nread,
439 net_log_, NetLog::TYPE_SOCKET_BYTES_RECEIVED, nread, buf->data()); 439 buf->data());
440 return nread; 440 return nread;
441 } 441 }
442 if (errno != EAGAIN && errno != EWOULDBLOCK) { 442 if (errno != EAGAIN && errno != EWOULDBLOCK) {
443 DVLOG(1) << "read failed, errno " << errno; 443 DVLOG(1) << "read failed, errno " << errno;
444 return MapSystemError(errno); 444 return MapSystemError(errno);
445 } 445 }
446 446
447 if (!MessageLoopForIO::current()->WatchFileDescriptor( 447 if (!MessageLoopForIO::current()->WatchFileDescriptor(
448 socket_, true, MessageLoopForIO::WATCH_READ, 448 socket_, true, MessageLoopForIO::WATCH_READ,
449 &read_socket_watcher_, &read_watcher_)) { 449 &read_socket_watcher_, &read_watcher_)) {
(...skipping 17 matching lines...) Expand all
467 // Synchronous operation not supported 467 // Synchronous operation not supported
468 DCHECK(callback); 468 DCHECK(callback);
469 DCHECK_GT(buf_len, 0); 469 DCHECK_GT(buf_len, 0);
470 470
471 int nwrite = InternalWrite(buf, buf_len); 471 int nwrite = InternalWrite(buf, buf_len);
472 if (nwrite >= 0) { 472 if (nwrite >= 0) {
473 base::StatsCounter write_bytes("tcp.write_bytes"); 473 base::StatsCounter write_bytes("tcp.write_bytes");
474 write_bytes.Add(nwrite); 474 write_bytes.Add(nwrite);
475 if (nwrite > 0) 475 if (nwrite > 0)
476 use_history_.set_was_used_to_convey_data(); 476 use_history_.set_was_used_to_convey_data();
477 LogByteTransfer( 477 net_log_.AddByteTransferEvent(NetLog::TYPE_SOCKET_BYTES_SENT, nwrite,
478 net_log_, NetLog::TYPE_SOCKET_BYTES_SENT, nwrite, buf->data()); 478 buf->data());
479 return nwrite; 479 return nwrite;
480 } 480 }
481 if (errno != EAGAIN && errno != EWOULDBLOCK) 481 if (errno != EAGAIN && errno != EWOULDBLOCK)
482 return MapSystemError(errno); 482 return MapSystemError(errno);
483 483
484 if (!MessageLoopForIO::current()->WatchFileDescriptor( 484 if (!MessageLoopForIO::current()->WatchFileDescriptor(
485 socket_, true, MessageLoopForIO::WATCH_WRITE, 485 socket_, true, MessageLoopForIO::WATCH_WRITE,
486 &write_socket_watcher_, &write_watcher_)) { 486 &write_socket_watcher_, &write_watcher_)) {
487 DVLOG(1) << "WatchFileDescriptor failed on write, errno " << errno; 487 DVLOG(1) << "WatchFileDescriptor failed on write, errno " << errno;
488 return MapSystemError(errno); 488 return MapSystemError(errno);
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
622 bytes_transferred = HANDLE_EINTR(read(socket_, read_buf_->data(), 622 bytes_transferred = HANDLE_EINTR(read(socket_, read_buf_->data(),
623 read_buf_len_)); 623 read_buf_len_));
624 624
625 int result; 625 int result;
626 if (bytes_transferred >= 0) { 626 if (bytes_transferred >= 0) {
627 result = bytes_transferred; 627 result = bytes_transferred;
628 base::StatsCounter read_bytes("tcp.read_bytes"); 628 base::StatsCounter read_bytes("tcp.read_bytes");
629 read_bytes.Add(bytes_transferred); 629 read_bytes.Add(bytes_transferred);
630 if (bytes_transferred > 0) 630 if (bytes_transferred > 0)
631 use_history_.set_was_used_to_convey_data(); 631 use_history_.set_was_used_to_convey_data();
632 LogByteTransfer(net_log_, NetLog::TYPE_SOCKET_BYTES_RECEIVED, result, 632 net_log_.AddByteTransferEvent(NetLog::TYPE_SOCKET_BYTES_RECEIVED, result,
633 read_buf_->data()); 633 read_buf_->data());
634 } else { 634 } else {
635 result = MapSystemError(errno); 635 result = MapSystemError(errno);
636 } 636 }
637 637
638 if (result != ERR_IO_PENDING) { 638 if (result != ERR_IO_PENDING) {
639 read_buf_ = NULL; 639 read_buf_ = NULL;
640 read_buf_len_ = 0; 640 read_buf_len_ = 0;
641 bool ok = read_socket_watcher_.StopWatchingFileDescriptor(); 641 bool ok = read_socket_watcher_.StopWatchingFileDescriptor();
642 DCHECK(ok); 642 DCHECK(ok);
643 DoReadCallback(result); 643 DoReadCallback(result);
644 } 644 }
645 } 645 }
646 646
647 void TCPClientSocketLibevent::DidCompleteWrite() { 647 void TCPClientSocketLibevent::DidCompleteWrite() {
648 int bytes_transferred; 648 int bytes_transferred;
649 bytes_transferred = HANDLE_EINTR(write(socket_, write_buf_->data(), 649 bytes_transferred = HANDLE_EINTR(write(socket_, write_buf_->data(),
650 write_buf_len_)); 650 write_buf_len_));
651 651
652 int result; 652 int result;
653 if (bytes_transferred >= 0) { 653 if (bytes_transferred >= 0) {
654 result = bytes_transferred; 654 result = bytes_transferred;
655 base::StatsCounter write_bytes("tcp.write_bytes"); 655 base::StatsCounter write_bytes("tcp.write_bytes");
656 write_bytes.Add(bytes_transferred); 656 write_bytes.Add(bytes_transferred);
657 if (bytes_transferred > 0) 657 if (bytes_transferred > 0)
658 use_history_.set_was_used_to_convey_data(); 658 use_history_.set_was_used_to_convey_data();
659 LogByteTransfer(net_log_, NetLog::TYPE_SOCKET_BYTES_SENT, result, 659 net_log_.AddByteTransferEvent(NetLog::TYPE_SOCKET_BYTES_SENT, result,
660 write_buf_->data()); 660 write_buf_->data());
661 } else { 661 } else {
662 result = MapSystemError(errno); 662 result = MapSystemError(errno);
663 } 663 }
664 664
665 if (result != ERR_IO_PENDING) { 665 if (result != ERR_IO_PENDING) {
666 write_buf_ = NULL; 666 write_buf_ = NULL;
667 write_buf_len_ = 0; 667 write_buf_len_ = 0;
668 write_socket_watcher_.StopWatchingFileDescriptor(); 668 write_socket_watcher_.StopWatchingFileDescriptor();
669 DoWriteCallback(result); 669 DoWriteCallback(result);
670 } 670 }
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
710 710
711 bool TCPClientSocketLibevent::WasEverUsed() const { 711 bool TCPClientSocketLibevent::WasEverUsed() const {
712 return use_history_.was_used_to_convey_data(); 712 return use_history_.was_used_to_convey_data();
713 } 713 }
714 714
715 bool TCPClientSocketLibevent::UsingTCPFastOpen() const { 715 bool TCPClientSocketLibevent::UsingTCPFastOpen() const {
716 return use_tcp_fastopen_; 716 return use_tcp_fastopen_;
717 } 717 }
718 718
719 } // namespace net 719 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698