• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "net/quic/quic_client_session_base.h"
6 
7 #include "net/quic/quic_flags.h"
8 
9 namespace net {
10 
QuicClientSessionBase(QuicConnection * connection,const QuicConfig & config)11 QuicClientSessionBase::QuicClientSessionBase(
12     QuicConnection* connection,
13     const QuicConfig& config)
14     : QuicSession(connection, config) {}
15 
~QuicClientSessionBase()16 QuicClientSessionBase::~QuicClientSessionBase() {}
17 
OnCryptoHandshakeEvent(CryptoHandshakeEvent event)18 void QuicClientSessionBase::OnCryptoHandshakeEvent(CryptoHandshakeEvent event) {
19   QuicSession::OnCryptoHandshakeEvent(event);
20   // Set FEC policy for streams immediately after sending CHLO and before any
21   // more data is sent.
22   if (!FLAGS_enable_quic_fec ||
23       event != ENCRYPTION_FIRST_ESTABLISHED ||
24       !config()->HasSendConnectionOptions() ||
25       !ContainsQuicTag(config()->SendConnectionOptions(), kFHDR)) {
26     return;
27   }
28   // kFHDR config maps to FEC protection always for headers stream.
29   // TODO(jri): Add crypto stream in addition to headers for kHDR.
30   headers_stream_->set_fec_policy(FEC_PROTECT_ALWAYS);
31 }
32 
33 }  // namespace net
34