| Index: net/quic/chromium/quic_chromium_packet_writer.cc
|
| diff --git a/net/quic/chromium/quic_chromium_packet_writer.cc b/net/quic/chromium/quic_chromium_packet_writer.cc
|
| index 0494d44705a6f1e05e9d9e0d5861703f27c104ee..25d30c2f04a184654a4dc13b327c9dc8f0d79c58 100644
|
| --- a/net/quic/chromium/quic_chromium_packet_writer.cc
|
| +++ b/net/quic/chromium/quic_chromium_packet_writer.cc
|
| @@ -20,20 +20,13 @@ QuicChromiumPacketWriter::QuicChromiumPacketWriter() : weak_factory_(this) {}
|
|
|
| QuicChromiumPacketWriter::QuicChromiumPacketWriter(Socket* socket)
|
| : socket_(socket),
|
| - connection_(nullptr),
|
| - observer_(nullptr),
|
| + delegate_(nullptr),
|
| packet_(nullptr),
|
| write_blocked_(false),
|
| weak_factory_(this) {}
|
|
|
| QuicChromiumPacketWriter::~QuicChromiumPacketWriter() {}
|
|
|
| -void QuicChromiumPacketWriter::Initialize(WriteErrorObserver* observer,
|
| - QuicConnection* connection) {
|
| - observer_ = observer;
|
| - connection_ = connection;
|
| -}
|
| -
|
| int QuicChromiumPacketWriter::WritePacketToSocket(StringIOBuffer* packet) {
|
| return socket_->Write(packet, packet->size(),
|
| base::Bind(&QuicChromiumPacketWriter::OnWriteComplete,
|
| @@ -53,12 +46,11 @@ WriteResult QuicChromiumPacketWriter::WritePacket(
|
|
|
| int rv = WritePacketToSocket(buf.get());
|
|
|
| - if (rv < 0 && rv != ERR_IO_PENDING && observer_ != nullptr) {
|
| - // If write error, then call observer's OnWriteError, which may be
|
| - // able to migrate and rewrite packet on a new socket.
|
| - // OnWriteError returns the outcome of that attempt, which is returned
|
| - // to the caller.
|
| - rv = observer_->OnWriteError(rv, buf);
|
| + if (rv < 0 && rv != ERR_IO_PENDING && delegate_ != nullptr) {
|
| + // If write error, then call delegate's HandleWriteError, which
|
| + // may be able to migrate and rewrite packet on a new socket.
|
| + // HandleWriteError returns the outcome of that rewrite attempt.
|
| + rv = delegate_->HandleWriteError(rv, buf);
|
| }
|
|
|
| WriteStatus status = WRITE_STATUS_OK;
|
| @@ -99,23 +91,22 @@ void QuicChromiumPacketWriter::SetWritable() {
|
|
|
| void QuicChromiumPacketWriter::OnWriteComplete(int rv) {
|
| DCHECK_NE(rv, ERR_IO_PENDING);
|
| - DCHECK(connection_) << "Uninitialized connection.";
|
| - DCHECK(observer_) << "Uninitialized observer.";
|
| + DCHECK(delegate_) << "Uninitialized delegate.";
|
| write_blocked_ = false;
|
| if (rv < 0) {
|
| - // If write error, then call into the observer's OnWriteError,
|
| - // which may be able to rewrite the packet on a new
|
| - // socket. OnWriteError returns the outcome of the attempt.
|
| - rv = observer_->OnWriteError(rv, packet_);
|
| + // If write error, then call delegate's HandleWriteError, which
|
| + // may be able to migrate and rewrite packet on a new socket.
|
| + // HandleWriteError returns the outcome of that rewrite attempt.
|
| + rv = delegate_->HandleWriteError(rv, packet_);
|
| packet_ = nullptr;
|
| if (rv == ERR_IO_PENDING)
|
| return;
|
| }
|
|
|
| - if (rv < 0) {
|
| - connection_->OnWriteError(rv);
|
| - }
|
| - connection_->OnCanWrite();
|
| + if (rv < 0)
|
| + delegate_->OnWriteError(rv);
|
| + else
|
| + delegate_->OnWriteUnblocked();
|
| }
|
|
|
| QuicByteCount QuicChromiumPacketWriter::GetMaxPacketSize(
|
|
|