xref: /aosp_15_r20/external/cronet/net/third_party/quiche/src/quiche/balsa/balsa_enums.cc (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1 // Copyright 2021 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 "quiche/balsa/balsa_enums.h"
6 
7 namespace quiche {
8 
ParseStateToString(BalsaFrameEnums::ParseState error_code)9 const char* BalsaFrameEnums::ParseStateToString(
10     BalsaFrameEnums::ParseState error_code) {
11   switch (error_code) {
12     case ERROR:
13       return "ERROR";
14     case READING_HEADER_AND_FIRSTLINE:
15       return "READING_HEADER_AND_FIRSTLINE";
16     case READING_CHUNK_LENGTH:
17       return "READING_CHUNK_LENGTH";
18     case READING_CHUNK_EXTENSION:
19       return "READING_CHUNK_EXTENSION";
20     case READING_CHUNK_DATA:
21       return "READING_CHUNK_DATA";
22     case READING_CHUNK_TERM:
23       return "READING_CHUNK_TERM";
24     case READING_LAST_CHUNK_TERM:
25       return "READING_LAST_CHUNK_TERM";
26     case READING_TRAILER:
27       return "READING_TRAILER";
28     case READING_UNTIL_CLOSE:
29       return "READING_UNTIL_CLOSE";
30     case READING_CONTENT:
31       return "READING_CONTENT";
32     case MESSAGE_FULLY_READ:
33       return "MESSAGE_FULLY_READ";
34     case NUM_STATES:
35       return "UNKNOWN_STATE";
36   }
37   return "UNKNOWN_STATE";
38 }
39 
ErrorCodeToString(BalsaFrameEnums::ErrorCode error_code)40 const char* BalsaFrameEnums::ErrorCodeToString(
41     BalsaFrameEnums::ErrorCode error_code) {
42   switch (error_code) {
43     case BALSA_NO_ERROR:
44       return "BALSA_NO_ERROR";
45     case NO_STATUS_LINE_IN_RESPONSE:
46       return "NO_STATUS_LINE_IN_RESPONSE";
47     case NO_REQUEST_LINE_IN_REQUEST:
48       return "NO_REQUEST_LINE_IN_REQUEST";
49     case FAILED_TO_FIND_WS_AFTER_RESPONSE_VERSION:
50       return "FAILED_TO_FIND_WS_AFTER_RESPONSE_VERSION";
51     case FAILED_TO_FIND_WS_AFTER_REQUEST_METHOD:
52       return "FAILED_TO_FIND_WS_AFTER_REQUEST_METHOD";
53     case FAILED_TO_FIND_WS_AFTER_RESPONSE_STATUSCODE:
54       return "FAILED_TO_FIND_WS_AFTER_RESPONSE_STATUSCODE";
55     case FAILED_TO_FIND_WS_AFTER_REQUEST_REQUEST_URI:
56       return "FAILED_TO_FIND_WS_AFTER_REQUEST_REQUEST_URI";
57     case FAILED_TO_FIND_NL_AFTER_RESPONSE_REASON_PHRASE:
58       return "FAILED_TO_FIND_NL_AFTER_RESPONSE_REASON_PHRASE";
59     case FAILED_TO_FIND_NL_AFTER_REQUEST_HTTP_VERSION:
60       return "FAILED_TO_FIND_NL_AFTER_REQUEST_HTTP_VERSION";
61     case FAILED_CONVERTING_STATUS_CODE_TO_INT:
62       return "FAILED_CONVERTING_STATUS_CODE_TO_INT";
63     case HEADERS_TOO_LONG:
64       return "HEADERS_TOO_LONG";
65     case UNPARSABLE_CONTENT_LENGTH:
66       return "UNPARSABLE_CONTENT_LENGTH";
67     case HTTP2_CONTENT_LENGTH_ERROR:
68       return "HTTP2_CONTENT_LENGTH_ERROR";
69     case MAYBE_BODY_BUT_NO_CONTENT_LENGTH:
70       return "MAYBE_BODY_BUT_NO_CONTENT_LENGTH";
71     case REQUIRED_BODY_BUT_NO_CONTENT_LENGTH:
72       return "REQUIRED_BODY_BUT_NO_CONTENT_LENGTH";
73     case HEADER_MISSING_COLON:
74       return "HEADER_MISSING_COLON";
75     case INVALID_CHUNK_LENGTH:
76       return "INVALID_CHUNK_LENGTH";
77     case CHUNK_LENGTH_OVERFLOW:
78       return "CHUNK_LENGTH_OVERFLOW";
79     case INVALID_CHUNK_EXTENSION:
80       return "INVALID_CHUNK_EXTENSION";
81     case CALLED_BYTES_SPLICED_WHEN_UNSAFE_TO_DO_SO:
82       return "CALLED_BYTES_SPLICED_WHEN_UNSAFE_TO_DO_SO";
83     case CALLED_BYTES_SPLICED_AND_EXCEEDED_SAFE_SPLICE_AMOUNT:
84       return "CALLED_BYTES_SPLICED_AND_EXCEEDED_SAFE_SPLICE_AMOUNT";
85     case MULTIPLE_CONTENT_LENGTH_KEYS:
86       return "MULTIPLE_CONTENT_LENGTH_KEYS";
87     case MULTIPLE_TRANSFER_ENCODING_KEYS:
88       return "MULTIPLE_TRANSFER_ENCODING_KEYS";
89     case UNKNOWN_TRANSFER_ENCODING:
90       return "UNKNOWN_TRANSFER_ENCODING";
91     case BOTH_TRANSFER_ENCODING_AND_CONTENT_LENGTH:
92       return "BOTH_TRANSFER_ENCODING_AND_CONTENT_LENGTH";
93     case INVALID_HEADER_FORMAT:
94       return "INVALID_HEADER_FORMAT";
95     case HTTP2_INVALID_HEADER_FORMAT:
96       return "HTTP2_INVALID_HEADER_FORMAT";
97     case INVALID_TRAILER_FORMAT:
98       return "INVALID_TRAILER_FORMAT";
99     case TRAILER_TOO_LONG:
100       return "TRAILER_TOO_LONG";
101     case TRAILER_MISSING_COLON:
102       return "TRAILER_MISSING_COLON";
103     case INTERNAL_LOGIC_ERROR:
104       return "INTERNAL_LOGIC_ERROR";
105     case INVALID_HEADER_CHARACTER:
106       return "INVALID_HEADER_CHARACTER";
107     case INVALID_HEADER_NAME_CHARACTER:
108       return "INVALID_HEADER_NAME_CHARACTER";
109     case INVALID_TRAILER_NAME_CHARACTER:
110       return "INVALID_TRAILER_NAME_CHARACTER";
111     case UNSUPPORTED_100_CONTINUE:
112       return "UNSUPPORTED_100_CONTINUE";
113     case NUM_ERROR_CODES:
114       return "UNKNOWN_ERROR";
115   }
116   return "UNKNOWN_ERROR";
117 }
118 
119 }  // namespace quiche
120