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)9const 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)40const 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