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