doubao_chat/include_lib/net/uC-HTTPc/http_dict.h

522 lines
31 KiB
C

/*
*********************************************************************************************************
* uC/HTTP
* Hypertext Transfer Protocol
*
* Copyright 2004-2020 Silicon Laboratories Inc. www.silabs.com
*
* SPDX-License-Identifier: APACHE-2.0
*
* This software is subject to an open source license and is distributed by
* Silicon Laboratories Inc. pursuant to the terms of the Apache License,
* Version 2.0 available at www.apache.org/licenses/LICENSE-2.0.
*
*********************************************************************************************************
*/
/*
*********************************************************************************************************
*
* HTTP DICTIONARY
*
* Filename : http_dict.h
* Version : V3.01.00
*********************************************************************************************************
*/
/*
*********************************************************************************************************
*********************************************************************************************************
* MODULE
*
* Note(s) : (1) This main network protocol suite header file is protected from multiple pre-processor
* inclusion through use of the HTTP module present pre-processor macro definition.
*********************************************************************************************************
*********************************************************************************************************
*/
#ifndef HTTP_DICT_MODULE_PRESENT /* See Note #1. */
#define HTTP_DICT_MODULE_PRESENT
/*
*********************************************************************************************************
*********************************************************************************************************
* HTTP INCLUDE FILES
*********************************************************************************************************
*********************************************************************************************************
*/
#include "http.h"
/*
*********************************************************************************************************
*********************************************************************************************************
* DEFINES
*********************************************************************************************************
*********************************************************************************************************
*/
/*
*********************************************************************************************************
* HTTP METHOD
*********************************************************************************************************
*/
#define HTTP_STR_METHOD_GET "GET"
#define HTTP_STR_METHOD_POST "POST"
#define HTTP_STR_METHOD_HEAD "HEAD"
#define HTTP_STR_METHOD_PUT "PUT"
#define HTTP_STR_METHOD_DELETE "DELETE"
#define HTTP_STR_METHOD_TRACE "TRACE"
#define HTTP_STR_METHOD_CONNECT "CONNECT"
/*
*********************************************************************************************************
* HTTP VERSION
*********************************************************************************************************
*/
#define HTTP_STR_PROTOCOL_VER_0_9 "HTTP/0.9"
#define HTTP_STR_PROTOCOL_VER_1_0 "HTTP/1.0"
#define HTTP_STR_PROTOCOL_VER_1_1 "HTTP/1.1"
/*
*********************************************************************************************************
* HTTP STATUS CODE
*********************************************************************************************************
*/
#define HTTP_STR_STATUS_CODE_CONTINUE "100"
#define HTTP_STR_STATUS_CODE_SWITCHING_PROTOCOLS "101"
#define HTTP_STR_STATUS_CODE_PROCESSING "102"
#define HTTP_STR_STATUS_CODE_EARLY_HINTS "103"
#define HTTP_STR_STATUS_CODE_OK "200"
#define HTTP_STR_STATUS_CODE_CREATED "201"
#define HTTP_STR_STATUS_CODE_ACCEPTED "202"
#define HTTP_STR_STATUS_CODE_NON_AUTHORITATIVE_INFORMATION "203"
#define HTTP_STR_STATUS_CODE_NO_CONTENT "204"
#define HTTP_STR_STATUS_CODE_RESET_CONTENT "205"
#define HTTP_STR_STATUS_CODE_PARTIAL_CONTENT "206"
#define HTTP_STR_STATUS_CODE_MULTI_STATUS "207"
#define HTTP_STR_STATUS_CODE_ALREADY_REPORTED "208"
#define HTTP_STR_STATUS_CODE_IM_USED "226"
#define HTTP_STR_STATUS_CODE_MULTIPLE_CHOICES "300"
#define HTTP_STR_STATUS_CODE_MOVED_PERMANENTLY "301"
#define HTTP_STR_STATUS_CODE_FOUND "302"
#define HTTP_STR_STATUS_CODE_SEE_OTHER "303"
#define HTTP_STR_STATUS_CODE_NOT_MODIFIED "304"
#define HTTP_STR_STATUS_CODE_USE_PROXY "305"
#define HTTP_STR_STATUS_CODE_SWITCH_PROXY "306"
#define HTTP_STR_STATUS_CODE_TEMPORARY_REDIRECT "307"
#define HTTP_STR_STATUS_CODE_PERMANENT_REDIRECT "308"
#define HTTP_STR_STATUS_CODE_BAD_REQUEST "400"
#define HTTP_STR_STATUS_CODE_UNAUTHORIZED "401"
#define HTTP_STR_STATUS_CODE_FORBIDDEN "403"
#define HTTP_STR_STATUS_CODE_NOT_FOUND "404"
#define HTTP_STR_STATUS_CODE_METHOD_NOT_ALLOWED "405"
#define HTTP_STR_STATUS_CODE_NOT_ACCEPTABLE "406"
#define HTTP_STR_STATUS_CODE_PROXY_AUTHENTICATION_REQUIRED "407"
#define HTTP_STR_STATUS_CODE_REQUEST_TIMEOUT "408"
#define HTTP_STR_STATUS_CODE_CONFLICT "409"
#define HTTP_STR_STATUS_CODE_GONE "410"
#define HTTP_STR_STATUS_CODE_LENGTH_REQUIRED "411"
#define HTTP_STR_STATUS_CODE_PRECONDITION_FAILED "412"
#define HTTP_STR_STATUS_CODE_REQUEST_ENTITY_TOO_LARGE "413"
#define HTTP_STR_STATUS_CODE_REQUEST_URI_TOO_LONG "414"
#define HTTP_STR_STATUS_CODE_UNSUPPORTED_MEDIA_TYPE "415"
#define HTTP_STR_STATUS_CODE_REQUESTED_RANGE_NOT_SATISFIABLE "416"
#define HTTP_STR_STATUS_CODE_EXPECTATION_FAILED "417"
#define HTTP_STR_STATUS_CODE_MISDIRECTED_REQUEST "421"
#define HTTP_STR_STATUS_CODE_UNPROCESSABLE_ENTITY "422"
#define HTTP_STR_STATUS_CODE_LOCKED "423"
#define HTTP_STR_STATUS_CODE_FAILED_DEPENDENCY "424"
#define HTTP_STR_STATUS_CODE_UPGRADE_REQUIRED "426"
#define HTTP_STR_STATUS_CODE_PRECONDITION_REQUIRED "428"
#define HTTP_STR_STATUS_CODE_TOO_MANY_REQUESTS "429"
#define HTTP_STR_STATUS_CODE_REQUEST_HEADER_FIELDS_TOO_LARGE "431"
#define HTTP_STR_STATUS_CODE_UNAVAILABLE_FOR_LEGAL_REASONS "451"
#define HTTP_STR_STATUS_CODE_INTERNAL_SERVER_ERR "500"
#define HTTP_STR_STATUS_CODE_NOT_IMPLEMENTED "501"
#define HTTP_STR_STATUS_CODE_BAD_GATEWAY "502"
#define HTTP_STR_STATUS_CODE_SERVICE_UNAVAILABLE "503"
#define HTTP_STR_STATUS_CODE_GATEWAY_TIMEOUT "504"
#define HTTP_STR_STATUS_CODE_HTTP_VERSION_NOT_SUPPORTED "505"
#define HTTP_STR_STATUS_CODE_VARIANT_ALSO_NEGOTIATES "506"
#define HTTP_STR_STATUS_CODE_INSUFFICIENT_STORAGE "507"
#define HTTP_STR_STATUS_CODE_LOOP_DETECTED "508"
#define HTTP_STR_STATUS_CODE_NOT_EXTENDED "510"
#define HTTP_STR_STATUS_CODE_NETWORK_AUTHENTICATION_REQUIRED "511"
/*
*********************************************************************************************************
* HTTP REASON PHRASE
*********************************************************************************************************
*/
#define HTTP_STR_REASON_PHRASE_CONTINUE "Continue"
#define HTTP_STR_REASON_PHRASE_SWITCHING_PROTOCOLS "Switching Protocols"
#define HTTP_STR_REASON_PHRASE_PROCESSING "Processing"
#define HTTP_STR_REASON_PHRASE_EARLY_HINTS "Early Hints"
#define HTTP_STR_REASON_PHRASE_OK "OK"
#define HTTP_STR_REASON_PHRASE_CREATED "Created"
#define HTTP_STR_REASON_PHRASE_ACCEPTED "Accepted"
#define HTTP_STR_REASON_PHRASE_NON_AUTHORITATIVE_INFORMATION "No Authoritative Information"
#define HTTP_STR_REASON_PHRASE_NO_CONTENT "No Content"
#define HTTP_STR_REASON_PHRASE_RESET_CONTENT "Reset Content"
#define HTTP_STR_REASON_PHRASE_PARTIAL_CONTENT "Partial Content"
#define HTTP_STR_REASON_PHRASE_MULTI_STATUS "Multi Status"
#define HTTP_STR_REASON_PHRASE_ALREADY_REPORTED "Already Reported"
#define HTTP_STR_REASON_PHRASE_IM_USED "IM Used"
#define HTTP_STR_REASON_PHRASE_MULTIPLE_CHOICES "Multiple Choices"
#define HTTP_STR_REASON_PHRASE_MOVED_PERMANENTLY "Moved Permanently"
#define HTTP_STR_REASON_PHRASE_FOUND "Found"
#define HTTP_STR_REASON_PHRASE_SEE_OTHER "See Other"
#define HTTP_STR_REASON_PHRASE_NOT_MODIFIED "Not Modified"
#define HTTP_STR_REASON_PHRASE_USE_PROXY "Use Proxy"
#define HTTP_STR_REASON_PHRASE_SWITCH_PROXY "Switch Proxy"
#define HTTP_STR_REASON_PHRASE_TEMPORARY_REDIRECT "Temporary Redirect"
#define HTTP_STR_REASON_PHRASE_PERMANENT_REDIRECT "Permanent Redirect"
#define HTTP_STR_REASON_PHRASE_BAD_REQUEST "Bad Request"
#define HTTP_STR_REASON_PHRASE_UNAUTHORIZED "Unauthorized"
#define HTTP_STR_REASON_PHRASE_FORBIDDEN "Forbidden"
#define HTTP_STR_REASON_PHRASE_NOT_FOUND "Not Found"
#define HTTP_STR_REASON_PHRASE_METHOD_NOT_ALLOWED "Method Not Allowed"
#define HTTP_STR_REASON_PHRASE_NOT_ACCEPTABLE "Not Acceptable"
#define HTTP_STR_REASON_PHRASE_PROXY_AUTHENTICATION_REQUIRED "Proxy Authentication Required"
#define HTTP_STR_REASON_PHRASE_REQUEST_TIMEOUT "Request Timeout"
#define HTTP_STR_REASON_PHRASE_CONFLICT "Conflict"
#define HTTP_STR_REASON_PHRASE_GONE "Gone"
#define HTTP_STR_REASON_PHRASE_LENGTH_REQUIRED "Length Required"
#define HTTP_STR_REASON_PHRASE_PRECONDITION_FAILED "Precondition Failed"
#define HTTP_STR_REASON_PHRASE_REQUEST_ENTITY_TOO_LARGE "Request Entity Too Large"
#define HTTP_STR_REASON_PHRASE_REQUEST_URI_TOO_LONG "Request URI Too Long"
#define HTTP_STR_REASON_PHRASE_UNSUPPORTED_MEDIA_TYPE "Unsupported Media Type"
#define HTTP_STR_REASON_PHRASE_REQUESTED_RANGE_NOT_SATISFIABLE "Requested Range Not Satisfiable"
#define HTTP_STR_REASON_PHRASE_EXPECTATION_FAILED "Expectation Failed"
#define HTTP_STR_REASON_PHRASE_MISDIRECTED_REQUEST "Misdirected Request"
#define HTTP_STR_REASON_PHRASE_UNPROCESSABLE_ENTITY "Unprocessable Entity"
#define HTTP_STR_REASON_PHRASE_LOCKED "Locked"
#define HTTP_STR_REASON_PHRASE_FAILED_DEPENDENCY "Failed Dependency"
#define HTTP_STR_REASON_PHRASE_UPGRADE_REQUIRED "Upgrade Required"
#define HTTP_STR_REASON_PHRASE_PRECONDITION_REQUIRED "Precondition Required"
#define HTTP_STR_REASON_PHRASE_TOO_MANY_REQUESTS "Too Many Requetsts"
#define HTTP_STR_REASON_PHRASE_REQUEST_HEADER_FIELDS_TOO_LARGE "Request Header Fields Too Large"
#define HTTP_STR_REASON_PHRASE_UNAVAILABLE_FOR_LEGAL_REASONS "Unavailable For Legal Reasons"
#define HTTP_STR_REASON_PHRASE_INTERNAL_SERVER_ERR "Internal Server Error"
#define HTTP_STR_REASON_PHRASE_NOT_IMPLEMENTED "Not Implemented"
#define HTTP_STR_REASON_PHRASE_BAD_GATEWAY "Bad Gateway"
#define HTTP_STR_REASON_PHRASE_SERVICE_UNAVAILABLE "Service Unavailable"
#define HTTP_STR_REASON_PHRASE_GATEWAY_TIMEOUT "Gateway Timeout"
#define HTTP_STR_REASON_PHRASE_HTTP_VERSION_NOT_SUPPORTED "HTTP Version Not Supported"
#define HTTP_STR_REASON_PHRASE_VARIANT_ALSO_NEGOTIATES "Variant Also Negotiates"
#define HTTP_STR_REASON_PHRASE_INSUFFICIENT_STORAGE "Insufficient Storage"
#define HTTP_STR_REASON_PHRASE_LOOP_DETECTED "Loop Detected"
#define HTTP_STR_REASON_PHRASE_NOT_EXTENDED "Not Extended"
#define HTTP_STR_REASON_PHRASE_NETWORK_AUTHENTICATION_REQUIRED "Network Authentication Required"
/*
*********************************************************************************************************
* HTTP FILE EXTENSION
*********************************************************************************************************
*/
#define HTTP_STR_FILE_EXT_HTM "htm"
#define HTTP_STR_FILE_EXT_HTML "html"
#define HTTP_STR_FILE_EXT_GIF "gif"
#define HTTP_STR_FILE_EXT_JPEG "jpeg"
#define HTTP_STR_FILE_EXT_JPG "jpg"
#define HTTP_STR_FILE_EXT_PNG "png"
#define HTTP_STR_FILE_EXT_JS "js"
#define HTTP_STR_FILE_EXT_TXT "txt"
#define HTTP_STR_FILE_EXT_CSS "css"
#define HTTP_STR_FILE_EXT_PDF "pdf"
#define HTTP_STR_FILE_EXT_ZIP "zip"
#define HTTP_STR_FILE_EXT_ASTERISK "*"
#define HTTP_STR_FILE_EXT_CLASS "class"
/*
*********************************************************************************************************
* HTTP MIME CONTENT TYPE
*********************************************************************************************************
*/
#define HTTP_STR_CONTENT_TYPE_HTML "text/html"
#define HTTP_STR_CONTENT_TYPE_GIF "image/gif"
#define HTTP_STR_CONTENT_TYPE_JPEG "image/jpeg"
#define HTTP_STR_CONTENT_TYPE_PNG "image/png"
#define HTTP_STR_CONTENT_TYPE_JS "text/javascript"
#define HTTP_STR_CONTENT_TYPE_PLAIN "text/plain"
#define HTTP_STR_CONTENT_TYPE_CSS "text/css"
#define HTTP_STR_CONTENT_TYPE_OCTET_STREAM "application/octet-stream"
#define HTTP_STR_CONTENT_TYPE_PDF "application/pdf"
#define HTTP_STR_CONTENT_TYPE_ZIP "application/zip"
#define HTTP_STR_CONTENT_TYPE_JSON "application/json"
#define HTTP_STR_CONTENT_TYPE_APP_FORM "application/x-www-form-urlencoded"
#define HTTP_STR_CONTENT_TYPE_MULTIPART_FORM "multipart/form-data"
/*
*********************************************************************************************************
* MULTIPART BOUNDARY
*********************************************************************************************************
*/
#define HTTP_STR_MULTIPART_BOUNDARY "boundary"
#define HTTP_STR_MULTIPART_BOUNDARY_LEN (sizeof(HTTP_STR_MULTIPART_BOUNDARY) - 1)
/*
*********************************************************************************************************
* HTTP HEADER FIELD
*********************************************************************************************************
*/
#define HTTP_STR_HDR_FIELD_CONN "Connection"
#define HTTP_STR_HDR_FIELD_HOST "Host"
#define HTTP_STR_HDR_FIELD_LOCATION "Location"
#define HTTP_STR_HDR_FIELD_CONTENT_TYPE "Content-Type"
#define HTTP_STR_HDR_FIELD_CONTENT_LEN "Content-Length"
#define HTTP_STR_HDR_FIELD_CONTENT_DISPOSITION "Content-Disposition"
#define HTTP_STR_HDR_FIELD_TRANSFER_ENCODING "Transfer-Encoding"
#define HTTP_STR_HDR_FIELD_ACCEPT "Accept"
#define HTTP_STR_HDR_FIELD_ACCEPT_CHARSET "Accept-Charset"
#define HTTP_STR_HDR_FIELD_ACCEPT_ENCODING "Accept-Encoding"
#define HTTP_STR_HDR_FIELD_ACCEPT_LANGUAGE "Accept-Language"
#define HTTP_STR_HDR_FIELD_ACCEPT_RANGES "Accept-Ranges"
#define HTTP_STR_HDR_FIELD_AGE "Age"
#define HTTP_STR_HDR_FIELD_ALLOW "Allow"
#define HTTP_STR_HDR_FIELD_AUTHORIZATION "Authorization"
#define HTTP_STR_HDR_FIELD_CONTENT_ENCODING "Content-Encoding"
#define HTTP_STR_HDR_FIELD_CONTENT_LANGUAGE "Content-Language"
#define HTTP_STR_HDR_FIELD_CONTENT_LOCATION "Content-Location"
#define HTTP_STR_HDR_FIELD_CONTENT_MD5 "Content-MD5"
#define HTTP_STR_HDR_FIELD_CONTENT_RANGE "Content-Range"
#define HTTP_STR_HDR_FIELD_COOKIE "Cookie"
#define HTTP_STR_HDR_FIELD_COOKIE2 "Cookie2"
#define HTTP_STR_HDR_FIELD_DATE "Date"
#define HTTP_STR_HDR_FIELD_ETAG "ETag"
#define HTTP_STR_HDR_FIELD_EXPECT "Expect"
#define HTTP_STR_HDR_FIELD_EXPIRES "Expires"
#define HTTP_STR_HDR_FIELD_FROM "From"
#define HTTP_STR_HDR_FIELD_IF_MODIFIED_SINCE "If-Modified-Since"
#define HTTP_STR_HDR_FIELD_IF_MATCH "If-Match"
#define HTTP_STR_HDR_FIELD_IF_NONE_MATCH "If-None-Match"
#define HTTP_STR_HDR_FIELD_IF_RANGE "If-Range"
#define HTTP_STR_HDR_FIELD_IF_UNMODIFIED_SINCE "If-Unmodified-Since"
#define HTTP_STR_HDR_FIELD_LAST_MODIFIED "Last-Modified"
#define HTTP_STR_HDR_FIELD_RANGE "Range"
#define HTTP_STR_HDR_FIELD_REFERER "Referer"
#define HTTP_STR_HDR_FIELD_RETRY_AFTER "Retry-After"
#define HTTP_STR_HDR_FIELD_SERVER "Server"
#define HTTP_STR_HDR_FIELD_SET_COOKIE "Set-Cookie"
#define HTTP_STR_HDR_FIELD_SET_COOKIE2 "Set-Cookie2"
#define HTTP_STR_HDR_FIELD_TE "TE"
#define HTTP_STR_HDR_FIELD_TRAILER "Trailer"
#define HTTP_STR_HDR_FIELD_UPGRADE "Upgrade"
#define HTTP_STR_HDR_FIELD_USER_AGENT "User-Agent"
#define HTTP_STR_HDR_FIELD_VARY "Vary"
#define HTTP_STR_HDR_FIELD_VIA "Via"
#define HTTP_STR_HDR_FIELD_WARNING "Warning"
#define HTTP_STR_HDR_FIELD_WWW_AUTHENTICATE "WWW-Authenticate"
#define HTTP_STR_HDR_FIELD_WEBSOCKET_KEY "Sec-WebSocket-Key"
#define HTTP_STR_HDR_FIELD_WEBSOCKET_ACCEPT "Sec-WebSocket-Accept"
#define HTTP_STR_HDR_FIELD_WEBSOCKET_VERSION "Sec-WebSocket-Version"
#define HTTP_STR_HDR_FIELD_WEBSOCKET_PROTOCOL "Sec-WebSocket-Protocol"
#define HTTP_STR_HDR_FIELD_WEBSOCKET_EXTENSIONS "Sec-WebSocket-Extensions"
/* Len of Hdr Field string names in Request messages */
#define HTTP_STR_HDR_FIELD_CONN_LEN (sizeof(HTTP_STR_HDR_FIELD_CONN) - 1)
#define HTTP_STR_HDR_FIELD_HOST_LEN (sizeof(HTTP_STR_HDR_FIELD_HOST) - 1)
#define HTTP_STR_HDR_FIELD_LOCATION_LEN (sizeof(HTTP_STR_HDR_FIELD_LOCATION) - 1)
#define HTTP_STR_HDR_FIELD_CONTENT_TYPE_LEN (sizeof(HTTP_STR_HDR_FIELD_CONTENT_TYPE) - 1)
#define HTTP_STR_HDR_FIELD_CONTENT_LEN_LEN (sizeof(HTTP_STR_HDR_FIELD_CONTENT_LEN) - 1)
#define HTTP_STR_HDR_FIELD_CONTENT_DISPOSITION_LEN (sizeof(HTTP_STR_HDR_FIELD_CONTENT_DISPOSITION) - 1)
#define HTTP_STR_HDR_FIELD_TRANSFER_ENCODING_LEN (sizeof(HTTP_STR_HDR_FIELD_TRANSFER_ENCODING) - 1)
#define HTTP_STR_HDR_FIELD_ACCEPT_LEN (sizeof(HTTP_STR_HDR_FIELD_ACCEPT) - 1)
#define HTTP_STR_HDR_FIELD_ACCEPT_CHARSET_LEN (sizeof(HTTP_STR_HDR_FIELD_ACCEPT_CHARSET) - 1)
#define HTTP_STR_HDR_FIELD_ACCEPT_ENCODING_LEN (sizeof(HTTP_STR_HDR_FIELD_ACCEPT_ENCODING) - 1)
#define HTTP_STR_HDR_FIELD_ACCEPT_LANGUAGE_LEN (sizeof(HTTP_STR_HDR_FIELD_ACCEPT_LANGUAGE) - 1)
#define HTTP_STR_HDR_FIELD_AUTHORIZATION_LEN (sizeof(HTTP_STR_HDR_FIELD_AUTHORIZATION) - 1)
#define HTTP_STR_HDR_FIELD_CLIENT_IP_LEN (sizeof(HTTP_STR_HDR_FIELD_CLIENT_IP) - 1)
#define HTTP_STR_HDR_FIELD_COOKIE_LEN (sizeof(HTTP_STR_HDR_FIELD_COOKIE) - 1)
#define HTTP_STR_HDR_FIELD_COOKIE2_LEN (sizeof(HTTP_STR_HDR_FIELD_COOKIE2) - 1)
#define HTTP_STR_HDR_FIELD_DATE_LEN (sizeof(HTTP_STR_HDR_FIELD_DATE) - 1)
#define HTTP_STR_HDR_FIELD_EXPECT_LEN (sizeof(HTTP_STR_HDR_FIELD_EXPECT) - 1)
#define HTTP_STR_HDR_FIELD_FROM_LEN (sizeof(HTTP_STR_HDR_FIELD_FROM) - 1)
#define HTTP_STR_HDR_FIELD_IF_MODIFIED_SINCE_LEN (sizeof(HTTP_STR_HDR_FIELD_IF_MODIFIED_SINCE) - 1)
#define HTTP_STR_HDR_FIELD_IF_MATCH_LEN (sizeof(HTTP_STR_HDR_FIELD_IF_MATCH) - 1)
#define HTTP_STR_HDR_FIELD_IF_NONE_MATCH_LEN (sizeof(HTTP_STR_HDR_FIELD_IF_NONE_MATCH) - 1)
#define HTTP_STR_HDR_FIELD_IF_RANGE_LEN (sizeof(HTTP_STR_HDR_FIELD_IF_RANGE) - 1)
#define HTTP_STR_HDR_FIELD_IF_UNMODIFIED_SINCE_LEN (sizeof(HTTP_STR_HDR_FIELD_IF_UNMODIFIED_SINCE) - 1)
#define HTTP_STR_HDR_FIELD_RANGE_LEN (sizeof(HTTP_STR_HDR_FIELD_RANGE) - 1)
#define HTTP_STR_HDR_FIELD_REFERER_LEN (sizeof(HTTP_STR_HDR_FIELD_REFERER) - 1)
#define HTTP_STR_HDR_FIELD_TE_LEN (sizeof(HTTP_STR_HDR_FIELD_TE) - 1)
#define HTTP_STR_HDR_FIELD_UPGRADE_LEN (sizeof(HTTP_STR_HDR_FIELD_UPGRADE) - 1)
#define HTTP_STR_HDR_FIELD_USER_AGENT_LEN (sizeof(HTTP_STR_HDR_FIELD_USER_AGENT) - 1)
#define HTTP_STR_HDR_FIELD_VIA_LEN (sizeof(HTTP_STR_HDR_FIELD_VIA) - 1)
#define HTTP_STR_HDR_FIELD_WARNING_LEN (sizeof(HTTP_STR_HDR_FIELD_WARNING) - 1)
#define HTTP_STR_HDR_FIELD_WWW_AUTHENTICATE_LEN (sizeof(HTTP_STR_HDR_FIELD_WWW_AUTHENTICATE) - 1)
#define HTTP_STR_HDR_FIELD_WEBSOCKET_KEY_LEN (sizeof(HTTP_STR_HDR_FIELD_WEBSOCKET_KEY) - 1)
#define HTTP_STR_HDR_FIELD_WEBSOCKET_ACCEPT_LEN (sizeof(HTTP_STR_HDR_FIELD_WEBSOCKET_ACCEPT) - 1)
#define HTTP_STR_HDR_FIELD_WEBSOCKET_VERSION_LEN (sizeof(HTTP_STR_HDR_FIELD_WEBSOCKET_VERSION) - 1)
#define HTTP_STR_HDR_FIELD_WEBSOCKET_PROTOCOL_LEN (sizeof(HTTP_STR_HDR_FIELD_WEBSOCKET_PROTOCOL) - 1)
#define HTTP_STR_HDR_FIELD_WEBSOCKET_EXTENSIONS_LEN (sizeof(HTTP_STR_HDR_FIELD_WEBSOCKET_EXTENSIONS)- 1)
/*
*********************************************************************************************************
* HTTP CONTENT DISPOSITION VALUE
*********************************************************************************************************
*/
#define HTTP_STR_CONTENT_DISPOSITION_FORM_DATA "form-data"
#define HTTP_STR_CONTENT_DISPOSITION_FORM_DATA_LEN (sizeof(HTTP_STR_CONTENT_DISPOSITION_FORM_DATA) - 1)
/*
*********************************************************************************************************
* HTTP CONNECTION VALUE
*********************************************************************************************************
*/
#define HTTP_STR_HDR_FIELD_CONN_CLOSE "close"
#define HTTP_STR_HDR_FIELD_CONN_KEEP_ALIVE "keep-alive"
#define HTTP_STR_HDR_FIELD_CONN_UPGRADE "Upgrade"
/*
*********************************************************************************************************
* HTTP TRANSFER ENCODING VALUE
*********************************************************************************************************
*/
#define HTTP_STR_HDR_FIELD_CHUNKED "chunked"
#define HTTP_STR_BUF_TOP_SPACE_REQ_MIN 6
#define HTTP_STR_BUF_END_SPACE_REQ_MIN 2
/*
*********************************************************************************************************
* HTTP FORM MULTIPART CONTENT FIELD
*********************************************************************************************************
*/
#define HTTP_STR_MULTIPART_FIELD_NAME "name"
#define HTTP_STR_MULTIPART_FIELD_FILE_NAME "filename"
#define HTTP_STR_MULTIPART_FIELD_NAME_LEN (sizeof(HTTP_STR_MULTIPART_FIELD_NAME) - 1)
#define HTTP_STR_MULTIPART_FIELD_FILE_NAME_LEN (sizeof(HTTP_STR_MULTIPART_FIELD_FILE_NAME) - 1)
/*
*********************************************************************************************************
* HTTP UPGRADE VALUE
*********************************************************************************************************
*/
#define HTTP_STR_HDR_FIELD_UPGRADE_WEBSOCKET "websocket"
/*
*********************************************************************************************************
*********************************************************************************************************
* DATA TYPES
*********************************************************************************************************
*********************************************************************************************************
*/
typedef CPU_INT32U HTTP_DICT_KEY;
#define HTTP_DICT_KEY_INVALID DEF_INT_32U_MAX_VAL
typedef struct HTTP_dict {
const HTTP_DICT_KEY Key;
const CPU_CHAR *StrPtr;
const CPU_INT32U StrLen;
} HTTP_DICT;
/*
*********************************************************************************************************
*********************************************************************************************************
* GLOBAL VARIABLES
*********************************************************************************************************
*********************************************************************************************************
*/
extern const HTTP_DICT HTTP_Dict_ReqMethod[];
extern const HTTP_DICT HTTP_Dict_ProtocolVer[];
extern const HTTP_DICT HTTP_Dict_StatusCode[];
extern const HTTP_DICT HTTP_Dict_ReasonPhrase[];
extern const HTTP_DICT HTTP_Dict_FileExt[];
extern const HTTP_DICT HTTP_Dict_ContentType[];
extern const HTTP_DICT HTTP_Dict_HdrField[];
extern const HTTP_DICT HTTP_DictContentDispositionVal[];
extern const HTTP_DICT HTTP_Dict_HdrFieldConnVal[];
extern const HTTP_DICT HTTP_Dict_HdrFieldTransferTypeVal[];
extern const HTTP_DICT HTTP_Dict_MultipartField[];
extern const HTTP_DICT HTTP_Dict_HdrFieldUpgradeVal[];
extern CPU_SIZE_T HTTP_Dict_ReqMethodSize;
extern CPU_SIZE_T HTTP_Dict_ProtocolVerSize;
extern CPU_SIZE_T HTTP_Dict_StatusCodeSize;
extern CPU_SIZE_T HTTP_Dict_ReasonPhraseSize;
extern CPU_SIZE_T HTTP_Dict_FileExtSize;
extern CPU_SIZE_T HTTP_Dict_ContentTypeSize;
extern CPU_SIZE_T HTTP_Dict_HdrFieldSize;
extern CPU_SIZE_T HTTP_Dict_ContentDispositionValSize;
extern CPU_SIZE_T HTTP_Dict_HdrFieldConnValSize;
extern CPU_SIZE_T HTTP_Dict_HdrFieldTransferTypeValSize;
extern CPU_SIZE_T HTTP_Dict_MultipartFieldSize;
extern CPU_SIZE_T HTTP_Dict_HdrFieldUpgradeValSize;
/*
*********************************************************************************************************
*********************************************************************************************************
* FUNCTION PROTOTYPES
*********************************************************************************************************
*********************************************************************************************************
*/
CPU_INT32U HTTP_Dict_KeyGet(const HTTP_DICT *p_dict_tbl,
CPU_INT32U dict_size,
const CPU_CHAR *p_str_cmp,
CPU_BOOLEAN case_sensitive,
CPU_INT32U str_len);
HTTP_DICT *HTTP_Dict_EntryGet(const HTTP_DICT *p_dict_tbl,
CPU_INT32U dict_size,
CPU_INT32U key);
CPU_CHAR *HTTP_Dict_ValCopy(const HTTP_DICT *p_dict_tbl,
CPU_INT32U dict_size,
CPU_INT32U key,
CPU_CHAR *p_buf,
CPU_SIZE_T buf_len);
CPU_CHAR *HTTP_Dict_StrKeySrch(const HTTP_DICT *p_dict_tbl,
CPU_INT32U dict_size,
CPU_INT32U key,
const CPU_CHAR *p_str,
CPU_SIZE_T str_len);
/*
*********************************************************************************************************
*********************************************************************************************************
* MODULE END
*********************************************************************************************************
*********************************************************************************************************
*/
#endif /* HTTP_DICT_MODULE_PRESENT */