GNU libmicrohttpd 0.9.5
|
internal shared structures More...
Go to the source code of this file.
Data Structures | |
struct | MHD_Pollfd |
struct | MHD_NonceNc |
struct | MHD_HTTP_Header |
struct | MHD_Response |
struct | MHD_Connection |
struct | MHD_Daemon |
Defines | |
#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 2048 |
#define | MAX_NONCE_LENGTH 129 |
#define | DEBUG_STATES MHD_NO |
#define | EXTRA_CHECK(a) |
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 *write_to, size_t max_bytes) |
typedef void *(* | LogCallback )(void *cls, const char *uri) |
typedef size_t(* | UnescapeCallback )(void *cls, struct MHD_Connection *conn, char *uri) |
Enumerations | |
enum | MHD_PollActions { MHD_POLL_ACTION_NOTHING = 0, MHD_POLL_ACTION_IN = 1, MHD_POLL_ACTION_OUT = 2 } |
enum | MHD_CONNECTION_STATE { MHD_CONNECTION_INIT = 0, MHD_CONNECTION_URL_RECEIVED = MHD_CONNECTION_INIT + 1, MHD_CONNECTION_HEADER_PART_RECEIVED = MHD_CONNECTION_URL_RECEIVED + 1, MHD_CONNECTION_HEADERS_RECEIVED = MHD_CONNECTION_HEADER_PART_RECEIVED + 1, MHD_CONNECTION_HEADERS_PROCESSED = MHD_CONNECTION_HEADERS_RECEIVED + 1, MHD_CONNECTION_CONTINUE_SENDING = MHD_CONNECTION_HEADERS_PROCESSED + 1, MHD_CONNECTION_CONTINUE_SENT = MHD_CONNECTION_CONTINUE_SENDING + 1, MHD_CONNECTION_BODY_RECEIVED = MHD_CONNECTION_CONTINUE_SENT + 1, MHD_CONNECTION_FOOTER_PART_RECEIVED = MHD_CONNECTION_BODY_RECEIVED + 1, MHD_CONNECTION_FOOTERS_RECEIVED = MHD_CONNECTION_FOOTER_PART_RECEIVED + 1, MHD_CONNECTION_HEADERS_SENDING = MHD_CONNECTION_FOOTERS_RECEIVED + 1, MHD_CONNECTION_HEADERS_SENT = MHD_CONNECTION_HEADERS_SENDING + 1, MHD_CONNECTION_NORMAL_BODY_READY = MHD_CONNECTION_HEADERS_SENT + 1, MHD_CONNECTION_NORMAL_BODY_UNREADY = MHD_CONNECTION_NORMAL_BODY_READY + 1, MHD_CONNECTION_CHUNKED_BODY_READY = MHD_CONNECTION_NORMAL_BODY_UNREADY + 1, MHD_CONNECTION_CHUNKED_BODY_UNREADY = MHD_CONNECTION_CHUNKED_BODY_READY + 1, MHD_CONNECTION_BODY_SENT = MHD_CONNECTION_CHUNKED_BODY_UNREADY + 1, MHD_CONNECTION_FOOTERS_SENDING = MHD_CONNECTION_BODY_SENT + 1, MHD_CONNECTION_FOOTERS_SENT = MHD_CONNECTION_FOOTERS_SENDING + 1, MHD_CONNECTION_CLOSED = MHD_CONNECTION_FOOTERS_SENT + 1, MHD_TLS_CONNECTION_INIT = MHD_CONNECTION_CLOSED + 1 } |
Functions | |
size_t | MHD_http_unescape (void *cls, struct MHD_Connection *connection, char *val) |
Variables | |
MHD_PanicCallback | mhd_panic |
void * | mhd_panic_cls |
internal shared structures
Definition in file internal.h.
#define DEBUG_STATES MHD_NO |
Should all state transitions be printed to stderr?
Definition at line 399 of file internal.h.
#define EXTRA_CHECK | ( | a | ) |
Definition at line 966 of file internal.h.
Referenced by build_header_response(), MHD_connection_get_pollfd(), MHD_connection_handle_idle(), MHD_connection_handle_write(), MHD_queue_basic_auth_fail_response(), parse_connection_headers(), process_broken_line(), transmit_error_response(), and try_ready_chunked_body().
#define EXTRA_CHECKS MHD_NO |
Definition at line 36 of file internal.h.
#define MAX_NONCE_LENGTH 129 |
Maximum length of a nonce in digest authentication. 32(MD5 Hex) + 8(Timestamp Hex) + 1(NULL); hence 41 should suffice, but Opera (already) takes more (see Mantis #1633), so we've increased the value to support something longer...
Definition at line 104 of file internal.h.
Referenced by MHD_digest_auth_check().
#define MHD_BUF_INC_SIZE 2048 |
Size by which MHD usually tries to increment read/write buffers. TODO: we should probably get rid of this magic constant and put in code to automatically determine a good value.
Definition at line 46 of file internal.h.
Referenced by get_next_header_line(), MHD_connection_handle_read(), and try_grow_read_buffer().
#define MHD_MAX | ( | a, | |
b | |||
) | ((a)<(b)) ? (b) : (a) |
Definition at line 38 of file internal.h.
#define MHD_MIN | ( | a, | |
b | |||
) | ((a)<(b)) ? (a) : (b) |
Definition at line 39 of file internal.h.
Referenced by try_ready_normal_body().
typedef void*(* LogCallback)(void *cls, const char *uri) |
Signature of function called to log URI accesses.
cls | closure |
uri | uri being accessed |
Definition at line 719 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 416 of file internal.h.
typedef ssize_t(* TransmitCallback)(struct MHD_Connection *conn, const void *write_to, 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 428 of file internal.h.
typedef size_t(* UnescapeCallback)(void *cls, struct MHD_Connection *conn, char *uri) |
Signature of function called to unescape URIs. See also MHD_http_unescape.
cls | closure |
conn | connection handle |
uri | 0-terminated string to unescape (should be updated) |
Definition at line 730 of file internal.h.
enum MHD_CONNECTION_STATE |
States in a state machine for a connection.
Transitions are any-state to CLOSED, any state to state+1, FOOTERS_SENT to INIT. CLOSED is the terminal state and 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 CLOSED or INIT requires the write to be complete.
Definition at line 275 of file internal.h.
enum MHD_PollActions |
Events we care about with respect to poll/select for file descriptors.
MHD_POLL_ACTION_NOTHING |
No event interests us. |
MHD_POLL_ACTION_IN |
We would like to read. |
MHD_POLL_ACTION_OUT |
We would like to write. |
Definition at line 62 of file internal.h.
size_t MHD_http_unescape | ( | void * | cls, |
struct MHD_Connection * | connection, | ||
char * | val | ||
) |
Process escape sequences ('+'=space, HH) Updates val in place; the result should be UTF-8 encoded and cannot be larger than the input. The result must also still be 0-terminated.
cls | closure (use NULL) |
connection | handle to connection, not used |
Definition at line 118 of file internal.c.
References SSCANF.
Referenced by MHD_start_daemon_va(), and post_process_urlencoded().
Handler for fatal errors.
Definition at line 106 of file daemon.c.
Referenced by build_header_response(), MHD_accept_connection(), MHD_create_post_processor(), MHD_fini(), MHD_init(), MHD_set_panic_func(), MHD_start_daemon_va(), post_process_multipart(), post_process_urlencoded(), process_request_body(), and try_ready_normal_body().
void* mhd_panic_cls |
Closure argument for "mhd_panic".
Definition at line 111 of file daemon.c.
Referenced by build_header_response(), MHD_accept_connection(), MHD_create_post_processor(), MHD_fini(), MHD_init(), MHD_set_panic_func(), MHD_start_daemon_va(), post_process_multipart(), post_process_urlencoded(), process_request_body(), and try_ready_normal_body().