Internal definitions to the HTTP Client library. More...
#include "llhttp.h"
Go to the source code of this file.
Data Structures | |
struct | findHeaderContext_t |
An aggregator that represents the user-provided parameters to the HTTPClient_ReadHeader API function. This will be used as context parameter for the parsing callbacks used by the API function. More... | |
struct | HTTPParsingContext_t |
The HTTP response parsing context for a response fresh from the server. This context is passed into the http-parser registered callbacks. The registered callbacks are private functions of the form httpParserXXXXCallbacks(). More... | |
Macros | |
#define | HTTP_PROTOCOL_VERSION "HTTP/1.1" |
The HTTP protocol version of this library is HTTP/1.1. | |
#define | HTTP_PROTOCOL_VERSION_LEN ( sizeof( HTTP_PROTOCOL_VERSION ) - 1U ) |
#define | HTTP_EMPTY_PATH "/" |
Default value when pRequestInfo->pPath == NULL. | |
#define | HTTP_EMPTY_PATH_LEN ( sizeof( HTTP_EMPTY_PATH ) - 1U ) |
#define | HTTP_HEADER_LINE_SEPARATOR "\r\n" |
#define | HTTP_HEADER_LINE_SEPARATOR_LEN ( sizeof( HTTP_HEADER_LINE_SEPARATOR ) - 1U ) |
#define | HTTP_HEADER_END_INDICATOR "\r\n\r\n" |
#define | HTTP_HEADER_END_INDICATOR_LEN ( sizeof( HTTP_HEADER_END_INDICATOR ) - 1U ) |
#define | HTTP_HEADER_FIELD_SEPARATOR ": " |
#define | HTTP_HEADER_FIELD_SEPARATOR_LEN ( sizeof( HTTP_HEADER_FIELD_SEPARATOR ) - 1U ) |
#define | SPACE_CHARACTER ' ' |
#define | SPACE_CHARACTER_LEN ( 1U ) |
#define | DASH_CHARACTER '-' |
#define | DASH_CHARACTER_LEN ( 1U ) |
#define | CARRIAGE_RETURN_CHARACTER '\r' |
#define | LINEFEED_CHARACTER '\n' |
#define | COLON_CHARACTER ':' |
#define | HTTP_HEADER_STRNCPY_IS_VALUE 0U |
Indicator for function httpHeaderStrncpy that the pSrc parameter is a header value. | |
#define | HTTP_HEADER_STRNCPY_IS_FIELD 1U |
Indicator for function httpHeaderStrncpy that the pSrc parameter is a header field. | |
#define | HTTP_USER_AGENT_FIELD "User-Agent" |
#define | HTTP_USER_AGENT_FIELD_LEN ( sizeof( HTTP_USER_AGENT_FIELD ) - 1U ) |
#define | HTTP_HOST_FIELD "Host" |
#define | HTTP_HOST_FIELD_LEN ( sizeof( HTTP_HOST_FIELD ) - 1U ) |
#define | HTTP_USER_AGENT_VALUE_LEN ( sizeof( HTTP_USER_AGENT_VALUE ) - 1U ) |
#define | HTTP_CONNECTION_FIELD "Connection" |
#define | HTTP_CONNECTION_FIELD_LEN ( sizeof( HTTP_CONNECTION_FIELD ) - 1U ) |
#define | HTTP_CONTENT_LENGTH_FIELD "Content-Length" |
#define | HTTP_CONTENT_LENGTH_FIELD_LEN ( sizeof( HTTP_CONTENT_LENGTH_FIELD ) - 1U ) |
#define | HTTP_CONNECTION_KEEP_ALIVE_VALUE "keep-alive" |
#define | HTTP_CONNECTION_KEEP_ALIVE_VALUE_LEN ( sizeof( HTTP_CONNECTION_KEEP_ALIVE_VALUE ) - 1U ) |
#define | HTTP_RANGE_REQUEST_HEADER_FIELD "Range" |
#define | HTTP_RANGE_REQUEST_HEADER_FIELD_LEN ( sizeof( HTTP_RANGE_REQUEST_HEADER_FIELD ) - 1U ) |
#define | HTTP_RANGE_REQUEST_HEADER_VALUE_PREFIX "bytes=" |
#define | HTTP_RANGE_REQUEST_HEADER_VALUE_PREFIX_LEN ( sizeof( HTTP_RANGE_REQUEST_HEADER_VALUE_PREFIX ) - 1U ) |
#define | MAX_INT32_NO_OF_DECIMAL_DIGITS 10U |
Maximum value of a 32 bit signed integer is 2,147,483,647. | |
#define | HTTP_MAX_RANGE_REQUEST_VALUE_LEN |
Maximum buffer space for storing a Range Request Value. | |
#define | LLHTTP_CONTINUE_PARSING 0 |
Return value for llhttp registered callback to signal continuation of HTTP response parsing. Equal to HPE_OK. | |
#define | LLHTTP_STOP_PARSING HPE_USER |
Return value for llhttp registered callback to signal halting further execution. | |
#define | LLHTTP_PAUSE_PARSING HPE_PAUSED |
Return value for llhttp registered callback to signal to pause further execution. | |
#define | LLHTTP_STOP_PARSING_NO_BODY 1 |
Return value for llhttp_t.on_headers_complete to signal that the HTTP response has no body and to halt further execution. | |
#define | LLHTTP_STOP_PARSING_NO_HEADER 1 |
Return value for llhttp_t.on_headers_complete to signal halting further execution. This is the same return value that indicates the HTTP response has no body, but unlike the -1 error code, gives consistent return values for llhttp_execute in both strict and non-strict modes. | |
#define | HTTP_MINIMUM_REQUEST_LINE_LENGTH 16u |
The minimum request-line in the headers has a possible one character custom method and a single forward / or asterisk * for the path: | |
Enumerations | |
enum | HTTPParsingState_t { HTTP_PARSING_NONE = 0 , HTTP_PARSING_INCOMPLETE , HTTP_PARSING_COMPLETE } |
The state of the response message parsed after function parseHttpResponse returns. More... | |
Internal definitions to the HTTP Client library.
#define HTTP_PROTOCOL_VERSION_LEN ( sizeof( HTTP_PROTOCOL_VERSION ) - 1U ) |
The length of HTTP_PROTOCOL_VERSION.
#define HTTP_EMPTY_PATH_LEN ( sizeof( HTTP_EMPTY_PATH ) - 1U ) |
The length of HTTP_EMPTY_PATH.
#define HTTP_HEADER_LINE_SEPARATOR "\r\n" |
HTTP header field lines are separated by \r\n
.
#define HTTP_HEADER_LINE_SEPARATOR_LEN ( sizeof( HTTP_HEADER_LINE_SEPARATOR ) - 1U ) |
The length of HTTP_HEADER_LINE_SEPARATOR.
#define HTTP_HEADER_END_INDICATOR "\r\n\r\n" |
The HTTP header is complete when \r\n\r\n
is found.
#define HTTP_HEADER_END_INDICATOR_LEN ( sizeof( HTTP_HEADER_END_INDICATOR ) - 1U ) |
The length of HTTP_HEADER_END_INDICATOR.
#define HTTP_HEADER_FIELD_SEPARATOR ": " |
HTTP header field and values are separated by ": ".
#define HTTP_HEADER_FIELD_SEPARATOR_LEN ( sizeof( HTTP_HEADER_FIELD_SEPARATOR ) - 1U ) |
The length of HTTP_HEADER_FIELD_SEPARATOR.
#define SPACE_CHARACTER ' ' |
A space character macro to help with serializing a request.
#define SPACE_CHARACTER_LEN ( 1U ) |
The length of SPACE_CHARACTER.
#define DASH_CHARACTER '-' |
A dash character macro to help with serializing a request.
#define DASH_CHARACTER_LEN ( 1U ) |
The length of DASH_CHARACTER.
#define CARRIAGE_RETURN_CHARACTER '\r' |
A carriage return character to help with header validation.
#define LINEFEED_CHARACTER '\n' |
A linefeed character to help with header validation.
#define COLON_CHARACTER ':' |
A colon character to help with header validation.
#define HTTP_USER_AGENT_FIELD "User-Agent" |
HTTP header field "User-Agent".
#define HTTP_USER_AGENT_FIELD_LEN ( sizeof( HTTP_USER_AGENT_FIELD ) - 1U ) |
The length of HTTP_USER_AGENT_FIELD.
#define HTTP_HOST_FIELD "Host" |
HTTP header field "Host".
#define HTTP_HOST_FIELD_LEN ( sizeof( HTTP_HOST_FIELD ) - 1U ) |
The length of HTTP_HOST_FIELD.
#define HTTP_USER_AGENT_VALUE_LEN ( sizeof( HTTP_USER_AGENT_VALUE ) - 1U ) |
The length of HTTP_USER_AGENT_VALUE.
#define HTTP_CONNECTION_FIELD "Connection" |
HTTP header field "Connection".
#define HTTP_CONNECTION_FIELD_LEN ( sizeof( HTTP_CONNECTION_FIELD ) - 1U ) |
The length of HTTP_CONNECTION_FIELD.
#define HTTP_CONTENT_LENGTH_FIELD "Content-Length" |
HTTP header field "Content-Length".
#define HTTP_CONTENT_LENGTH_FIELD_LEN ( sizeof( HTTP_CONTENT_LENGTH_FIELD ) - 1U ) |
The length of HTTP_CONTENT_LENGTH_FIELD.
#define HTTP_CONNECTION_KEEP_ALIVE_VALUE "keep-alive" |
HTTP header value "keep-alive" for the "Connection" header field.
#define HTTP_CONNECTION_KEEP_ALIVE_VALUE_LEN ( sizeof( HTTP_CONNECTION_KEEP_ALIVE_VALUE ) - 1U ) |
The length of HTTP_CONNECTION_KEEP_ALIVE_VALUE.
#define HTTP_RANGE_REQUEST_HEADER_FIELD "Range" |
HTTP header field "Range".
#define HTTP_RANGE_REQUEST_HEADER_FIELD_LEN ( sizeof( HTTP_RANGE_REQUEST_HEADER_FIELD ) - 1U ) |
The length of HTTP_RANGE_REQUEST_HEADER_FIELD.
#define HTTP_RANGE_REQUEST_HEADER_VALUE_PREFIX "bytes=" |
HTTP required header value prefix when specifying a byte range for partial content.
#define HTTP_RANGE_REQUEST_HEADER_VALUE_PREFIX_LEN ( sizeof( HTTP_RANGE_REQUEST_HEADER_VALUE_PREFIX ) - 1U ) |
The length of HTTP_RANGE_REQUEST_HEADER_VALUE_PREFIX.
#define MAX_INT32_NO_OF_DECIMAL_DIGITS 10U |
Maximum value of a 32 bit signed integer is 2,147,483,647.
Used for calculating buffer space for ASCII representation of range values.
#define HTTP_MAX_RANGE_REQUEST_VALUE_LEN |
Maximum buffer space for storing a Range Request Value.
The largest Range Request value is of the form: "bytes=<Max-Integer-Value>-<Max-Integer-Value>"
#define HTTP_MINIMUM_REQUEST_LINE_LENGTH 16u |
The minimum request-line in the headers has a possible one character custom method and a single forward / or asterisk * for the path:
Therefore the minimum length is 16. If this minimum request-line is not satisfied, then the request headers to send are invalid.
Note that custom methods are allowed per: https://tools.ietf.org/html/rfc2616#section-5.1.1.
enum HTTPParsingState_t |
The state of the response message parsed after function parseHttpResponse returns.
Enumerator | |
---|---|
HTTP_PARSING_NONE | The parser has not started reading any response. |
HTTP_PARSING_INCOMPLETE | The parser found a partial response. |
HTTP_PARSING_COMPLETE | The parser found the entire response. |