| // Copyright 2019 The Chromium Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #include "quic/masque/masque_utils.h" | |
| namespace quic { | |
| ParsedQuicVersionVector MasqueSupportedVersions() { | |
| QuicVersionInitializeSupportForIetfDraft(); | |
| ParsedQuicVersion version = UnsupportedQuicVersion(); | |
| for (const ParsedQuicVersion& vers : AllSupportedVersions()) { | |
| // Find the first version that supports IETF QUIC. | |
| if (vers.HasIetfQuicFrames() && vers.UsesTls()) { | |
| version = vers; | |
| break; | |
| } | |
| } | |
| QUICHE_CHECK(version.IsKnown()); | |
| QuicEnableVersion(version); | |
| return {version}; | |
| } | |
| QuicConfig MasqueEncapsulatedConfig() { | |
| QuicConfig config; | |
| config.SetMaxPacketSizeToSend(kMasqueMaxEncapsulatedPacketSize); | |
| return config; | |
| } | |
| std::string MasqueModeToString(MasqueMode masque_mode) { | |
| switch (masque_mode) { | |
| case MasqueMode::kInvalid: | |
| return "Invalid"; | |
| case MasqueMode::kLegacy: | |
| return "Legacy"; | |
| case MasqueMode::kOpen: | |
| return "Open"; | |
| } | |
| return absl::StrCat("Unknown(", static_cast<int>(masque_mode), ")"); | |
| } | |
| std::ostream& operator<<(std::ostream& os, const MasqueMode& masque_mode) { | |
| os << MasqueModeToString(masque_mode); | |
| return os; | |
| } | |
| } // namespace quic |