Index: net/quic/quic_config.cc |
diff --git a/net/quic/quic_config.cc b/net/quic/quic_config.cc |
index 7fd0c41b9f218620110a7cabe1e9815af01c4492..25e567cb0a417d7ae7329b0d95d0bd33ca93ae7f 100644 |
--- a/net/quic/quic_config.cc |
+++ b/net/quic/quic_config.cc |
@@ -408,7 +408,8 @@ QuicConfig::QuicConfig() |
connection_options_(kCOPT, PRESENCE_OPTIONAL), |
idle_connection_state_lifetime_seconds_(kICSL, PRESENCE_REQUIRED), |
silent_close_(kSCLS, PRESENCE_OPTIONAL), |
- max_streams_per_connection_(kMSPC, PRESENCE_REQUIRED), |
+ max_streams_per_connection_(kMSPC, PRESENCE_OPTIONAL), |
+ max_incoming_dynamic_streams_(kMIDS, PRESENCE_OPTIONAL), |
bytes_for_connection_id_(kTCID, PRESENCE_OPTIONAL), |
initial_round_trip_time_us_(kIRTT, PRESENCE_OPTIONAL), |
initial_stream_flow_control_window_bytes_(kSFCW, PRESENCE_OPTIONAL), |
@@ -501,6 +502,23 @@ uint32_t QuicConfig::MaxStreamsPerConnection() const { |
return max_streams_per_connection_.GetUint32(); |
} |
+void QuicConfig::SetMaxIncomingDynamicStreamsToSend( |
+ uint32_t max_incoming_dynamic_streams) { |
+ max_incoming_dynamic_streams_.SetSendValue(max_incoming_dynamic_streams); |
+} |
+ |
+uint32_t QuicConfig::GetMaxIncomingDynamicStreamsToSend() { |
+ return max_incoming_dynamic_streams_.GetSendValue(); |
+} |
+ |
+bool QuicConfig::HasReceivedMaxIncomingDynamicStreams() { |
+ return max_incoming_dynamic_streams_.HasReceivedValue(); |
+} |
+ |
+uint32_t QuicConfig::ReceivedMaxIncomingDynamicStreams() { |
+ return max_incoming_dynamic_streams_.GetReceivedValue(); |
+} |
+ |
bool QuicConfig::HasSetBytesForConnectionIdToSend() const { |
return bytes_for_connection_id_.HasSendValue(); |
} |
@@ -639,6 +657,7 @@ void QuicConfig::SetDefaults() { |
silent_close_.set(1, 0); |
SetMaxStreamsPerConnection(kDefaultMaxStreamsPerConnection, |
kDefaultMaxStreamsPerConnection); |
+ SetMaxIncomingDynamicStreamsToSend(kDefaultMaxStreamsPerConnection); |
max_time_before_crypto_handshake_ = |
QuicTime::Delta::FromSeconds(kMaxTimeForCryptoHandshakeSecs); |
max_idle_time_before_crypto_handshake_ = |
@@ -653,6 +672,7 @@ void QuicConfig::ToHandshakeMessage(CryptoHandshakeMessage* out) const { |
idle_connection_state_lifetime_seconds_.ToHandshakeMessage(out); |
silent_close_.ToHandshakeMessage(out); |
max_streams_per_connection_.ToHandshakeMessage(out); |
+ max_incoming_dynamic_streams_.ToHandshakeMessage(out); |
bytes_for_connection_id_.ToHandshakeMessage(out); |
initial_round_trip_time_us_.ToHandshakeMessage(out); |
initial_stream_flow_control_window_bytes_.ToHandshakeMessage(out); |
@@ -683,6 +703,10 @@ QuicErrorCode QuicConfig::ProcessPeerHello( |
error_details); |
} |
if (error == QUIC_NO_ERROR) { |
+ error = max_incoming_dynamic_streams_.ProcessPeerHello( |
+ peer_hello, hello_type, error_details); |
+ } |
+ if (error == QUIC_NO_ERROR) { |
error = bytes_for_connection_id_.ProcessPeerHello(peer_hello, hello_type, |
error_details); |
} |