GNU libmicrohttpd
0.9.72
|
Typedefs | |
typedef void(* | MHD_ContentReaderFreeCallback) (void *cls) |
Enumerations | |
enum | MHD_ResponseMemoryMode { MHD_RESPMEM_PERSISTENT , MHD_RESPMEM_MUST_FREE , MHD_RESPMEM_MUST_COPY } |
MHD API used to generate responses.
typedef void(* MHD_ContentReaderFreeCallback) (void *cls) |
This method is called by libmicrohttpd if we are done with a content reader. It should be used to free resources associated with the content reader.
cls | closure |
Definition at line 2354 of file microhttpd.h.
Specification for how MHD should treat the memory buffer given for the response.
Enumerator | |
---|---|
MHD_RESPMEM_PERSISTENT | Buffer is a persistent (static/global) buffer that won't change for at least the lifetime of the response, MHD should just use it, not free it, not copy it, just keep an alias to it. |
MHD_RESPMEM_MUST_FREE | Buffer is heap-allocated with |
MHD_RESPMEM_MUST_COPY | Buffer is in transient memory, but not on the heap (for example, on the stack or non- |
Definition at line 3063 of file microhttpd.h.
_MHD_DEPR_FUNC | ( | "Function MHD_create_response_from_fd_at_offset() is | deprecated, |
use MHD_create_response_from_fd_at_offset64()" | |||
) |
Create a response object. The response object can be extended with header information and then be used any number of times.
size | size of the data portion of the response |
fd | file descriptor referring to a file on disk with the data; will be closed when response is destroyed; fd should be in 'blocking' mode |
offset | offset to start reading from in the file; Be careful! off_t may have been compiled to be a 64-bit variable for MHD, in which case your application also has to be compiled using the same options! Read the MHD manual for more details. |
_MHD_DEPR_FUNC | ( | "MHD_create_response_from_data() is | deprecated, |
use MHD_create_response_from_buffer()" | |||
) |
Create a response object. The response object can be extended with header information and then be used any number of times.
size | size of the data portion of the response |
data | the data itself |
must_free | libmicrohttpd should free data when done |
must_copy | libmicrohttpd must make a copy of data right away, the data maybe released anytime after this call returns |
enum MHD_Result MHD_add_response_footer | ( | struct MHD_Response * | response, |
const char * | footer, | ||
const char * | content | ||
) |
Add a footer line to the response.
response | response to remove a header from |
footer | the footer to delete |
content | value to delete |
Definition at line 1 of file response.c.
enum MHD_Result MHD_add_response_header | ( | struct MHD_Response * | response, |
const char * | header, | ||
const char * | content | ||
) |
Add a header line to the response.
response | response to add a header to |
header | the header to add |
content | value to add |
Add a header line to the response.
response | response to add a header to |
header | the header to add |
content | value to add |
Definition at line 1 of file response.c.
struct MHD_Response * MHD_create_response_from_buffer | ( | size_t | size, |
void * | buffer, | ||
enum MHD_ResponseMemoryMode | mode | ||
) |
Create a response object. The response object can be extended with header information and then be used any number of times.
size | size of the data portion of the response |
buffer | size bytes containing the response's data portion |
mode | flags for buffer management |
Definition at line 809 of file response.c.
References MHD_create_response_from_data(), MHD_RESPMEM_MUST_COPY, and MHD_RESPMEM_MUST_FREE.
Referenced by parse_connection_headers(), and transmit_error_response().
_MHD_EXTERN struct MHD_Response * MHD_create_response_from_buffer_with_free_callback | ( | size_t | size, |
void * | buffer, | ||
MHD_ContentReaderFreeCallback | crfc | ||
) |
Create a response object. The response object can be extended with header information and then be used any number of times.
size | size of the data portion of the response |
buffer | size bytes containing the response's data portion |
crfc | function to call to free the buffer |
Definition at line 831 of file response.c.
References MHD_Response::crfc, MHD_create_response_from_data(), MHD_NO, MHD_YES, and NULL.
struct MHD_Response * MHD_create_response_from_callback | ( | uint64_t | size, |
size_t | block_size, | ||
MHD_ContentReaderCallback | crc, | ||
void * | crc_cls, | ||
MHD_ContentReaderFreeCallback | crfc | ||
) |
Create a response object. The response object can be extended with header information and then be used any number of times.
size | size of the data portion of the response, MHD_SIZE_UNKNOWN for unknown |
block_size | preferred block size for querying crc (advisory only, MHD may still call crc using smaller chunks); this is essentially the buffer size used for IO, clients should pick a value that is appropriate for IO and memory performance requirements |
crc | callback to use to obtain response data |
crc_cls | extra argument to crc |
crfc | callback to call to free crc_cls resources |
Definition at line 375 of file response.c.
References MHD_Response::crc, MHD_Response::crc_cls, MHD_Response::crfc, MHD_Response::data, MHD_Response::data_buffer_size, MHD_Response::fd, MHD_calloc_(), MHD_mutex_init_, MHD_Response::mutex, NULL, MHD_Response::reference_count, and MHD_Response::total_size.
Referenced by MHD_create_response_from_fd_at_offset64(), and MHD_create_response_from_pipe().
struct MHD_Response* MHD_create_response_from_data | ( | size_t | size, |
void * | data, | ||
int | must_free, | ||
int | must_copy | ||
) |
Create a response object. The response object can be extended with header information and then be used any number of times.
size | size of the data portion of the response |
data | the data itself |
must_free | libmicrohttpd should free data when done |
must_copy | libmicrohttpd must make a copy of data right away, the data maybe released anytime after this call returns |
Definition at line 749 of file response.c.
References MHD_Response::crc_cls, MHD_Response::crfc, data, MHD_Response::data, MHD_Response::data_buffer_size, MHD_Response::data_size, MHD_Response::fd, MHD_calloc_(), MHD_mutex_destroy_chk_, MHD_mutex_init_, MHD_YES, must_copy, must_free, MHD_Response::mutex, NULL, MHD_Response::reference_count, and MHD_Response::total_size.
Referenced by MHD_create_response_from_buffer(), and MHD_create_response_from_buffer_with_free_callback().
struct MHD_Response * MHD_create_response_from_fd | ( | size_t | size, |
int | fd | ||
) |
Create a response object. The response object can be extended with header information and then be used any number of times.
size | size of the data portion of the response |
fd | file descriptor referring to a file on disk with the data; will be closed when response is destroyed; fd should be in 'blocking' mode |
Create a response object. The response object can be extended with header information and then be used any number of times.
size | size of the data portion of the response |
fd | file descriptor referring to a file on disk with the data |
Definition at line 702 of file response.c.
References fd, and MHD_create_response_from_fd_at_offset64().
_MHD_EXTERN struct MHD_Response * MHD_create_response_from_fd64 | ( | uint64_t | size, |
int | fd | ||
) |
Create a response object. The response object can be extended with header information and then be used any number of times.
size | size of the data portion of the response; sizes larger than 2 GiB may be not supported by OS or MHD build; see MHD_FEATURE_LARGE_FILE |
fd | file descriptor referring to a file on disk with the data; will be closed when response is destroyed; fd should be in 'blocking' mode |
Definition at line 725 of file response.c.
References fd, and MHD_create_response_from_fd_at_offset64().
struct MHD_Response* MHD_create_response_from_fd_at_offset | ( | size_t | size, |
int | fd, | ||
off_t | offset | ||
) |
Create a response object. The response object can be extended with header information and then be used any number of times.
size | size of the data portion of the response |
fd | file descriptor referring to a file on disk with the data; will be closed when response is destroyed; fd should be in 'blocking' mode |
offset | offset to start reading from in the file; Be careful! off_t may have been compiled to be a 64-bit variable for MHD, in which case your application also has to be compiled using the same options! Read the MHD manual for more details. |
Definition at line 603 of file response.c.
References fd, MHD_create_response_from_fd_at_offset64(), and offset.
_MHD_EXTERN struct MHD_Response * MHD_create_response_from_fd_at_offset64 | ( | uint64_t | size, |
int | fd, | ||
uint64_t | offset | ||
) |
Create a response object. The response object can be extended with header information and then be used any number of times.
size | size of the data portion of the response; sizes larger than 2 GiB may be not supported by OS or MHD build; see MHD_FEATURE_LARGE_FILE |
fd | file descriptor referring to a file on disk with the data; will be closed when response is destroyed; fd should be in 'blocking' mode |
offset | offset to start reading from in the file; reading file beyond 2 GiB may be not supported by OS or MHD build; see MHD_FEATURE_LARGE_FILE |
Definition at line 630 of file response.c.
References MHD_Response::crc_cls, fd, MHD_Response::fd, MHD_Response::fd_off, file_reader(), free_callback(), INT32_MAX, MHD_Response::is_pipe, MHD_create_response_from_callback(), MHD_FILE_READ_BLOCK_SIZE, NULL, and offset.
Referenced by MHD_create_response_from_fd(), MHD_create_response_from_fd64(), and MHD_create_response_from_fd_at_offset().
_MHD_EXTERN struct MHD_Response * MHD_create_response_from_pipe | ( | int | fd | ) |
Create a response object. The response object can be extended with header information and then be used ONLY ONCE.
fd | file descriptor referring to a read-end of a pipe with the data; will be closed when response is destroyed; fd should be in 'blocking' mode |
Definition at line 674 of file response.c.
References MHD_Response::crc_cls, fd, MHD_Response::fd, free_callback(), MHD_Response::is_pipe, MHD_create_response_from_callback(), MHD_FILE_READ_BLOCK_SIZE, MHD_SIZE_UNKNOWN, NULL, and pipe_reader().
enum MHD_Result MHD_del_response_header | ( | struct MHD_Response * | response, |
const char * | header, | ||
const char * | content | ||
) |
Delete a header (or footer) line from the response.
response | response to remove a header from |
header | the header to delete |
content | value to delete |
Definition at line 1 of file response.c.
void MHD_destroy_response | ( | struct MHD_Response * | response | ) |
Destroy a response object and associated resources. Note that libmicrohttpd may keep some of the resources around if the response is still in the queue for some clients, so the memory may not necessarily be freed immediately.
response | response to destroy |
Definition at line 1268 of file response.c.
References MHD_Response::crc_cls, MHD_Response::crfc, MHD_Response::first_header, MHD_HTTP_Header::header, MHD_mutex_destroy_chk_, MHD_mutex_lock_chk_, MHD_mutex_unlock_chk_, MHD_Response::mutex, MHD_HTTP_Header::next, NULL, MHD_Response::reference_count, and MHD_HTTP_Header::value.
Referenced by cleanup_connection(), internal_run_from_select(), MHD_connection_close_(), parse_connection_headers(), and transmit_error_response().
const char * MHD_get_response_header | ( | struct MHD_Response * | response, |
const char * | key | ||
) |
Get a particular header (or footer) from the response.
response | response to query |
key | which header to get |
Definition at line 284 of file response.c.
References MHD_Response::first_header, MHD_HTTP_Header::header, MHD_HTTP_Header::header_size, MHD_str_equal_caseless_bin_n_(), MHD_HTTP_Header::next, NULL, and MHD_HTTP_Header::value.
int MHD_get_response_headers | ( | struct MHD_Response * | response, |
MHD_KeyValueIterator | iterator, | ||
void * | iterator_cls | ||
) |
Get all of the headers (and footers) added to a response.
response | response to query |
iterator | callback to call on each header; maybe NULL (then just count headers) |
iterator_cls | extra argument to iterator |
Definition at line 252 of file response.c.
References MHD_Response::first_header, MHD_HTTP_Header::header, MHD_HTTP_Header::kind, MHD_NO, MHD_HTTP_Header::next, NULL, and MHD_HTTP_Header::value.
enum MHD_Result MHD_queue_response | ( | struct MHD_Connection * | connection, |
unsigned int | status_code, | ||
struct MHD_Response * | response | ||
) |
Queue a response to be transmitted to the client (as soon as possible but after MHD_AccessHandlerCallback returns).
connection | the connection identifying the client |
status_code | HTTP status code (i.e. MHD_HTTP_OK) |
response | response to transmit |
Definition at line 3793 of file connection.c.
Referenced by parse_connection_headers(), and transmit_error_response().
enum MHD_Bool MHD_response_add_header | ( | struct MHD_Response * | response, |
const char * | header, | ||
const char * | content | ||
) |
Add a header line to the response.
response | response to add a header to |
header | the header to add |
content | value to add |
Definition at line 88 of file response.c.
References MHD_Response::crc_cls, MHD_Response::crfc, MHD_Response::first_header, MHD_HTTP_Header::header, MHD_mutex_destroy_chk_, MHD_mutex_lock_chk_, MHD_mutex_unlock_chk_, MHD_Response::mutex, MHD_HTTP_Header::next, NULL, MHD_Response::reference_count, and MHD_HTTP_Header::value.
Referenced by MHD_response_for_upgrade().
enum MHD_Bool MHD_response_add_trailer | ( | struct MHD_Response * | response, |
const char * | footer, | ||
const char * | content | ||
) |
Add a tailer line to the response.
response | response to add a footer to |
footer | the footer to add |
content | value to add |
Definition at line 88 of file response.c.
enum MHD_Bool MHD_response_del_header | ( | struct MHD_Response * | response, |
const char * | header, | ||
const char * | content | ||
) |
Delete a header (or footer) line from the response.
response | response to remove a header from |
header | the header to delete |
content | value to delete |
Definition at line 88 of file response.c.
struct MHD_Response* MHD_response_from_buffer | ( | enum MHD_HTTP_StatusCode | sc, |
size_t | size, | ||
void * | buffer, | ||
enum MHD_ResponseMemoryMode | mode | ||
) |
Create a response object. The response object can be extended with header information and then be used any number of times.
sc | status code to use for the response; MHD_HTTP_NO_CONTENT is only valid if size is 0; |
size | size of the data portion of the response |
buffer | size bytes containing the response's data portion |
mode | flags for buffer management |
Definition at line 41 of file response_from_buffer.c.
References MHD_Response::crc_cls, MHD_Response::crfc, MHD_Response::data, MHD_Response::data_size, MHD_Response::fd, mhd_assert, MHD_calloc_(), MHD_mutex_destroy_chk_, MHD_mutex_init_, MHD_RESPMEM_MUST_COPY, MHD_RESPMEM_PERSISTENT, MHD_Response::mutex, NULL, MHD_Response::reference_count, MHD_Response::status_code, and MHD_Response::total_size.
Referenced by method_string_to_enum(), and parse_request_headers().
struct MHD_Response* MHD_response_from_callback | ( | enum MHD_HTTP_StatusCode | sc, |
uint64_t | size, | ||
size_t | block_size, | ||
MHD_ContentReaderCallback | crc, | ||
void * | crc_cls, | ||
MHD_ContentReaderFreeCallback | crfc | ||
) |
Create a response action. The response object can be extended with header information and then be used any number of times.
sc | status code to return |
size | size of the data portion of the response, MHD_SIZE_UNKNOWN for unknown |
block_size | preferred block size for querying crc (advisory only, MHD may still call crc using smaller chunks); this is essentially the buffer size used for IO, clients should pick a value that is appropriate for IO and memory performance requirements |
crc | callback to use to obtain response data |
crc_cls | extra argument to crc |
crfc | callback to call to free crc_cls resources |
Definition at line 46 of file response_from_callback.c.
References MHD_Response::crc, MHD_Response::crc_cls, MHD_Response::crfc, MHD_Response::data, MHD_Response::data_buffer_size, MHD_Response::fd, mhd_assert, MHD_calloc_(), MHD_mutex_init_, MHD_Response::mutex, NULL, MHD_Response::reference_count, MHD_Response::status_code, and MHD_Response::total_size.
Referenced by MHD_response_from_fd().
struct MHD_Response* MHD_response_from_fd | ( | enum MHD_HTTP_StatusCode | sc, |
int | fd, | ||
uint64_t | offset, | ||
uint64_t | size | ||
) |
Create a response object based on an fd from which data is read. The response object can be extended with header information and then be used any number of times.
sc | status code to return |
fd | file descriptor referring to a file on disk with the data; will be closed when response is destroyed; fd should be in 'blocking' mode |
offset | offset to start reading from in the file; reading file beyond 2 GiB may be not supported by OS or MHD build; see MHD_FEATURE_LARGE_FILE |
size | size of the data portion of the response; sizes larger than 2 GiB may be not supported by OS or MHD build; see MHD_FEATURE_LARGE_FILE |
Definition at line 176 of file response_from_fd.c.
References MHD_Response::crc_cls, fd, MHD_Response::fd, MHD_Response::fd_off, file_reader(), free_callback(), INT32_MAX, mhd_assert, MHD_FILE_READ_BLOCK_SIZE, MHD_response_from_callback(), NULL, and offset.
const char* MHD_response_get_header | ( | struct MHD_Response * | response, |
const char * | key | ||
) |
Get a particular header (or footer) from the response.
response | response to query |
key | which header to get |
Definition at line 243 of file response.c.
References MHD_Response::first_header, MHD_HTTP_Header::header, MHD_str_equal_caseless_(), MHD_HTTP_Header::next, NULL, and MHD_HTTP_Header::value.
Referenced by build_header_response().
unsigned int MHD_response_get_headers | ( | struct MHD_Response * | response, |
MHD_KeyValueIterator | iterator, | ||
void * | iterator_cls | ||
) |
Get all of the headers (and footers) added to a response.
response | response to query |
iterator | callback to call on each header; maybe NULL (then just count headers) |
iterator_cls | extra argument to iterator |
Definition at line 211 of file response.c.
References MHD_Response::first_header, MHD_HTTP_Header::header, MHD_HTTP_Header::kind, MHD_YES, MHD_HTTP_Header::next, NULL, and MHD_HTTP_Header::value.
void MHD_response_queue_for_destroy | ( | struct MHD_Response * | response | ) |
Explicitly decrease reference counter of a response object. If the counter hits zero, destroys a response object and associated resources. Usually, this is implicitly done by converting a response to an action and returning the action to MHD.
response | response to decrement RC of |
Definition at line 88 of file response.c.
Referenced by cleanup_connection(), method_string_to_enum(), MHD_connection_cleanup_(), MHD_connection_close_(), MHD_request_handle_idle_(), MHD_response_for_upgrade(), and thread_main_handle_connection().