| // Copyright 2021 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 "quiche/balsa/balsa_enums.h" | 
 |  | 
 | namespace quiche { | 
 |  | 
 | const char* BalsaFrameEnums::ParseStateToString( | 
 |     BalsaFrameEnums::ParseState error_code) { | 
 |   switch (error_code) { | 
 |     case ERROR: | 
 |       return "ERROR"; | 
 |     case READING_HEADER_AND_FIRSTLINE: | 
 |       return "READING_HEADER_AND_FIRSTLINE"; | 
 |     case READING_CHUNK_LENGTH: | 
 |       return "READING_CHUNK_LENGTH"; | 
 |     case READING_CHUNK_EXTENSION: | 
 |       return "READING_CHUNK_EXTENSION"; | 
 |     case READING_CHUNK_DATA: | 
 |       return "READING_CHUNK_DATA"; | 
 |     case READING_CHUNK_TERM: | 
 |       return "READING_CHUNK_TERM"; | 
 |     case READING_LAST_CHUNK_TERM: | 
 |       return "READING_LAST_CHUNK_TERM"; | 
 |     case READING_TRAILER: | 
 |       return "READING_TRAILER"; | 
 |     case READING_UNTIL_CLOSE: | 
 |       return "READING_UNTIL_CLOSE"; | 
 |     case READING_CONTENT: | 
 |       return "READING_CONTENT"; | 
 |     case MESSAGE_FULLY_READ: | 
 |       return "MESSAGE_FULLY_READ"; | 
 |     case NUM_STATES: | 
 |       return "UNKNOWN_STATE"; | 
 |   } | 
 |   return "UNKNOWN_STATE"; | 
 | } | 
 |  | 
 | const char* BalsaFrameEnums::ErrorCodeToString( | 
 |     BalsaFrameEnums::ErrorCode error_code) { | 
 |   switch (error_code) { | 
 |     case BALSA_NO_ERROR: | 
 |       return "BALSA_NO_ERROR"; | 
 |     case NO_STATUS_LINE_IN_RESPONSE: | 
 |       return "NO_STATUS_LINE_IN_RESPONSE"; | 
 |     case NO_REQUEST_LINE_IN_REQUEST: | 
 |       return "NO_REQUEST_LINE_IN_REQUEST"; | 
 |     case FAILED_TO_FIND_WS_AFTER_RESPONSE_VERSION: | 
 |       return "FAILED_TO_FIND_WS_AFTER_RESPONSE_VERSION"; | 
 |     case FAILED_TO_FIND_WS_AFTER_REQUEST_METHOD: | 
 |       return "FAILED_TO_FIND_WS_AFTER_REQUEST_METHOD"; | 
 |     case FAILED_TO_FIND_WS_AFTER_RESPONSE_STATUSCODE: | 
 |       return "FAILED_TO_FIND_WS_AFTER_RESPONSE_STATUSCODE"; | 
 |     case FAILED_TO_FIND_WS_AFTER_REQUEST_REQUEST_URI: | 
 |       return "FAILED_TO_FIND_WS_AFTER_REQUEST_REQUEST_URI"; | 
 |     case FAILED_TO_FIND_NL_AFTER_RESPONSE_REASON_PHRASE: | 
 |       return "FAILED_TO_FIND_NL_AFTER_RESPONSE_REASON_PHRASE"; | 
 |     case FAILED_TO_FIND_NL_AFTER_REQUEST_HTTP_VERSION: | 
 |       return "FAILED_TO_FIND_NL_AFTER_REQUEST_HTTP_VERSION"; | 
 |     case INVALID_WS_IN_STATUS_LINE: | 
 |       return "INVALID_WS_IN_STATUS_LINE"; | 
 |     case INVALID_WS_IN_REQUEST_LINE: | 
 |       return "INVALID_WS_IN_REQUEST_LINE"; | 
 |     case OBS_FOLD_IN_HEADERS: | 
 |       return "OBS_FOLD_IN_HEADERS"; | 
 |     case FAILED_CONVERTING_STATUS_CODE_TO_INT: | 
 |       return "FAILED_CONVERTING_STATUS_CODE_TO_INT"; | 
 |     case INVALID_TARGET_URI: | 
 |       return "INVALID_TARGET_URI"; | 
 |     case HEADERS_TOO_LONG: | 
 |       return "HEADERS_TOO_LONG"; | 
 |     case UNPARSABLE_CONTENT_LENGTH: | 
 |       return "UNPARSABLE_CONTENT_LENGTH"; | 
 |     case MAYBE_BODY_BUT_NO_CONTENT_LENGTH: | 
 |       return "MAYBE_BODY_BUT_NO_CONTENT_LENGTH"; | 
 |     case REQUIRED_BODY_BUT_NO_CONTENT_LENGTH: | 
 |       return "REQUIRED_BODY_BUT_NO_CONTENT_LENGTH"; | 
 |     case HEADER_MISSING_COLON: | 
 |       return "HEADER_MISSING_COLON"; | 
 |     case INVALID_CHUNK_LENGTH: | 
 |       return "INVALID_CHUNK_LENGTH"; | 
 |     case CHUNK_LENGTH_OVERFLOW: | 
 |       return "CHUNK_LENGTH_OVERFLOW"; | 
 |     case INVALID_CHUNK_EXTENSION: | 
 |       return "INVALID_CHUNK_EXTENSION"; | 
 |     case CALLED_BYTES_SPLICED_WHEN_UNSAFE_TO_DO_SO: | 
 |       return "CALLED_BYTES_SPLICED_WHEN_UNSAFE_TO_DO_SO"; | 
 |     case CALLED_BYTES_SPLICED_AND_EXCEEDED_SAFE_SPLICE_AMOUNT: | 
 |       return "CALLED_BYTES_SPLICED_AND_EXCEEDED_SAFE_SPLICE_AMOUNT"; | 
 |     case MULTIPLE_CONTENT_LENGTH_KEYS: | 
 |       return "MULTIPLE_CONTENT_LENGTH_KEYS"; | 
 |     case MULTIPLE_TRANSFER_ENCODING_KEYS: | 
 |       return "MULTIPLE_TRANSFER_ENCODING_KEYS"; | 
 |     case UNKNOWN_TRANSFER_ENCODING: | 
 |       return "UNKNOWN_TRANSFER_ENCODING"; | 
 |     case BOTH_TRANSFER_ENCODING_AND_CONTENT_LENGTH: | 
 |       return "BOTH_TRANSFER_ENCODING_AND_CONTENT_LENGTH"; | 
 |     case INVALID_HEADER_FORMAT: | 
 |       return "INVALID_HEADER_FORMAT"; | 
 |     case HTTP2_CONTENT_LENGTH_ERROR: | 
 |       return "HTTP2_CONTENT_LENGTH_ERROR"; | 
 |     case HTTP2_INVALID_HEADER_FORMAT: | 
 |       return "HTTP2_INVALID_HEADER_FORMAT"; | 
 |     case HTTP2_INVALID_REQUEST_PATH: | 
 |       return "HTTP2_INVALID_REQUEST_PATH"; | 
 |     case INVALID_TRAILER_FORMAT: | 
 |       return "INVALID_TRAILER_FORMAT"; | 
 |     case TRAILER_TOO_LONG: | 
 |       return "TRAILER_TOO_LONG"; | 
 |     case TRAILER_MISSING_COLON: | 
 |       return "TRAILER_MISSING_COLON"; | 
 |     case OBS_FOLD_IN_TRAILERS: | 
 |       return "OBS_FOLD_IN_TRAILERS"; | 
 |     case INTERNAL_LOGIC_ERROR: | 
 |       return "INTERNAL_LOGIC_ERROR"; | 
 |     case INVALID_HEADER_CHARACTER: | 
 |       return "INVALID_HEADER_CHARACTER"; | 
 |     case INVALID_HEADER_NAME_CHARACTER: | 
 |       return "INVALID_HEADER_NAME_CHARACTER"; | 
 |     case INVALID_TRAILER_NAME_CHARACTER: | 
 |       return "INVALID_TRAILER_NAME_CHARACTER"; | 
 |     case UNSUPPORTED_100_CONTINUE: | 
 |       return "UNSUPPORTED_100_CONTINUE"; | 
 |     case NUM_ERROR_CODES: | 
 |       return "UNKNOWN_ERROR"; | 
 |   } | 
 |   return "UNKNOWN_ERROR"; | 
 | } | 
 |  | 
 | }  // namespace quiche |