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

Unified Diff: net/tools/quic/quic_time_wait_list_manager.cc

Issue 123303003: Move all the packet parsing logic into QuicDispatcher from the (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 12 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/tools/quic/quic_time_wait_list_manager.h ('k') | net/tools/quic/quic_time_wait_list_manager_test.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 31c386cf060ca9727f5f0448d999e8292e5c1c5a..962dfa3cd302228c80ddc3ffa714466f3e96e637 100644
--- a/net/tools/quic/quic_time_wait_list_manager.cc
+++ b/net/tools/quic/quic_time_wait_list_manager.cc
@@ -95,16 +95,12 @@ QuicTimeWaitListManager::QuicTimeWaitListManager(
QuicPacketWriter* writer,
EpollServer* epoll_server,
const QuicVersionVector& supported_versions)
- : framer_(supported_versions,
- QuicTime::Zero(), // unused
- true),
- epoll_server_(epoll_server),
+ : epoll_server_(epoll_server),
kTimeWaitPeriod_(QuicTime::Delta::FromSeconds(kTimeWaitSeconds)),
guid_clean_up_alarm_(new GuidCleanUpAlarm(this)),
- clock_(epoll_server),
+ clock_(epoll_server_),
writer_(writer),
is_write_blocked_(false) {
- framer_.set_visitor(this);
SetGuidCleanUpAlarm();
}
@@ -127,28 +123,13 @@ void QuicTimeWaitListManager::AddGuidToTimeWait(
guid_map_.insert(make_pair(guid, data));
time_ordered_guid_list_.push_back(new GuidAddTime(guid,
clock_.ApproximateNow()));
+ DCHECK(IsGuidInTimeWait(guid));
}
bool QuicTimeWaitListManager::IsGuidInTimeWait(QuicGuid guid) const {
return guid_map_.find(guid) != guid_map_.end();
}
-void QuicTimeWaitListManager::ProcessPacket(
- const IPEndPoint& server_address,
- const IPEndPoint& client_address,
- QuicGuid guid,
- const QuicEncryptedPacket& packet) {
- DCHECK(IsGuidInTimeWait(guid));
- server_address_ = server_address;
- client_address_ = client_address;
-
- // Set the framer to the appropriate version for this GUID, before processing.
- QuicVersion version = GetQuicVersionFromGuid(guid);
- framer_.set_version(version);
-
- framer_.ProcessPacket(packet);
-}
-
QuicVersion QuicTimeWaitListManager::GetQuicVersionFromGuid(QuicGuid guid) {
GuidMapIterator it = guid_map_.find(guid);
DCHECK(it != guid_map_.end());
@@ -169,99 +150,31 @@ bool QuicTimeWaitListManager::OnCanWrite() {
return !is_write_blocked_;
}
-void QuicTimeWaitListManager::OnError(QuicFramer* framer) {
- DLOG(INFO) << QuicUtils::ErrorToString(framer->error());
-}
-
-bool QuicTimeWaitListManager::OnProtocolVersionMismatch(
- QuicVersion received_version) {
- if (!framer_.IsSupportedVersion(received_version)) {
- // Drop such packets whose version don't match.
- return false;
- }
- // Allow the framer to continue processing this packet.
- framer_.set_version(received_version);
- return true;
-}
-
-bool QuicTimeWaitListManager::OnUnauthenticatedHeader(
- const QuicPacketHeader& header) {
+void QuicTimeWaitListManager::ProcessPacket(
+ const IPEndPoint& server_address,
+ const IPEndPoint& client_address,
+ QuicGuid guid,
+ QuicPacketSequenceNumber sequence_number) {
+ DCHECK(IsGuidInTimeWait(guid));
// TODO(satyamshekhar): Think about handling packets from different client
// addresses.
- GuidMapIterator it = guid_map_.find(header.public_header.guid);
+ GuidMapIterator it = guid_map_.find(guid);
DCHECK(it != guid_map_.end());
// Increment the received packet count.
++((it->second).num_packets);
if (!ShouldSendResponse((it->second).num_packets)) {
- return false;
+ return;
}
if (it->second.close_packet) {
QueuedPacket* queued_packet =
- new QueuedPacket(server_address_,
- client_address_,
+ new QueuedPacket(server_address,
+ client_address,
it->second.close_packet->Clone());
// Takes ownership of the packet.
SendOrQueuePacket(queued_packet);
} else {
- // We don't need the packet anymore. Just tell the client what sequence
- // number we rejected.
- SendPublicReset(server_address_,
- client_address_,
- header.public_header.guid,
- header.packet_sequence_number);
+ SendPublicReset(server_address, client_address, guid, sequence_number);
}
- // Never process the body of the packet in time wait state.
- return false;
-}
-
-bool QuicTimeWaitListManager::OnPacketHeader(const QuicPacketHeader& header) {
- DCHECK(false);
- return false;
-}
-
-void QuicTimeWaitListManager::OnRevivedPacket() {
- DCHECK(false);
-}
-
-void QuicTimeWaitListManager::OnFecProtectedPayload(StringPiece /*payload*/) {
- DCHECK(false);
-}
-
-bool QuicTimeWaitListManager::OnStreamFrame(const QuicStreamFrame& /*frame*/) {
- DCHECK(false);
- return false;
-}
-
-bool QuicTimeWaitListManager::OnAckFrame(const QuicAckFrame& /*frame*/) {
- DCHECK(false);
- return false;
-}
-
-bool QuicTimeWaitListManager::OnCongestionFeedbackFrame(
- const QuicCongestionFeedbackFrame& /*frame*/) {
- DCHECK(false);
- return false;
-}
-
-bool QuicTimeWaitListManager::OnRstStreamFrame(
- const QuicRstStreamFrame& /*frame*/) {
- DCHECK(false);
- return false;
-}
-
-bool QuicTimeWaitListManager::OnConnectionCloseFrame(
- const QuicConnectionCloseFrame & /*frame*/) {
- DCHECK(false);
- return false;
-}
-
-bool QuicTimeWaitListManager::OnGoAwayFrame(const QuicGoAwayFrame& /*frame*/) {
- DCHECK(false);
- return false;
-}
-
-void QuicTimeWaitListManager::OnFecData(const QuicFecData& /*fec*/) {
- DCHECK(false);
}
// Returns true if the number of packets received for this guid is a power of 2
@@ -315,7 +228,6 @@ void QuicTimeWaitListManager::WriteToWire(QueuedPacket* queued_packet) {
queued_packet->server_address().address(),
queued_packet->client_address(),
this);
-
if (result.status == WRITE_STATUS_BLOCKED) {
is_write_blocked_ = true;
} else if (result.status == WRITE_STATUS_ERROR) {
« no previous file with comments | « net/tools/quic/quic_time_wait_list_manager.h ('k') | net/tools/quic/quic_time_wait_list_manager_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698