| Index: net/tools/quic/quic_time_wait_list_manager.cc
|
| diff --git a/net/tools/quic/quic_time_wait_list_manager.cc b/net/tools/quic/quic_time_wait_list_manager.cc
|
| index d17d721059ca6d7a5d4627146b7c57e55ea79cc9..4708d6132ebaf58e2a29996fd82b2244025cf198 100644
|
| --- a/net/tools/quic/quic_time_wait_list_manager.cc
|
| +++ b/net/tools/quic/quic_time_wait_list_manager.cc
|
| @@ -17,6 +17,7 @@
|
| #include "net/quic/quic_framer.h"
|
| #include "net/quic/quic_protocol.h"
|
| #include "net/quic/quic_utils.h"
|
| +#include "net/tools/quic/quic_server_session.h"
|
|
|
| using base::StringPiece;
|
| using std::make_pair;
|
| @@ -93,13 +94,15 @@ class QuicTimeWaitListManager::QueuedPacket {
|
|
|
| QuicTimeWaitListManager::QuicTimeWaitListManager(
|
| QuicPacketWriter* writer,
|
| + QuicServerSessionVisitor* visitor,
|
| EpollServer* epoll_server,
|
| const QuicVersionVector& supported_versions)
|
| : epoll_server_(epoll_server),
|
| kTimeWaitPeriod_(QuicTime::Delta::FromSeconds(kTimeWaitSeconds)),
|
| guid_clean_up_alarm_(new GuidCleanUpAlarm(this)),
|
| clock_(epoll_server_),
|
| - writer_(writer) {
|
| + writer_(writer),
|
| + visitor_(visitor) {
|
| SetGuidCleanUpAlarm();
|
| }
|
|
|
| @@ -215,6 +218,7 @@ void QuicTimeWaitListManager::SendOrQueuePacket(QueuedPacket* packet) {
|
|
|
| bool QuicTimeWaitListManager::WriteToWire(QueuedPacket* queued_packet) {
|
| if (writer_->IsWriteBlocked()) {
|
| + visitor_->OnWriteBlocked(this);
|
| return false;
|
| }
|
| WriteResult result = writer_->WritePacket(
|
| @@ -226,6 +230,7 @@ bool QuicTimeWaitListManager::WriteToWire(QueuedPacket* queued_packet) {
|
| if (result.status == WRITE_STATUS_BLOCKED) {
|
| // If blocked and unbuffered, return false to retry sending.
|
| DCHECK(writer_->IsWriteBlocked());
|
| + visitor_->OnWriteBlocked(this);
|
| return writer_->IsWriteBlockedDataBuffered();
|
| } else if (result.status == WRITE_STATUS_ERROR) {
|
| LOG(WARNING) << "Received unknown error while sending reset packet to "
|
|
|