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

Unified Diff: net/quic/quic_chromium_client_session.cc

Issue 1775283002: [Domain Reliabiliy: net stack] Plumb received go away from server due to connection migration. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 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
Index: net/quic/quic_chromium_client_session.cc
diff --git a/net/quic/quic_chromium_client_session.cc b/net/quic/quic_chromium_client_session.cc
index 15ec708d5f4c8df66dd85ad4db6eea3e37c19fc4..f5abd206dc7eb1227b9e6a686304179e9063e9a7 100644
--- a/net/quic/quic_chromium_client_session.cc
+++ b/net/quic/quic_chromium_client_session.cc
@@ -759,7 +759,8 @@ void QuicChromiumClientSession::OnCryptoHandshakeMessageReceived(
void QuicChromiumClientSession::OnGoAway(const QuicGoAwayFrame& frame) {
QuicSession::OnGoAway(frame);
- NotifyFactoryOfSessionGoingAway();
+ NotifyFactoryOfSessionGoingAway(frame.reason_phrase ==
+ "peer connection migration");
}
void QuicChromiumClientSession::OnRstStream(const QuicRstStreamFrame& frame) {
@@ -849,7 +850,7 @@ void QuicChromiumClientSession::OnConnectionClosed(
UMA_HISTOGRAM_SPARSE_SLOWLY("Net.QuicSession.QuicVersion",
connection()->version());
- NotifyFactoryOfSessionGoingAway();
+ NotifyFactoryOfSessionGoingAway(false);
QuicSession::OnConnectionClosed(error, source);
if (!callback_.is_null()) {
@@ -1015,7 +1016,7 @@ void QuicChromiumClientSession::OnReadError(
}
DVLOG(1) << "Closing session on read error: " << result;
UMA_HISTOGRAM_SPARSE_SLOWLY("Net.QuicSession.ReadError", -result);
- NotifyFactoryOfSessionGoingAway();
+ NotifyFactoryOfSessionGoingAway(false);
CloseSessionOnErrorInner(result, QUIC_PACKET_READ_ERROR);
NotifyFactoryOfSessionClosedLater();
}
@@ -1031,10 +1032,14 @@ bool QuicChromiumClientSession::OnPacket(const QuicEncryptedPacket& packet,
return true;
}
-void QuicChromiumClientSession::NotifyFactoryOfSessionGoingAway() {
+void QuicChromiumClientSession::NotifyFactoryOfSessionGoingAway(
+ bool is_connection_migrated) {
going_away_ = true;
- if (stream_factory_)
+ if (stream_factory_) {
stream_factory_->OnSessionGoingAway(this);
+ if (is_connection_migrated)
+ stream_factory_->OnSessionGoingAwayForConnectionMigration();
Ryan Hamilton 2016/03/09 19:53:03 Instead of doing this, can we have the session sto
+ }
}
void QuicChromiumClientSession::NotifyFactoryOfSessionClosedLater() {

Powered by Google App Engine
This is Rietveld 408576698