#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <stdarg.h>
#include <errno.h>
#include <fcntl.h>
#include <signal.h>
#include "config.h"
#include "plibc.h"
#include "microhttpd.h"
#include <sys/mman.h>
#include <netdb.h>
#include <netinet/in.h>
#include <pthread.h>
Go to the source code of this file.
Data Structures | |
struct | MHD_HTTP_Header |
struct | MHD_Response |
struct | MHD_Connection |
struct | MHD_Daemon |
Defines | |
#define | MAX(a, b) ((a)<(b)) ? (b) : (a) |
#define | MIN(a, b) ((a)<(b)) ? (a) : (b) |
#define | MHD_BUF_INC_SIZE 2048 |
Enumerations | |
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 } |
Functions | |
void | MHD_http_unescape (char *val) |
Definition in file internal.h.
#define MAX | ( | a, | |||
b | ) | ((a)<(b)) ? (b) : (a) |
Definition at line 52 of file internal.h.
#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 60 of file internal.h.
Referenced by get_next_header_line(), MHD_create_response_from_callback(), and try_grow_read_buffer().
#define MIN | ( | a, | |||
b | ) | ((a)<(b)) ? (a) : (b) |
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 177 of file internal.h.
void MHD_http_unescape | ( | char * | val | ) |
Process escape sequences ('+'=space, HH). Updates val in place.
Process escape sequences ('+'=space, HH)
Definition at line 51 of file internal.c.
Referenced by parse_arguments(), and post_process_urlencoded().