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

Unified Diff: net/quic/core/quic_session.cc

Issue 2825083003: Landing Recent QUIC changes until Mon Apr 17 2017 (Closed)
Patch Set: Format Created 3 years, 8 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/quic/core/quic_session.h ('k') | net/quic/core/quic_session_test.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/quic/core/quic_session.cc
diff --git a/net/quic/core/quic_session.cc b/net/quic/core/quic_session.cc
index 453d3b78473ba828130c92403ee1d86b7b49b9a0..9508fe39524d94d1f6603cf49a52a2503eccc917 100644
--- a/net/quic/core/quic_session.cc
+++ b/net/quic/core/quic_session.cc
@@ -8,9 +8,9 @@
#include <utility>
#include "net/quic/core/quic_connection.h"
-#include "net/quic/core/quic_flags.h"
#include "net/quic/core/quic_flow_controller.h"
#include "net/quic/platform/api/quic_bug_tracker.h"
+#include "net/quic/platform/api/quic_flags.h"
#include "net/quic/platform/api/quic_logging.h"
#include "net/quic/platform/api/quic_map_util.h"
#include "net/quic/platform/api/quic_str_cat.h"
@@ -50,8 +50,8 @@ void QuicSession::Initialize() {
connection_->set_visitor(this);
connection_->SetFromConfig(config_);
- DCHECK_EQ(kCryptoStreamId, GetCryptoStream()->id());
- static_stream_map_[kCryptoStreamId] = GetCryptoStream();
+ DCHECK_EQ(kCryptoStreamId, GetMutableCryptoStream()->id());
+ static_stream_map_[kCryptoStreamId] = GetMutableCryptoStream();
}
QuicSession::~QuicSession() {
@@ -288,14 +288,14 @@ QuicConsumedData QuicSession::WritevData(
QuicStreamId id,
QuicIOVector iov,
QuicStreamOffset offset,
- bool fin,
+ StreamSendingState state,
QuicReferenceCountedPointer<QuicAckListenerInterface> ack_listener) {
// This check is an attempt to deal with potential memory corruption
// in which |id| ends up set to 1 (the crypto stream id). If this happen
// it might end up resulting in unencrypted stream data being sent.
// While this is impossible to avoid given sufficient corruption, this
// seems like a reasonable mitigation.
- if (id == kCryptoStreamId && stream != GetCryptoStream()) {
+ if (id == kCryptoStreamId && stream != GetMutableCryptoStream()) {
QUIC_BUG << "Stream id mismatch";
connection_->CloseConnection(
QUIC_INTERNAL_ERROR,
@@ -308,7 +308,7 @@ QuicConsumedData QuicSession::WritevData(
// up write blocked until OnCanWrite is next called.
return QuicConsumedData(0, false);
}
- QuicConsumedData data = connection_->SendStreamData(id, iov, offset, fin,
+ QuicConsumedData data = connection_->SendStreamData(id, iov, offset, state,
std::move(ack_listener));
write_blocked_streams_.UpdateBytesForStream(id, data.bytes_consumed);
return data;
@@ -425,28 +425,25 @@ void QuicSession::UpdateFlowControlOnFinalReceivedByteOffset(
}
}
-bool QuicSession::IsEncryptionEstablished() {
+bool QuicSession::IsEncryptionEstablished() const {
return GetCryptoStream()->encryption_established();
}
-bool QuicSession::IsCryptoHandshakeConfirmed() {
+bool QuicSession::IsCryptoHandshakeConfirmed() const {
return GetCryptoStream()->handshake_confirmed();
}
void QuicSession::OnConfigNegotiated() {
connection_->SetFromConfig(config_);
- const QuicVersion version = connection()->version();
uint32_t max_streams = 0;
- if (version > QUIC_VERSION_34 &&
- config_.HasReceivedMaxIncomingDynamicStreams()) {
+ if (config_.HasReceivedMaxIncomingDynamicStreams()) {
max_streams = config_.ReceivedMaxIncomingDynamicStreams();
} else {
max_streams = config_.MaxStreamsPerConnection();
}
set_max_open_outgoing_streams(max_streams);
- if (FLAGS_quic_reloadable_flag_quic_large_ifw_options &&
- perspective() == Perspective::IS_SERVER) {
+ if (perspective() == Perspective::IS_SERVER) {
if (config_.HasReceivedConnectionOptions()) {
// The following variations change the initial receive flow control
// window sizes.
@@ -468,25 +465,18 @@ void QuicSession::OnConfigNegotiated() {
}
}
- if (version <= QUIC_VERSION_34) {
- // A small number of additional incoming streams beyond the limit should be
- // allowed. This helps avoid early connection termination when FIN/RSTs for
- // old streams are lost or arrive out of order.
- // Use a minimum number of additional streams, or a percentage increase,
- // whichever is larger.
- uint32_t max_incoming_streams =
- std::max(max_streams + kMaxStreamsMinimumIncrement,
- static_cast<uint32_t>(max_streams * kMaxStreamsMultiplier));
- set_max_open_incoming_streams(max_incoming_streams);
- } else {
- uint32_t max_incoming_streams_to_send =
- config_.GetMaxIncomingDynamicStreamsToSend();
- uint32_t max_incoming_streams =
- std::max(max_incoming_streams_to_send + kMaxStreamsMinimumIncrement,
- static_cast<uint32_t>(max_incoming_streams_to_send *
- kMaxStreamsMultiplier));
- set_max_open_incoming_streams(max_incoming_streams);
- }
+ // A small number of additional incoming streams beyond the limit should be
+ // allowed. This helps avoid early connection termination when FIN/RSTs for
+ // old streams are lost or arrive out of order.
+ // Use a minimum number of additional streams, or a percentage increase,
+ // whichever is larger.
+ uint32_t max_incoming_streams_to_send =
+ config_.GetMaxIncomingDynamicStreamsToSend();
+ uint32_t max_incoming_streams =
+ std::max(max_incoming_streams_to_send + kMaxStreamsMinimumIncrement,
+ static_cast<uint32_t>(max_incoming_streams_to_send *
+ kMaxStreamsMultiplier));
+ set_max_open_incoming_streams(max_incoming_streams);
if (config_.HasReceivedInitialStreamFlowControlWindowBytes()) {
// Streams which were created before the SHLO was received (0-RTT
« no previous file with comments | « net/quic/core/quic_session.h ('k') | net/quic/core/quic_session_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698