整理 http/http2 公共的 header 字段,存储到 tfe_http.cpp 文件中

This commit is contained in:
luwenpeng
2019-09-16 11:37:18 +08:00
parent 4b0235d199
commit de16d2da87
6 changed files with 65 additions and 84 deletions

View File

@@ -15,46 +15,10 @@
#define __PARSER_TO_HF_PRIVATE(_parser) ((struct http_half_private *)(_parser->data))
static const char * __str_std_header_field_map[] =
{
[TFE_HTTP_UNKNOWN_FIELD] = NULL,
[TFE_HTTP_HOST] = "Host",
[TFE_HTTP_REFERER] = "Referer",
[TFE_HTTP_USER_AGENT] = "User-Agent",
[TFE_HTTP_COOKIE] = "Cookie",
[TFE_HTTP_SET_COOKIE] = "Set-Cookie",
[TFE_HTTP_PROXY_AUTHORIZATION] = "Proxy-Authorization",
[TFE_HTTP_AUTHORIZATION] = "Authorization",
[TFE_HTTP_LOCATION] = "Location",
[TFE_HTTP_SERVER] = "Server",
[TFE_HTTP_ETAG] = "Etag",
[TFE_HTTP_DATE] = "Date",
[TFE_HTTP_TRAILER] = "Trailer",
[TFE_HTTP_TRANSFER_ENCODING] = "Transfer-Encoding",
[TFE_HTTP_VIA] = "Via",
[TFE_HTTP_PRAGMA] = "Pragma",
[TFE_HTTP_CONNECTION] = "Connection",
[TFE_HTTP_CONT_ENCODING] = "Content-Encoding",
[TFE_HTTP_CONT_LANGUAGE] = "Content-Language",
[TFE_HTTP_CONT_LOCATION] = "Content-Location",
[TFE_HTTP_CONT_RANGE] = "Content-Range",
[TFE_HTTP_CONT_LENGTH] = "Content-Length",
[TFE_HTTP_CONT_TYPE] = "Content-Type",
[TFE_HTTP_CONT_DISPOSITION] = "Content-Disposition",
[TFE_HTTP_EXPIRES] = "Expires",
[TFE_HTTP_ACCEPT_ENCODING] = "Accept-Encoding",
[TFE_HTTP_CACHE_CONTROL] = "Cache-Control",
[TFE_HTTP_IF_MATCH] = "If-Match",
[TFE_HTTP_IF_NONE_MATCH] = "If-None-Match",
[TFE_HTTP_IF_MODIFIED_SINCE] = "If-Modified-Since",
[TFE_HTTP_IF_UNMODIFIED_SINCE] = "If-Unmodified-Since",
[TFE_HTTP_LAST_MODIFIED] = "Last-Modified"
};
static enum tfe_http_std_field __str_header_field_to_std_field_id(const char * str_field, size_t len)
{
/* TODO: store the header text in hash table or rbtree, or use AC multistring search algo. */
for (unsigned int i = 0; i < TFE_DIM(__str_std_header_field_map); i++)
for (unsigned int i = 0; i < __str_std_header_field_map_size; i++)
{
const char * __std_header_field = __str_std_header_field_map[i];
if (__std_header_field == NULL)