1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
|
#ifndef AWS_HTTP_IMPL_H
#define AWS_HTTP_IMPL_H
/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#include <aws/http/http.h>
/**
* Methods that affect internal processing.
* This is NOT a definitive list of methods.
*/
enum aws_http_method {
AWS_HTTP_METHOD_UNKNOWN, /* Unrecognized value. */
AWS_HTTP_METHOD_GET,
AWS_HTTP_METHOD_HEAD,
AWS_HTTP_METHOD_CONNECT,
AWS_HTTP_METHOD_COUNT, /* Number of enums */
};
/**
* Headers that affect internal processing.
* This is NOT a definitive list of headers.
*/
enum aws_http_header_name {
AWS_HTTP_HEADER_UNKNOWN, /* Unrecognized value */
/* Request pseudo-headers */
AWS_HTTP_HEADER_METHOD,
AWS_HTTP_HEADER_SCHEME,
AWS_HTTP_HEADER_AUTHORITY,
AWS_HTTP_HEADER_PATH,
/* Response pseudo-headers */
AWS_HTTP_HEADER_STATUS,
/* Regular headers */
AWS_HTTP_HEADER_CONNECTION,
AWS_HTTP_HEADER_CONTENT_LENGTH,
AWS_HTTP_HEADER_EXPECT,
AWS_HTTP_HEADER_TRANSFER_ENCODING,
AWS_HTTP_HEADER_COOKIE,
AWS_HTTP_HEADER_SET_COOKIE,
AWS_HTTP_HEADER_HOST,
AWS_HTTP_HEADER_CACHE_CONTROL,
AWS_HTTP_HEADER_MAX_FORWARDS,
AWS_HTTP_HEADER_PRAGMA,
AWS_HTTP_HEADER_RANGE,
AWS_HTTP_HEADER_TE,
AWS_HTTP_HEADER_CONTENT_ENCODING,
AWS_HTTP_HEADER_CONTENT_TYPE,
AWS_HTTP_HEADER_CONTENT_RANGE,
AWS_HTTP_HEADER_TRAILER,
AWS_HTTP_HEADER_WWW_AUTHENTICATE,
AWS_HTTP_HEADER_AUTHORIZATION,
AWS_HTTP_HEADER_PROXY_AUTHENTICATE,
AWS_HTTP_HEADER_PROXY_AUTHORIZATION,
AWS_HTTP_HEADER_AGE,
AWS_HTTP_HEADER_EXPIRES,
AWS_HTTP_HEADER_DATE,
AWS_HTTP_HEADER_LOCATION,
AWS_HTTP_HEADER_RETRY_AFTER,
AWS_HTTP_HEADER_VARY,
AWS_HTTP_HEADER_WARNING,
AWS_HTTP_HEADER_UPGRADE,
AWS_HTTP_HEADER_KEEP_ALIVE,
AWS_HTTP_HEADER_PROXY_CONNECTION,
AWS_HTTP_HEADER_COUNT, /* Number of enums */
};
AWS_EXTERN_C_BEGIN
AWS_HTTP_API void aws_http_fatal_assert_library_initialized(void);
AWS_HTTP_API struct aws_byte_cursor aws_http_version_to_str(enum aws_http_version version);
/**
* Returns appropriate enum, or AWS_HTTP_METHOD_UNKNOWN if no match found.
* Case-sensitive
*/
AWS_HTTP_API enum aws_http_method aws_http_str_to_method(struct aws_byte_cursor cursor);
/**
* Returns appropriate enum, or AWS_HTTP_HEADER_UNKNOWN if no match found.
* Not case-sensitive
*/
AWS_HTTP_API enum aws_http_header_name aws_http_str_to_header_name(struct aws_byte_cursor cursor);
/**
* Returns appropriate enum, or AWS_HTTP_HEADER_UNKNOWN if no match found.
* Case-sensitive (ex: "Connection" -> AWS_HTTP_HEADER_UNKNOWN because we looked for "connection").
*/
AWS_HTTP_API enum aws_http_header_name aws_http_lowercase_str_to_header_name(struct aws_byte_cursor cursor);
AWS_EXTERN_C_END
#endif /* AWS_HTTP_IMPL_H */
|