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

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

Issue 8889036: Revert 113699 - base::Bind: Convert Socket::Write. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years 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
« no previous file with comments | « net/socket/tcp_client_socket_libevent.h ('k') | net/socket/tcp_client_socket_win.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Property Changes:
Deleted: svn:mergeinfo
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 556 matching lines...) Expand 10 before | Expand all | Expand 10 after
567 &write_socket_watcher_, &write_watcher_)) { 567 &write_socket_watcher_, &write_watcher_)) {
568 DVLOG(1) << "WatchFileDescriptor failed on write, errno " << errno; 568 DVLOG(1) << "WatchFileDescriptor failed on write, errno " << errno;
569 return MapSystemError(errno); 569 return MapSystemError(errno);
570 } 570 }
571 571
572 write_buf_ = buf; 572 write_buf_ = buf;
573 write_buf_len_ = buf_len; 573 write_buf_len_ = buf_len;
574 old_write_callback_ = callback; 574 old_write_callback_ = callback;
575 return ERR_IO_PENDING; 575 return ERR_IO_PENDING;
576 } 576 }
577 int TCPClientSocketLibevent::Write(IOBuffer* buf,
578 int buf_len,
579 const CompletionCallback& callback) {
580 DCHECK(CalledOnValidThread());
581 DCHECK_NE(kInvalidSocket, socket_);
582 DCHECK(!waiting_connect());
583 DCHECK(!old_write_callback_ && write_callback_.is_null());
584 // Synchronous operation not supported
585 DCHECK(!callback.is_null());
586 DCHECK_GT(buf_len, 0);
587
588 int nwrite = InternalWrite(buf, buf_len);
589 if (nwrite >= 0) {
590 base::StatsCounter write_bytes("tcp.write_bytes");
591 write_bytes.Add(nwrite);
592 if (nwrite > 0)
593 use_history_.set_was_used_to_convey_data();
594 net_log_.AddByteTransferEvent(NetLog::TYPE_SOCKET_BYTES_SENT, nwrite,
595 buf->data());
596 return nwrite;
597 }
598 if (errno != EAGAIN && errno != EWOULDBLOCK)
599 return MapSystemError(errno);
600
601 if (!MessageLoopForIO::current()->WatchFileDescriptor(
602 socket_, true, MessageLoopForIO::WATCH_WRITE,
603 &write_socket_watcher_, &write_watcher_)) {
604 DVLOG(1) << "WatchFileDescriptor failed on write, errno " << errno;
605 return MapSystemError(errno);
606 }
607
608 write_buf_ = buf;
609 write_buf_len_ = buf_len;
610 write_callback_ = callback;
611 return ERR_IO_PENDING;
612 }
613 577
614 int TCPClientSocketLibevent::InternalWrite(IOBuffer* buf, int buf_len) { 578 int TCPClientSocketLibevent::InternalWrite(IOBuffer* buf, int buf_len) {
615 int nwrite; 579 int nwrite;
616 if (use_tcp_fastopen_ && !tcp_fastopen_connected_) { 580 if (use_tcp_fastopen_ && !tcp_fastopen_connected_) {
617 // We have a limited amount of data to send in the SYN packet. 581 // We have a limited amount of data to send in the SYN packet.
618 int kMaxFastOpenSendLength = 1420; 582 int kMaxFastOpenSendLength = 1420;
619 583
620 buf_len = std::min(kMaxFastOpenSendLength, buf_len); 584 buf_len = std::min(kMaxFastOpenSendLength, buf_len);
621 585
622 int flags = 0x20000000; // Magic flag to enable TCP_FASTOPEN 586 int flags = 0x20000000; // Magic flag to enable TCP_FASTOPEN
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after
848 812
849 int64 TCPClientSocketLibevent::NumBytesRead() const { 813 int64 TCPClientSocketLibevent::NumBytesRead() const {
850 return num_bytes_read_; 814 return num_bytes_read_;
851 } 815 }
852 816
853 base::TimeDelta TCPClientSocketLibevent::GetConnectTimeMicros() const { 817 base::TimeDelta TCPClientSocketLibevent::GetConnectTimeMicros() const {
854 return connect_time_micros_; 818 return connect_time_micros_;
855 } 819 }
856 820
857 } // namespace net 821 } // namespace net
OLDNEW
« no previous file with comments | « net/socket/tcp_client_socket_libevent.h ('k') | net/socket/tcp_client_socket_win.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698