httpmessage
0.4.0
HTTP message parsing library
|
Classes | |
struct | httpmessage_message |
HTTP generic message. More... | |
struct | httpmessage_request |
HTTP request message. More... | |
struct | httpmessage_response |
HTTP response message. More... | |
Enumerations | |
enum | httpmessage_message_type { HTTPMESSAGE_TYPE_UNKNOWN = -1, HTTPMESSAGE_TYPE_REQUEST = 'q', HTTPMESSAGE_TYPE_RESPONSE = 'r' } |
HTTP message type. More... | |
Functions | |
HMAPI void | httpmessage_message_init (httpmessage_message *message) |
Initialize a HTTP message descriptor. More... | |
HMAPI void | httpmessage_message_clear (httpmessage_message *message, int option_flags) |
Clear message. More... | |
HMAPI int | httpmessage_message_append_header (httpmessage_message *message, const char *name, const char *value, int option_flags) |
Append a header to the given message. More... | |
HMAPI int | httpmessage_message_get_storage_infos (size_t *max_headerfield_count, size_t *max_line_per_value, const httpmessage_message *message) |
Get message storage capabilities. More... | |
HMAPI httpmessage_request * | httpmessage_request_new () |
Allocate and initialize a new request. More... | |
HMAPI void | httpmessage_request_init (httpmessage_request *request) |
Initialize a HTTP request descriptor. More... | |
HMAPI void | httpmessage_request_clear (httpmessage_request *request, int option_flags) |
Clear request message content. More... | |
HMAPI void | httpmessage_request_free (httpmessage_request **request) |
Clear and free a request allocated with httpmessage_request_new() More... | |
HMAPI httpmessage_request * | httpmessage_request_storage_new (size_t max_headerfield_count, size_t max_line_per_headerfield_value) |
Create a request message with pre-allocated header field storage in a single memory block. More... | |
HMAPI httpmessage_response * | httpmessage_response_new () |
Allocate and initialize a new response. More... | |
HMAPI void | httpmessage_response_init (httpmessage_response *response) |
Initialize a HTTP response descriptor. More... | |
HMAPI void | httpmessage_response_clear (httpmessage_response *response, int option_flags) |
Clear response message. More... | |
HMAPI void | httpmessage_response_free (httpmessage_response **response) |
Clear and free a response allocated with httpmessage_response_new() More... | |
HMAPI httpmessage_response * | httpmessage_response_storage_new (size_t max_headerfield_count, size_t max_line_per_headerfield_value) |
Create a response message with pre-allocated header field storage in a single memory block. More... | |
HMAPI int | httpmessage_message_http_version_consume (int *major_version, int *minor_version, const char *text, size_t length) |
Read HTTP version token. More... | |
HMAPI int | httpmessage_request_request_uri_consume (httpmessage_stringview *request_uri, const char *text, size_t length) |
Read the Request-URI resourcce of a request line. More... | |
HMAPI int | httpmessage_request_line_consume (httpmessage_stringview *method, httpmessage_stringview *request_uri, int *major_version, int *minor_version, const char *text, size_t length, int option_flags) |
Read the first line of a HTTP request message. More... | |
HMAPI int | httpmessage_status_line_consume (int *major_version, int *minor_version, int *status_code, httpmessage_stringview *reason_phrase, const char *text, size_t length, int option_flags) |
Read HTTM message status line. More... | |
HMAPI int | httpmessage_message_get_type (const char *text, size_t length, int option_flags) |
Guess HTTP message type by parsing the first line of the message. More... | |
HMAPI int | httpmessage_message_content_consume (httpmessage_message *message, const char *text, size_t length, int option_flags) |
Read HTTP message headers and body. More... | |
HMAPI ssize_t | httpmessage_message_content_write_file (FILE *file, const httpmessage_message *message) |
Write message header and body to a file. More... | |
HMAPI ssize_t | httpmessage_message_content_write_buffer (void *output, size_t output_size, const httpmessage_message *message) |
Write message header and body to a buffer. More... | |
HMAPI int | httpmessage_request_consume (httpmessage_request *request, const char *text, size_t length, int option_flags) |
Read a HTTP request message. More... | |
HMAPI ssize_t | httpmessage_request_write_file (FILE *file, const httpmessage_request *request) |
Write a HTTP request message to a file. More... | |
HMAPI ssize_t | httpmessage_request_write_buffer (void *output, size_t output_size, const httpmessage_request *request) |
Write a HTTP request message to a buffer. More... | |
HMAPI int | httpmessage_response_consume (httpmessage_response *response, const char *text, size_t length, int option_flags) |
Read a HTTP response message. More... | |
HMAPI ssize_t | httpmessage_response_write_file (FILE *file, const httpmessage_response *response) |
Write a HTTP response to a file. More... | |
HMAPI ssize_t | httpmessage_response_write_buffer (void *output, size_t output_size, const httpmessage_response *response) |
Write a HTTP response to a buffer. More... | |
Variables | |
HTTPMESSAGE_C_BEGIN typedef httpmessage_stringview | httpmessage_body |
HTTP message body. | |
HMAPI int httpmessage_message_append_header | ( | httpmessage_message * | message, |
const char * | name, | ||
const char * | value, | ||
int | option_flags | ||
) |
Append a header to the given message.
message | Message to add the header to. |
name | Header field name |
value | Header value |
option_flags | Option flags. Supported flags are |
HMAPI void httpmessage_message_clear | ( | httpmessage_message * | message, |
int | option_flags | ||
) |
Clear message.
message | Message instance |
option_flags | Option flags. Supported flags are |
HMAPI int httpmessage_message_content_consume | ( | httpmessage_message * | message, |
const char * | text, | ||
size_t | length, | ||
int | option_flags | ||
) |
Read HTTP message headers and body.
message | Output message descriptor |
text | Input text |
length | Input text length |
option_flags | Option flags. Supported flags are |
text
. On error, one of httpmessage_result_codeHMAPI ssize_t httpmessage_message_content_write_buffer | ( | void * | output, |
size_t | output_size, | ||
const httpmessage_message * | message | ||
) |
Write message header and body to a buffer.
output | Output buffer |
output_size | Output buffer size |
message | Message to write |
HMAPI ssize_t httpmessage_message_content_write_file | ( | FILE * | file, |
const httpmessage_message * | message | ||
) |
Write message header and body to a file.
file | Output file descriptor |
message | HTTP message content to write |
HMAPI int httpmessage_message_get_storage_infos | ( | size_t * | max_headerfield_count, |
size_t * | max_line_per_value, | ||
const httpmessage_message * | message | ||
) |
Get message storage capabilities.
max_headerfield_count | This argument will be filled with the number of header structure allocated in storage. |
max_line_per_value | This argument will be filled with the maximum number of header field value lines per value that can be used in this storage. |
message | Message storage to inspect. If the storage was allocated with httpmessage_request_storage_new or httpmessage_response_storage_new, the returned value is valid for any header of the storage. Otherwise, some header fields may have a lower line count. |
HMAPI int httpmessage_message_get_type | ( | const char * | text, |
size_t | length, | ||
int | option_flags | ||
) |
Guess HTTP message type by parsing the first line of the message.
text | Input text |
length | Input length |
option_flags | Option flags. Supported flags are |
HMAPI int httpmessage_message_http_version_consume | ( | int * | major_version, |
int * | minor_version, | ||
const char * | text, | ||
size_t | length | ||
) |
Read HTTP version token.
major_version | Output major version |
minor_version | Output minor version |
text | Input text |
length | Input text lengh |
text
. On error, one of httpmessage_result_codeHMAPI void httpmessage_message_init | ( | httpmessage_message * | message | ) |
Initialize a HTTP message descriptor.
message | Message descriptor instance |
HMAPI void httpmessage_request_clear | ( | httpmessage_request * | request, |
int | option_flags | ||
) |
Clear request message content.
request | Request to clear. |
option_flags | Option flags. Supported flags are |
HMAPI int httpmessage_request_consume | ( | httpmessage_request * | request, |
const char * | text, | ||
size_t | length, | ||
int | option_flags | ||
) |
Read a HTTP request message.
request | Output request |
text | Input text |
length | Input text length |
option_flags | Option flags. Supported flags are |
text
. On error, one of httpmessage_result_codeHMAPI void httpmessage_request_free | ( | httpmessage_request ** | request | ) |
Clear and free a request allocated with httpmessage_request_new()
request | Request to free |
HMAPI void httpmessage_request_init | ( | httpmessage_request * | request | ) |
Initialize a HTTP request descriptor.
request | Request descriptor instance |
HMAPI int httpmessage_request_line_consume | ( | httpmessage_stringview * | method, |
httpmessage_stringview * | request_uri, | ||
int * | major_version, | ||
int * | minor_version, | ||
const char * | text, | ||
size_t | length, | ||
int | option_flags | ||
) |
Read the first line of a HTTP request message.
method | Output request method |
request_uri | Output request URI |
major_version | Output HTTP majour version |
minor_version | Output HTTP minor version |
text | Input text |
length | Input text length |
option_flags | Option flags. Supported flags are |
text
. On error, on of httpmessage_reult_code.HMAPI httpmessage_request* httpmessage_request_new | ( | ) |
Allocate and initialize a new request.
NULL
on error. HMAPI int httpmessage_request_request_uri_consume | ( | httpmessage_stringview * | request_uri, |
const char * | text, | ||
size_t | length | ||
) |
Read the Request-URI resourcce of a request line.
request_uri | Output string view |
text | Input text |
length | Input text length |
text
. On error, on of httpmessage_result_code.HMAPI httpmessage_request* httpmessage_request_storage_new | ( | size_t | max_headerfield_count, |
size_t | max_line_per_headerfield_value | ||
) |
Create a request message with pre-allocated header field storage in a single memory block.
max_headerfield_count | Number of header field to allocated |
max_line_per_headerfield_value | Number of header field value line to allocate for each header field. |
free()
to release the object allocated with this function. *_consume
or *_clear
() functions HMAPI ssize_t httpmessage_request_write_buffer | ( | void * | output, |
size_t | output_size, | ||
const httpmessage_request * | request | ||
) |
Write a HTTP request message to a buffer.
output | Output buffer |
output_size | Output buffer size |
request | Request to write |
HMAPI ssize_t httpmessage_request_write_file | ( | FILE * | file, |
const httpmessage_request * | request | ||
) |
Write a HTTP request message to a file.
file | Output file |
request | Request to write |
HMAPI void httpmessage_response_clear | ( | httpmessage_response * | response, |
int | option_flags | ||
) |
Clear response message.
response | Response to clear. |
option_flags | Option flags. Supported flags are |
HMAPI int httpmessage_response_consume | ( | httpmessage_response * | response, |
const char * | text, | ||
size_t | length, | ||
int | option_flags | ||
) |
Read a HTTP response message.
response | Output request |
text | Input text |
length | Input text length |
option_flags | Option flags. Supported flags are |
text
. On error, one of httpmessage_result_codeHMAPI void httpmessage_response_free | ( | httpmessage_response ** | response | ) |
Clear and free a response allocated with httpmessage_response_new()
response | Response to free |
HMAPI void httpmessage_response_init | ( | httpmessage_response * | response | ) |
Initialize a HTTP response descriptor.
response | Response descriptor instance |
HMAPI httpmessage_response* httpmessage_response_new | ( | ) |
Allocate and initialize a new response.
NULL
on error. HMAPI httpmessage_response* httpmessage_response_storage_new | ( | size_t | max_headerfield_count, |
size_t | max_line_per_headerfield_value | ||
) |
Create a response message with pre-allocated header field storage in a single memory block.
max_headerfield_count | Number of header field to allocated |
max_line_per_headerfield_value | Number of header field value line to allocate for each header field. |
free()
to release the object allocated with this function. *_consume
or *_clear
() functions HMAPI ssize_t httpmessage_response_write_buffer | ( | void * | output, |
size_t | output_size, | ||
const httpmessage_response * | response | ||
) |
Write a HTTP response to a buffer.
output | Output buffer |
output_size | Output buffer size |
response | Response to write |
HMAPI ssize_t httpmessage_response_write_file | ( | FILE * | file, |
const httpmessage_response * | response | ||
) |
Write a HTTP response to a file.
file | Output file. |
response | Response to write |
HMAPI int httpmessage_status_line_consume | ( | int * | major_version, |
int * | minor_version, | ||
int * | status_code, | ||
httpmessage_stringview * | reason_phrase, | ||
const char * | text, | ||
size_t | length, | ||
int | option_flags | ||
) |
Read HTTM message status line.
major_version | Output major version |
minor_version | Output minor version |
status_code | Output status code |
reason_phrase | Output response phrase |
text | Input text |
length | Input text length |
option_flags | Option flags. Supported flags are |
text
. On error one of httpmessage_result_code