xref: /aosp_15_r20/external/cronet/net/socket/next_proto.cc (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1 // Copyright 2016 The Chromium Authors
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/socket/next_proto.h"
6 
7 #include <string_view>
8 
9 namespace net {
10 
NextProtoFromString(std::string_view proto_string)11 NextProto NextProtoFromString(std::string_view proto_string) {
12   if (proto_string == "http/1.1") {
13     return kProtoHTTP11;
14   }
15   if (proto_string == "h2") {
16     return kProtoHTTP2;
17   }
18   if (proto_string == "quic" || proto_string == "hq") {
19     return kProtoQUIC;
20   }
21 
22   return kProtoUnknown;
23 }
24 
NextProtoToString(NextProto next_proto)25 const char* NextProtoToString(NextProto next_proto) {
26   switch (next_proto) {
27     case kProtoHTTP11:
28       return "http/1.1";
29     case kProtoHTTP2:
30       return "h2";
31     case kProtoQUIC:
32       return "quic";
33     case kProtoUnknown:
34       break;
35   }
36   return "unknown";
37 }
38 
39 }  // namespace net
40