| Index: net/tools/quic/quic_dispatcher.cc
|
| diff --git a/net/tools/quic/quic_dispatcher.cc b/net/tools/quic/quic_dispatcher.cc
|
| index e5fecc962b4ab03436a7ab564b6e850ed2a89732..4604209c4cffff77c145af4a7ba86575e1044a34 100644
|
| --- a/net/tools/quic/quic_dispatcher.cc
|
| +++ b/net/tools/quic/quic_dispatcher.cc
|
| @@ -150,38 +150,6 @@ void QuicDispatcher::Initialize(int fd) {
|
| epoll_server(), supported_versions()));
|
| }
|
|
|
| -// TODO(fnk): remove the Writer interface implementation in favor of
|
| -// direct requests for blocked list placement from Connection/Session.
|
| -WriteResult QuicDispatcher::WritePacket(const char* buffer, size_t buf_len,
|
| - const IPAddressNumber& self_address,
|
| - const IPEndPoint& peer_address,
|
| - QuicBlockedWriterInterface* writer) {
|
| - if (IsWriteBlocked()) {
|
| - write_blocked_list_.insert(make_pair(writer, true));
|
| - return WriteResult(WRITE_STATUS_BLOCKED, EAGAIN);
|
| - }
|
| -
|
| - WriteResult result =
|
| - writer_->WritePacket(buffer, buf_len, self_address, peer_address, writer);
|
| - if (result.status == WRITE_STATUS_BLOCKED) {
|
| - DCHECK(IsWriteBlocked());
|
| - write_blocked_list_.insert(make_pair(writer, true));
|
| - }
|
| - return result;
|
| -}
|
| -
|
| -bool QuicDispatcher::IsWriteBlockedDataBuffered() const {
|
| - return writer_->IsWriteBlockedDataBuffered();
|
| -}
|
| -
|
| -bool QuicDispatcher::IsWriteBlocked() const {
|
| - return writer_->IsWriteBlocked();
|
| -}
|
| -
|
| -void QuicDispatcher::SetWritable() {
|
| - writer_->SetWritable();
|
| -}
|
| -
|
| void QuicDispatcher::ProcessPacket(const IPEndPoint& server_address,
|
| const IPEndPoint& client_address,
|
| const QuicEncryptedPacket& packet) {
|
| @@ -273,7 +241,7 @@ void QuicDispatcher::DeleteSessions() {
|
|
|
| bool QuicDispatcher::OnCanWrite() {
|
| // We got an EPOLLOUT: the socket should not be blocked.
|
| - SetWritable();
|
| + writer_->SetWritable();
|
|
|
| // Give each writer one attempt to write.
|
| int num_writers = write_blocked_list_.size();
|
| @@ -284,7 +252,7 @@ bool QuicDispatcher::OnCanWrite() {
|
| QuicBlockedWriterInterface* writer = write_blocked_list_.begin()->first;
|
| write_blocked_list_.erase(write_blocked_list_.begin());
|
| bool can_write_more = writer->OnCanWrite();
|
| - if (IsWriteBlocked()) {
|
| + if (writer_->IsWriteBlocked()) {
|
| // We were unable to write. Wait for the next EPOLLOUT.
|
| // In this case, the session would have been added to the blocked list
|
| // up in WritePacket.
|
| @@ -336,24 +304,33 @@ void QuicDispatcher::OnWriteBlocked(QuicBlockedWriterInterface* writer) {
|
| write_blocked_list_.insert(make_pair(writer, true));
|
| }
|
|
|
| +QuicPacketWriter* QuicDispatcher::CreateWriter(int fd) {
|
| + return new QuicDefaultPacketWriter(fd);
|
| +}
|
| +
|
| +QuicPacketWriterWrapper* QuicDispatcher::CreateWriterWrapper(
|
| + QuicPacketWriter* writer) {
|
| + return new QuicPacketWriterWrapper(writer);
|
| +}
|
| +
|
| QuicSession* QuicDispatcher::CreateQuicSession(
|
| QuicGuid guid,
|
| const IPEndPoint& server_address,
|
| const IPEndPoint& client_address) {
|
| QuicServerSession* session = new QuicServerSession(
|
| - config_, new QuicConnection(guid, client_address, helper_.get(), this,
|
| - true, supported_versions_), this);
|
| + config_,
|
| + CreateQuicConnection(guid, server_address, client_address),
|
| + this);
|
| session->InitializeSession(crypto_config_);
|
| return session;
|
| }
|
|
|
| -QuicPacketWriter* QuicDispatcher::CreateWriter(int fd) {
|
| - return new QuicDefaultPacketWriter(fd);
|
| -}
|
| -
|
| -QuicPacketWriterWrapper* QuicDispatcher::CreateWriterWrapper(
|
| - QuicPacketWriter* writer) {
|
| - return new QuicPacketWriterWrapper(writer);
|
| +QuicConnection* QuicDispatcher::CreateQuicConnection(
|
| + QuicGuid guid,
|
| + const IPEndPoint& server_address,
|
| + const IPEndPoint& client_address) {
|
| + return new QuicConnection(guid, client_address, helper_.get(), writer_.get(),
|
| + true, supported_versions_);
|
| }
|
|
|
| void QuicDispatcher::set_writer(QuicPacketWriter* writer) {
|
|
|