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
9namespace net {
10
11QuicClientSessionBase::QuicClientSessionBase(
12    QuicConnection* connection,
13    const QuicConfig& config)
14    : QuicSession(connection, config) {}
15
16QuicClientSessionBase::~QuicClientSessionBase() {}
17
18void 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