GNU libmicrohttpd
0.9.72
|
internal shared structures More...
#include "mhd_options.h"
#include "platform.h"
#include "microhttpd2.h"
#include "microhttpd_tls.h"
#include "mhd_assert.h"
#include "mhd_compat.h"
#include "mhd_itc.h"
#include "mhd_mono_clock.h"
#include "memorypool.h"
#include "mhd_threads.h"
#include "mhd_locks.h"
#include "mhd_sockets.h"
#include "mhd_str.h"
#include "mhd_itc_types.h"
Go to the source code of this file.
Data Structures | |
struct | MHD_HTTP_Header |
struct | MHD_Request |
struct | MHD_Connection |
struct | MHD_Daemon |
struct | MHD_Action |
struct | MHD_Response |
Macros | |
#define | MHD_PANIC(msg) |
#define | MHD_fd_close_chk_(fd) |
#define | EXTRA_CHECKS MHD_NO |
#define | MHD_MAX(a, b) (((a)<(b)) ? (b) : (a)) |
#define | MHD_MIN(a, b) (((a)<(b)) ? (a) : (b)) |
#define | MHD_BUF_INC_SIZE 1024 |
#define | BUILTIN_NOT_REACHED |
#define | POOL_SIZE_DEFAULT (32 * 1024) |
#define | BUF_INC_SIZE_DEFAULT 1024 |
#define | LISTEN_BACKLOG_DEFAULT 511 |
#define | FO_QUEUE_LENGTH_DEFAULT 50 |
#define | DLL_insert(head, tail, element) |
#define | DLL_remove(head, tail, element) |
#define | XDLL_insert(head, tail, element) |
#define | XDLL_remove(head, tail, element) |
#define | EDLL_insert(head, tail, element) |
#define | EDLL_remove(head, tail, element) |
#define | MHD_ERR_AGAIN_ (-3073) |
#define | MHD_ERR_CONNRESET_ (-3074) |
#define | MHD_ERR_NOTCONN_ (-3075) |
#define | MHD_ERR_NOMEM_ (-3076) |
#define | MHD_ERR_BADF_ (-3077) |
#define | MHD_ERR_INVAL_ (-3078) |
Typedefs | |
typedef ssize_t(* | ReceiveCallback) (struct MHD_Connection *conn, void *write_to, size_t max_bytes) |
typedef ssize_t(* | TransmitCallback) (struct MHD_Connection *conn, const void *read_from, size_t max_bytes) |
typedef enum MHD_StatusCode(* | ActionCallback) (void *cls, struct MHD_Request *request) |
typedef bool(* | MHD_ArgumentIterator_) (struct MHD_Request *request, const char *key, const char *value, enum MHD_ValueKind kind) |
Functions | |
bool | MHD_parse_arguments_ (struct MHD_Request *request, enum MHD_ValueKind kind, char *args, MHD_ArgumentIterator_ cb, unsigned int *num_headers) |
Variables | |
MHD_PanicCallback | mhd_panic |
void * | mhd_panic_cls |
internal shared structures
Definition in file internal.h.
#define BUF_INC_SIZE_DEFAULT 1024 |
Default minimum size by which MHD tries to increment read/write buffers. We usually begin with half the available pool space for the IO-buffer, but if absolutely needed we additively grow by the number of bytes given here (up to – theoretically – the full pool space).
Definition at line 1290 of file internal.h.
#define BUILTIN_NOT_REACHED |
Definition at line 140 of file internal.h.
#define DLL_insert | ( | head, | |
tail, | |||
element | |||
) |
Insert an element at the head of a DLL. Assumes that head, tail and element are structs with prev and next fields.
head | pointer to the head of the DLL |
tail | pointer to the tail of the DLL |
element | element to insert |
Definition at line 1743 of file internal.h.
#define DLL_remove | ( | head, | |
tail, | |||
element | |||
) |
Remove an element from a DLL. Assumes that head, tail and element are structs with prev and next fields.
head | pointer to the head of the DLL |
tail | pointer to the tail of the DLL |
element | element to remove |
Definition at line 1763 of file internal.h.
#define EDLL_insert | ( | head, | |
tail, | |||
element | |||
) |
Insert an element at the head of a EDLL. Assumes that head, tail and element are structs with prevE and nextE fields.
head | pointer to the head of the EDLL |
tail | pointer to the tail of the EDLL |
element | element to insert |
Definition at line 1829 of file internal.h.
#define EDLL_remove | ( | head, | |
tail, | |||
element | |||
) |
Remove an element from a EDLL. Assumes that head, tail and element are structs with prevE and nextE fields.
head | pointer to the head of the EDLL |
tail | pointer to the tail of the EDLL |
element | element to remove |
Definition at line 1847 of file internal.h.
#define EXTRA_CHECKS MHD_NO |
Should we perform additional sanity checks at runtime (on our internal invariants)? This may lead to aborts, but can be useful for debugging.
Definition at line 107 of file internal.h.
#define FO_QUEUE_LENGTH_DEFAULT 50 |
Default queue length to use with fast open.
Definition at line 1341 of file internal.h.
#define LISTEN_BACKLOG_DEFAULT 511 |
Default value we use for the listen backlog.
Definition at line 1329 of file internal.h.
#define MHD_BUF_INC_SIZE 1024 |
Minimum size by which MHD tries to increment read/write buffers. We usually begin with half the available pool space for the IO-buffer, but if absolutely needed we additively grow by the number of bytes given here (up to – theoretically – the full pool space).
Definition at line 120 of file internal.h.
#define MHD_ERR_AGAIN_ (-3073) |
Error code similar to EGAIN or EINTR
Definition at line 1863 of file internal.h.
#define MHD_ERR_BADF_ (-3077) |
"Bad FD" error code
Definition at line 1884 of file internal.h.
#define MHD_ERR_CONNRESET_ (-3074) |
Connection was hard-closed by remote peer.
Definition at line 1868 of file internal.h.
#define MHD_ERR_INVAL_ (-3078) |
Error code similar to EINVAL
Definition at line 1889 of file internal.h.
#define MHD_ERR_NOMEM_ (-3076) |
"Not enough memory" error code
Definition at line 1879 of file internal.h.
#define MHD_ERR_NOTCONN_ (-3075) |
Connection is not connected anymore due to network error or any other reason.
Definition at line 1874 of file internal.h.
#define MHD_fd_close_chk_ | ( | fd | ) |
Close FD and abort execution if error is detected.
fd | the FD to close |
Definition at line 98 of file internal.h.
#define MHD_MAX | ( | a, | |
b | |||
) | (((a)<(b)) ? (b) : (a)) |
Definition at line 109 of file internal.h.
#define MHD_MIN | ( | a, | |
b | |||
) | (((a)<(b)) ? (a) : (b)) |
Definition at line 110 of file internal.h.
#define MHD_PANIC | ( | msg | ) |
Trigger 'panic' action based on fatal errors.
msg | error message (const char *) |
Definition at line 69 of file internal.h.
#define POOL_SIZE_DEFAULT (32 * 1024) |
Default size of the per-connection memory pool.
Definition at line 1276 of file internal.h.
#define XDLL_insert | ( | head, | |
tail, | |||
element | |||
) |
Insert an element at the head of a XDLL. Assumes that head, tail and element are structs with prevX and nextX fields.
head | pointer to the head of the XDLL |
tail | pointer to the tail of the XDLL |
element | element to insert |
Definition at line 1786 of file internal.h.
#define XDLL_remove | ( | head, | |
tail, | |||
element | |||
) |
Remove an element from a XDLL. Assumes that head, tail and element are structs with prevX and nextX fields.
head | pointer to the head of the XDLL |
tail | pointer to the tail of the XDLL |
element | element to remove |
Definition at line 1806 of file internal.h.
typedef enum MHD_StatusCode(* ActionCallback) (void *cls, struct MHD_Request *request) |
Action function implementing some action to be performed on a request.
cls | action-specfic closure |
request | the request on which the action is to be performed |
Definition at line 195 of file internal.h.
typedef bool(* MHD_ArgumentIterator_) (struct MHD_Request *request, const char *key, const char *value, enum MHD_ValueKind kind) |
Callback invoked when iterating over key / value argument pairs during parsing.
request | context of the iteration |
key | 0-terminated key string, never NULL |
value | 0-terminated value string, may be NULL |
kind | origin of the key-value pair |
Definition at line 1706 of file internal.h.
typedef ssize_t(* ReceiveCallback) (struct MHD_Connection *conn, void *write_to, size_t max_bytes) |
Function to receive plaintext data.
conn | the connection struct |
write_to | where to write received data |
max_bytes | maximum number of bytes to receive |
Definition at line 181 of file internal.h.
typedef ssize_t(* TransmitCallback) (struct MHD_Connection *conn, const void *read_from, size_t max_bytes) |
Function to transmit plaintext data.
conn | the connection struct |
read_from | where to read data to transmit |
max_bytes | maximum number of bytes to transmit |
Definition at line 195 of file internal.h.
enum MHD_ConnKeepAlive |
Ability to use same connection for next request
Definition at line 154 of file internal.h.
enum MHD_EpollState |
State of the socket with respect to epoll (bitmask).
Definition at line 587 of file internal.h.
enum MHD_REQUEST_STATE |
States in a state machine for a request.
The main transitions are any-state to MHD_REQUEST_CLOSED, any state to state+1, MHD_REQUEST_FOOTERS_SENT to MHD_REQUEST_INIT. MHD_REQUEST_CLOSED is the terminal state and MHD_REQUEST_INIT the initial state.
Note that transitions for reading happen only after the input has been processed; transitions for writing happen after the respective data has been put into the write buffer (the write does not have to be completed yet). A transition to MHD_REQUEST_CLOSED or MHD_REQUEST_INIT requires the write to be complete.
Definition at line 216 of file internal.h.
bool MHD_parse_arguments_ | ( | struct MHD_Request * | request, |
enum MHD_ValueKind | kind, | ||
char * | args, | ||
MHD_ArgumentIterator_ | cb, | ||
unsigned int * | num_headers | ||
) |
Parse and unescape the arguments given by the client as part of the HTTP request URI.
request | request to add headers to | |
kind | header kind to pass to cb | |
[in,out] | args | argument URI string (after "?" in URI), clobbered in the process! |
cb | function to call on each key-value pair found | |
[out] | num_headers | set to the number of headers found |
Definition at line 190 of file internal.c.
References MHD_Request::daemon, MHD_unescape_plus(), NULL, MHD_Daemon::unescape_cb, and MHD_Daemon::unescape_cb_cls.
Referenced by parse_initial_message_line().
|
extern |
Handler for fatal errors.
Definition at line 31 of file panic.c.
Referenced by build_header_response(), check_write_done(), MHD_create_post_processor(), MHD_destroy_post_processor(), MHD_init(), post_process_urlencoded(), and process_request_body().
|
extern |
Closure argument for "mhd_panic".
Closure argument for mhd_panic.
Definition at line 36 of file panic.c.
Referenced by build_header_response(), check_write_done(), MHD_create_post_processor(), MHD_destroy_post_processor(), post_process_urlencoded(), and process_request_body().