xref: /aosp_15_r20/external/cronet/net/socket/next_proto.cc (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1*6777b538SAndroid Build Coastguard Worker // Copyright 2016 The Chromium Authors
2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file.
4*6777b538SAndroid Build Coastguard Worker 
5*6777b538SAndroid Build Coastguard Worker #include "net/socket/next_proto.h"
6*6777b538SAndroid Build Coastguard Worker 
7*6777b538SAndroid Build Coastguard Worker #include <string_view>
8*6777b538SAndroid Build Coastguard Worker 
9*6777b538SAndroid Build Coastguard Worker namespace net {
10*6777b538SAndroid Build Coastguard Worker 
NextProtoFromString(std::string_view proto_string)11*6777b538SAndroid Build Coastguard Worker NextProto NextProtoFromString(std::string_view proto_string) {
12*6777b538SAndroid Build Coastguard Worker   if (proto_string == "http/1.1") {
13*6777b538SAndroid Build Coastguard Worker     return kProtoHTTP11;
14*6777b538SAndroid Build Coastguard Worker   }
15*6777b538SAndroid Build Coastguard Worker   if (proto_string == "h2") {
16*6777b538SAndroid Build Coastguard Worker     return kProtoHTTP2;
17*6777b538SAndroid Build Coastguard Worker   }
18*6777b538SAndroid Build Coastguard Worker   if (proto_string == "quic" || proto_string == "hq") {
19*6777b538SAndroid Build Coastguard Worker     return kProtoQUIC;
20*6777b538SAndroid Build Coastguard Worker   }
21*6777b538SAndroid Build Coastguard Worker 
22*6777b538SAndroid Build Coastguard Worker   return kProtoUnknown;
23*6777b538SAndroid Build Coastguard Worker }
24*6777b538SAndroid Build Coastguard Worker 
NextProtoToString(NextProto next_proto)25*6777b538SAndroid Build Coastguard Worker const char* NextProtoToString(NextProto next_proto) {
26*6777b538SAndroid Build Coastguard Worker   switch (next_proto) {
27*6777b538SAndroid Build Coastguard Worker     case kProtoHTTP11:
28*6777b538SAndroid Build Coastguard Worker       return "http/1.1";
29*6777b538SAndroid Build Coastguard Worker     case kProtoHTTP2:
30*6777b538SAndroid Build Coastguard Worker       return "h2";
31*6777b538SAndroid Build Coastguard Worker     case kProtoQUIC:
32*6777b538SAndroid Build Coastguard Worker       return "quic";
33*6777b538SAndroid Build Coastguard Worker     case kProtoUnknown:
34*6777b538SAndroid Build Coastguard Worker       break;
35*6777b538SAndroid Build Coastguard Worker   }
36*6777b538SAndroid Build Coastguard Worker   return "unknown";
37*6777b538SAndroid Build Coastguard Worker }
38*6777b538SAndroid Build Coastguard Worker 
39*6777b538SAndroid Build Coastguard Worker }  // namespace net
40