#include <sys/types.h>
#include <sys/stat.h>
#include <errno.h>
#include <signal.h>
#include <fcntl.h>
#include <time.h>
#include <stdlib.h>
#include <stdarg.h>
#include <assert.h>
#include <string.h>
#include <ctype.h>
#include <limits.h>
#include <stddef.h>
#include <stdio.h>
#include <sys/wait.h>
#include <sys/socket.h>
#include <sys/select.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/time.h>
#include <stdint.h>
#include <inttypes.h>
#include <netdb.h>
#include <pwd.h>
#include <unistd.h>
#include <dirent.h>
#include <dlfcn.h>
#include <pthread.h>
#include "mongoose.h"
Go to the source code of this file.
Classes | |
struct | ah |
struct | cgi_env_block |
struct | de |
struct | MD5Context |
struct | mg_connection |
struct | mg_context |
struct | mgstat |
struct | socket |
struct | ssl_func |
struct | usa |
struct | vec |
Defines | |
#define | _LARGEFILE_SOURCE |
#define | _XOPEN_SOURCE 600 |
#define | ARRAY_SIZE(array) (sizeof(array) / sizeof(array[0])) |
#define | CGI_ENVIRONMENT_SIZE 4096 |
#define | closesocket(a) close(a) |
#define | CRYPTO_LIB "libcrypto.so" |
#define | CRYPTO_LOCK 1 |
#define | CRYPTO_num_locks (* (int (*)(void)) crypto_sw[0].ptr) |
#define | CRYPTO_set_id_callback (* (void (*)(unsigned long (*)(void))) crypto_sw[2].ptr) |
#define | CRYPTO_set_locking_callback (* (void (*)(void (*)(int, int, const char *, int))) crypto_sw[1].ptr) |
#define | DEBUG_TRACE(x) |
#define | DIRSEP '/' |
#define | ENTRIES_PER_CONFIG_OPTION 3 |
#define | ERR_error_string (* (char * (*)(unsigned long, char *)) ssl_sw[4].ptr) |
#define | ERR_get_error (* (unsigned long (*)(void)) ssl_sw[3].ptr) |
#define | ERRNO errno |
#define | F1(x, y, z) (z ^ (x & (y ^ z))) |
#define | F2(x, y, z) F1(z, x, y) |
#define | F3(x, y, z) (x ^ y ^ z) |
#define | F4(x, y, z) (y ^ (x | ~z)) |
#define | HEXTOI(x) (isdigit(x) ? x - '0' : x - 'W') |
#define | INT64_FMT PRId64 |
#define | INVALID_SOCKET (-1) |
#define | IS_DIRSEP_CHAR(c) ((c) == '/') |
#define | MAX_CGI_ENVIR_VARS 64 |
#define | MD5STEP(f, w, x, y, z, data, s) ( w += f(x, y, z) + data, w = w<<s | w>>(32-s), w += x ) |
#define | mg_fopen(x, y) fopen(x, y) |
#define | mg_mkdir(x, y) mkdir(x, y) |
#define | mg_remove(x) remove(x) |
#define | mg_rename(x, y) rename(x, y) |
#define | MONGOOSE_VERSION "3.0" |
#define | O_BINARY 0 |
#define | PASSWORDS_FILE_NAME ".htpasswd" |
#define | SSL_accept (* (int (*)(SSL *)) ssl_sw[1].ptr) |
#define | SSL_connect (* (int (*)(SSL *)) ssl_sw[2].ptr) |
#define | SSL_CTX_free (* (void (*)(SSL_CTX *)) ssl_sw[14].ptr) |
#define | SSL_CTX_new (* (SSL_CTX * (*)(SSL_METHOD *)) ssl_sw[8].ptr) |
#define | SSL_CTX_set_default_passwd_cb (* (void (*)(SSL_CTX *, mg_callback_t)) ssl_sw[13].ptr) |
#define | SSL_CTX_use_certificate_chain_file (* (int (*)(SSL_CTX *, const char *)) ssl_sw[16].ptr) |
#define | SSL_CTX_use_certificate_file |
#define | SSL_CTX_use_PrivateKey_file |
#define | SSL_ERROR_WANT_READ 2 |
#define | SSL_ERROR_WANT_WRITE 3 |
#define | SSL_FILETYPE_PEM 1 |
#define | SSL_free (* (void (*)(SSL *)) ssl_sw[0].ptr) |
#define | SSL_get_error (* (int (*)(SSL *, int)) ssl_sw[5]) |
#define | SSL_LIB "libssl.so" |
#define | SSL_library_init (* (int (*)(void)) ssl_sw[10].ptr) |
#define | SSL_load_error_strings (* (void (*)(void)) ssl_sw[15].ptr) |
#define | SSL_new (* (SSL * (*)(SSL_CTX *)) ssl_sw[7].ptr) |
#define | SSL_read (* (int (*)(SSL *, void *, int)) ssl_sw[3].ptr) |
#define | SSL_set_fd (* (int (*)(SSL *, SOCKET)) ssl_sw[6].ptr) |
#define | SSL_write (* (int (*)(SSL *, const void *,int)) ssl_sw[4].ptr) |
#define | SSLv23_server_method (* (SSL_METHOD * (*)(void)) ssl_sw[9].ptr) |
#define | WINCDECL |
Typedefs | |
typedef struct MD5Context | MD5_CTX |
typedef void *(* | mg_thread_func_t )(void *) |
typedef int | SOCKET |
typedef struct ssl_st | SSL |
typedef struct ssl_ctx_st | SSL_CTX |
typedef struct ssl_method_st | SSL_METHOD |
Enumerations | |
enum | { CGI_EXTENSIONS, CGI_ENVIRONMENT, PUT_DELETE_PASSWORDS_FILE, CGI_INTERPRETER, PROTECT_URI, AUTHENTICATION_DOMAIN, SSI_EXTENSIONS, ACCESS_LOG_FILE, SSL_CHAIN_FILE, ENABLE_DIRECTORY_LISTING, ERROR_LOG_FILE, GLOBAL_PASSWORDS_FILE, INDEX_FILES, ENABLE_KEEP_ALIVE, ACCESS_CONTROL_LIST, MAX_REQUEST_SIZE, EXTRA_MIME_TYPES, LISTENING_PORTS, DOCUMENT_ROOT, SSL_CERTIFICATE, NUM_THREADS, RUN_AS_USER, MAX_THREADS, NUM_OPTIONS } |
Functions | |
static void | accept_new_connection (const struct socket *listener, struct mg_context *ctx) |
static void | add_to_set (SOCKET fd, fd_set *set, int *max_fd) |
static char * | addenv (struct cgi_env_block *block, const char *fmt,...) |
static int | authorize (struct mg_connection *conn, FILE *fp) |
static void | bin2str (char *to, const unsigned char *p, size_t len) |
static void | byteReverse (unsigned char *buf, unsigned longs) |
static void * | call_user (struct mg_connection *conn, enum mg_event event) |
static int | check_acl (struct mg_context *ctx, const struct usa *usa) |
static int | check_authorization (struct mg_connection *conn, const char *path) |
static int | check_password (const char *method, const char *ha1, const char *uri, const char *nonce, const char *nc, const char *cnonce, const char *qop, const char *response) |
static void | close_all_listening_sockets (struct mg_context *ctx) |
static void | close_connection (struct mg_connection *conn) |
static void | close_socket_gracefully (SOCKET sock) |
static int WINCDECL | compare_dir_entries (const void *p1, const void *p2) |
static int | consume_socket (struct mg_context *ctx, struct socket *sp) |
static void | convert_uri_to_file_name (struct mg_connection *conn, const char *uri, char *buf, size_t buf_len) |
static void | cry (struct mg_connection *conn, const char *fmt,...) |
static void | discard_current_request_from_buffer (struct mg_connection *conn) |
static void | do_ssi_exec (struct mg_connection *conn, char *tag) |
static void | do_ssi_include (struct mg_connection *conn, const char *ssi, char *tag, int include_level) |
static struct mg_connection * | fc (struct mg_context *ctx) |
static int | forward_body_data (struct mg_connection *conn, FILE *fp, SOCKET sock, SSL *ssl) |
static void | free_context (struct mg_context *ctx) |
static int | get_document_root (const struct mg_connection *conn, struct vec *document_root) |
static const char * | get_header (const struct mg_request_info *ri, const char *name) |
static void | get_mime_type (struct mg_context *ctx, const char *path, struct vec *vec) |
static int | get_option_index (const char *name) |
static int | get_request_len (const char *buf, int buflen) |
static void | handle_cgi_request (struct mg_connection *conn, const char *prog) |
static void | handle_directory_request (struct mg_connection *conn, const char *dir) |
static void | handle_file_request (struct mg_connection *conn, const char *path, struct mgstat *stp) |
static void | handle_proxy_request (struct mg_connection *conn) |
static void | handle_request (struct mg_connection *conn) |
static void | handle_ssi_file_request (struct mg_connection *conn, const char *path) |
static int | is_authorized_for_put (struct mg_connection *conn) |
static int | is_not_modified (const struct mg_connection *conn, const struct mgstat *stp) |
static int | is_valid_http_method (const char *method) |
static int | is_valid_uri (const char *uri) |
static int | isbyte (int n) |
static int | load_dll (struct mg_context *ctx, const char *dll_name, struct ssl_func *sw) |
static void | log_access (const struct mg_connection *conn) |
static void | log_header (const struct mg_connection *conn, const char *header, FILE *fp) |
static int | lowercase (const char *s) |
static void | master_thread (struct mg_context *ctx) |
static int | match_extension (const char *path, const char *ext_list) |
static void | MD5Final (unsigned char digest[16], MD5_CTX *ctx) |
static void | MD5Init (MD5_CTX *ctx) |
static void | MD5Transform (uint32_t buf[4], uint32_t const in[16]) |
static void | MD5Update (MD5_CTX *ctx, unsigned char const *buf, unsigned len) |
static struct mg_connection * | mg_connect (struct mg_connection *conn, const char *host, int port, int use_ssl) |
int | mg_get_cookie (const struct mg_connection *conn, const char *cookie_name, char *dst, size_t dst_size) |
const char * | mg_get_header (const struct mg_connection *conn, const char *name) |
const char * | mg_get_option (const struct mg_context *ctx, const char *name) |
const char ** | mg_get_valid_option_names (void) |
int | mg_get_var (const char *buf, size_t buf_len, const char *name, char *dst, size_t dst_len) |
void | mg_md5 (char *buf,...) |
int | mg_modify_passwords_file (struct mg_context *ctx, const char *fname, const char *user, const char *pass) |
int | mg_printf (struct mg_connection *conn, const char *fmt,...) |
int | mg_read (struct mg_connection *conn, void *buf, size_t len) |
static int | mg_snprintf (struct mg_connection *conn, char *buf, size_t buflen, const char *fmt,...) |
struct mg_context * | mg_start (mg_callback_t user_callback, void *user_data, const char **options) |
static int | mg_stat (const char *path, struct mgstat *stp) |
void | mg_stop (struct mg_context *ctx) |
static int | mg_strcasecmp (const char *s1, const char *s2) |
static char * | mg_strdup (const char *str) |
static void | mg_strlcpy (register char *dst, register const char *src, size_t n) |
static int | mg_strncasecmp (const char *s1, const char *s2, size_t len) |
static char * | mg_strndup (const char *ptr, size_t len) |
const char * | mg_version (void) |
static int | mg_vsnprintf (struct mg_connection *conn, char *buf, size_t buflen, const char *fmt, va_list ap) |
int | mg_write (struct mg_connection *conn, const void *buf, size_t len) |
static int | month_number_to_month_name (const char *s) |
static const char * | next_option (const char *list, struct vec *val, struct vec *eq_val) |
static FILE * | open_auth_file (struct mg_connection *conn, const char *path) |
static int | parse_auth_header (struct mg_connection *conn, char *buf, size_t buf_size, struct ah *ah) |
static time_t | parse_date_string (const char *s) |
static void | parse_http_headers (char **buf, struct mg_request_info *ri) |
static int | parse_http_request (char *buf, struct mg_request_info *ri) |
static int | parse_port_string (const struct vec *vec, struct socket *so) |
static int | parse_range_header (const char *header, int64_t *a, int64_t *b) |
static int | parse_url (const char *url, char *host, int *port) |
static void | prepare_cgi_environment (struct mg_connection *conn, const char *prog, struct cgi_env_block *blk) |
static void | print_dir_entry (struct de *de) |
static void | process_new_connection (struct mg_connection *conn) |
static void | produce_socket (struct mg_context *ctx, const struct socket *sp) |
static int | pull (FILE *fp, SOCKET sock, SSL *ssl, char *buf, int len) |
static int64_t | push (FILE *fp, SOCKET sock, SSL *ssl, const char *buf, int64_t len) |
static int | put_dir (const char *path) |
static void | put_file (struct mg_connection *conn, const char *path) |
static int | read_request (FILE *fp, SOCKET sock, SSL *ssl, char *buf, int bufsiz, int *nread) |
static void | remove_double_dots_and_double_slashes (char *s) |
static void | reset_per_request_attributes (struct mg_connection *conn) |
static void | send_authorization_request (struct mg_connection *conn) |
static void | send_file_data (struct mg_connection *conn, FILE *fp, int64_t len) |
static void | send_http_error (struct mg_connection *conn, int status, const char *reason, const char *fmt,...) |
static void | send_ssi_file (struct mg_connection *, const char *, FILE *, int) |
static int | set_acl_option (struct mg_context *ctx) |
static void | set_close_on_exec (int fd) |
static int | set_gpass_option (struct mg_context *ctx) |
static int | set_non_blocking_mode (SOCKET sock) |
static int | set_ports_option (struct mg_context *ctx) |
static int | set_ssl_option (struct mg_context *ctx) |
static int | set_uid_option (struct mg_context *ctx) |
static int | should_keep_alive (const struct mg_connection *conn) |
static char * | skip (char **buf, const char *delimiters) |
static char * | skip_quoted (char **buf, const char *delimiters, const char *whitespace, char quotechar) |
static pid_t | spawn_process (struct mg_connection *conn, const char *prog, char *envblk, char *envp[], int fd_stdin, int fd_stdout, const char *dir) |
static const char * | ssl_error (void) |
static unsigned long | ssl_id_callback (void) |
static void | ssl_locking_callback (int mode, int mutex_num, const char *file, int line) |
static int | sslize (struct mg_connection *conn, int(*func)(SSL *)) |
static int | start_thread (struct mg_context *ctx, mg_thread_func_t func, void *param) |
static int | substitute_index_file (struct mg_connection *conn, char *path, size_t path_len, struct mgstat *stp) |
static const char * | suggest_connection_header (const struct mg_connection *conn) |
static size_t | url_decode (const char *src, size_t src_len, char *dst, size_t dst_len, int is_form_url_encoded) |
static void | url_encode (const char *src, char *dst, size_t dst_len) |
static void | worker_thread (struct mg_context *ctx) |
Variables | |
struct { | |
size_t ext_len | |
const char * extension | |
const char * mime_type | |
size_t mime_type_len | |
} | builtin_mime_types [] |
static const char * | config_options [] |
static struct ssl_func | crypto_sw [] |
static const char * | http_500_error = "Internal Server Error" |
static const char * | month_names [] |
static pthread_mutex_t * | ssl_mutexes |
static struct ssl_func | ssl_sw [] |
#define _LARGEFILE_SOURCE |
Definition at line 25 of file mongoose.c.
#define _XOPEN_SOURCE 600 |
Definition at line 24 of file mongoose.c.
#define ARRAY_SIZE | ( | array | ) | (sizeof(array) / sizeof(array[0])) |
Definition at line 213 of file mongoose.c.
#define CGI_ENVIRONMENT_SIZE 4096 |
Definition at line 211 of file mongoose.c.
#define closesocket | ( | a | ) | close(a) |
Definition at line 194 of file mongoose.c.
#define CRYPTO_LIB "libcrypto.so" |
Definition at line 188 of file mongoose.c.
#define CRYPTO_LOCK 1 |
Definition at line 249 of file mongoose.c.
#define CRYPTO_num_locks (* (int (*)(void)) crypto_sw[0].ptr) |
Definition at line 303 of file mongoose.c.
#define CRYPTO_set_id_callback (* (void (*)(unsigned long (*)(void))) crypto_sw[2].ptr) |
Definition at line 306 of file mongoose.c.
#define CRYPTO_set_locking_callback (* (void (*)(void (*)(int, int, const char *, int))) crypto_sw[1].ptr) |
Definition at line 304 of file mongoose.c.
#define DEBUG_TRACE | ( | x | ) |
Definition at line 227 of file mongoose.c.
#define DIRSEP '/' |
Definition at line 191 of file mongoose.c.
#define ENTRIES_PER_CONFIG_OPTION 3 |
Definition at line 423 of file mongoose.c.
#define ERR_error_string (* (char * (*)(unsigned long, char *)) ssl_sw[4].ptr) |
Definition at line 309 of file mongoose.c.
#define ERR_get_error (* (unsigned long (*)(void)) ssl_sw[3].ptr) |
Definition at line 308 of file mongoose.c.
#define ERRNO errno |
Definition at line 199 of file mongoose.c.
#define F1 | ( | x, | |
y, | |||
z | |||
) | (z ^ (x & (y ^ z))) |
Definition at line 1818 of file mongoose.c.
Definition at line 1819 of file mongoose.c.
#define F3 | ( | x, | |
y, | |||
z | |||
) | (x ^ y ^ z) |
Definition at line 1820 of file mongoose.c.
#define F4 | ( | x, | |
y, | |||
z | |||
) | (y ^ (x | ~z)) |
Definition at line 1821 of file mongoose.c.
#define HEXTOI | ( | x | ) | (isdigit(x) ? x - '0' : x - 'W') |
#define INT64_FMT PRId64 |
Definition at line 201 of file mongoose.c.
#define INVALID_SOCKET (-1) |
Definition at line 200 of file mongoose.c.
#define IS_DIRSEP_CHAR | ( | c | ) | ((c) == '/') |
Definition at line 192 of file mongoose.c.
#define MAX_CGI_ENVIR_VARS 64 |
Definition at line 212 of file mongoose.c.
Definition at line 1823 of file mongoose.c.
#define mg_fopen | ( | x, | |
y | |||
) | fopen(x, y) |
Definition at line 195 of file mongoose.c.
#define mg_mkdir | ( | x, | |
y | |||
) | mkdir(x, y) |
Definition at line 196 of file mongoose.c.
#define mg_remove | ( | x | ) | remove(x) |
Definition at line 197 of file mongoose.c.
#define mg_rename | ( | x, | |
y | |||
) | rename(x, y) |
Definition at line 198 of file mongoose.c.
#define MONGOOSE_VERSION "3.0" |
Definition at line 209 of file mongoose.c.
#define O_BINARY 0 |
Definition at line 193 of file mongoose.c.
#define PASSWORDS_FILE_NAME ".htpasswd" |
Definition at line 210 of file mongoose.c.
#define SSL_accept (* (int (*)(SSL *)) ssl_sw[1].ptr) |
Definition at line 282 of file mongoose.c.
#define SSL_connect (* (int (*)(SSL *)) ssl_sw[2].ptr) |
Definition at line 283 of file mongoose.c.
#define SSL_CTX_free (* (void (*)(SSL_CTX *)) ssl_sw[14].ptr) |
Definition at line 298 of file mongoose.c.
#define SSL_CTX_new (* (SSL_CTX * (*)(SSL_METHOD *)) ssl_sw[8].ptr) |
Definition at line 289 of file mongoose.c.
#define SSL_CTX_set_default_passwd_cb (* (void (*)(SSL_CTX *, mg_callback_t)) ssl_sw[13].ptr) |
Definition at line 296 of file mongoose.c.
#define SSL_CTX_use_certificate_chain_file (* (int (*)(SSL_CTX *, const char *)) ssl_sw[16].ptr) |
Definition at line 300 of file mongoose.c.
#define SSL_CTX_use_certificate_file |
Definition at line 294 of file mongoose.c.
#define SSL_CTX_use_PrivateKey_file |
Definition at line 292 of file mongoose.c.
#define SSL_ERROR_WANT_READ 2 |
Definition at line 246 of file mongoose.c.
#define SSL_ERROR_WANT_WRITE 3 |
Definition at line 247 of file mongoose.c.
#define SSL_FILETYPE_PEM 1 |
Definition at line 248 of file mongoose.c.
Definition at line 281 of file mongoose.c.
#define SSL_get_error (* (int (*)(SSL *, int)) ssl_sw[5]) |
Definition at line 286 of file mongoose.c.
#define SSL_LIB "libssl.so" |
Definition at line 185 of file mongoose.c.
#define SSL_library_init (* (int (*)(void)) ssl_sw[10].ptr) |
Definition at line 291 of file mongoose.c.
#define SSL_load_error_strings (* (void (*)(void)) ssl_sw[15].ptr) |
Definition at line 299 of file mongoose.c.
Definition at line 284 of file mongoose.c.
#define SSL_set_fd (* (int (*)(SSL *, SOCKET)) ssl_sw[6].ptr) |
Definition at line 287 of file mongoose.c.
Definition at line 285 of file mongoose.c.
#define SSLv23_server_method (* (SSL_METHOD * (*)(void)) ssl_sw[9].ptr) |
Definition at line 290 of file mongoose.c.
#define WINCDECL |
Definition at line 203 of file mongoose.c.
typedef struct MD5Context MD5_CTX |
typedef void*(* mg_thread_func_t)(void *) |
Definition at line 235 of file mongoose.c.
typedef int SOCKET |
Definition at line 202 of file mongoose.c.
typedef struct ssl_st SSL |
Definition at line 242 of file mongoose.c.
typedef struct ssl_ctx_st SSL_CTX |
Definition at line 244 of file mongoose.c.
typedef struct ssl_method_st SSL_METHOD |
Definition at line 243 of file mongoose.c.
anonymous enum |
Definition at line 386 of file mongoose.c.
static void accept_new_connection | ( | const struct socket * | listener, |
struct mg_context * | ctx | ||
) | [static] |
Definition at line 3955 of file mongoose.c.
static void add_to_set | ( | SOCKET | fd, |
fd_set * | set, | ||
int * | max_fd | ||
) | [static] |
Definition at line 3477 of file mongoose.c.
static char* addenv | ( | struct cgi_env_block * | block, |
const char * | fmt, | ||
... | |||
) | [static] |
Definition at line 2760 of file mongoose.c.
static int authorize | ( | struct mg_connection * | conn, |
FILE * | fp | ||
) | [static] |
Definition at line 2148 of file mongoose.c.
static void bin2str | ( | char * | to, |
const unsigned char * | p, | ||
size_t | len | ||
) | [static] |
Definition at line 1987 of file mongoose.c.
static void byteReverse | ( | unsigned char * | buf, |
unsigned | longs | ||
) | [static] |
Definition at line 1807 of file mongoose.c.
static void* call_user | ( | struct mg_connection * | conn, |
enum mg_event | event | ||
) | [static] |
Definition at line 468 of file mongoose.c.
static int check_acl | ( | struct mg_context * | ctx, |
const struct usa * | usa | ||
) | [static] |
Definition at line 3431 of file mongoose.c.
static int check_authorization | ( | struct mg_connection * | conn, |
const char * | path | ||
) | [static] |
Definition at line 2174 of file mongoose.c.
static int check_password | ( | const char * | method, |
const char * | ha1, | ||
const char * | uri, | ||
const char * | nonce, | ||
const char * | nc, | ||
const char * | cnonce, | ||
const char * | qop, | ||
const char * | response | ||
) | [static] |
Definition at line 2017 of file mongoose.c.
static void close_all_listening_sockets | ( | struct mg_context * | ctx | ) | [static] |
Definition at line 3288 of file mongoose.c.
static void close_connection | ( | struct mg_connection * | conn | ) | [static] |
Definition at line 3674 of file mongoose.c.
static void close_socket_gracefully | ( | SOCKET | sock | ) | [static] |
Definition at line 3653 of file mongoose.c.
static int WINCDECL compare_dir_entries | ( | const void * | p1, |
const void * | p2 | ||
) | [static] |
Definition at line 2360 of file mongoose.c.
static int consume_socket | ( | struct mg_context * | ctx, |
struct socket * | sp | ||
) | [static] |
Definition at line 3836 of file mongoose.c.
static void convert_uri_to_file_name | ( | struct mg_connection * | conn, |
const char * | uri, | ||
char * | buf, | ||
size_t | buf_len | ||
) | [static] |
Definition at line 1556 of file mongoose.c.
static void cry | ( | struct mg_connection * | conn, |
const char * | fmt, | ||
... | |||
) | [static] |
Definition at line 498 of file mongoose.c.
static void discard_current_request_from_buffer | ( | struct mg_connection * | conn | ) | [static] |
Definition at line 3685 of file mongoose.c.
static void do_ssi_exec | ( | struct mg_connection * | conn, |
char * | tag | ||
) | [static] |
Definition at line 3118 of file mongoose.c.
static void do_ssi_include | ( | struct mg_connection * | conn, |
const char * | ssi, | ||
char * | tag, | ||
int | include_level | ||
) | [static] |
Definition at line 3070 of file mongoose.c.
static struct mg_connection* fc | ( | struct mg_context * | ctx | ) | [static, read] |
Definition at line 551 of file mongoose.c.
static int forward_body_data | ( | struct mg_connection * | conn, |
FILE * | fp, | ||
SOCKET | sock, | ||
SSL * | ssl | ||
) | [static] |
Definition at line 2685 of file mongoose.c.
static void free_context | ( | struct mg_context * | ctx | ) | [static] |
Definition at line 4039 of file mongoose.c.
static int get_document_root | ( | const struct mg_connection * | conn, |
struct vec * | document_root | ||
) | [static] |
Definition at line 1535 of file mongoose.c.
static const char* get_header | ( | const struct mg_request_info * | ri, |
const char * | name | ||
) | [static] |
Definition at line 697 of file mongoose.c.
static void get_mime_type | ( | struct mg_context * | ctx, |
const char * | path, | ||
struct vec * | vec | ||
) | [static] |
Definition at line 1761 of file mongoose.c.
static int get_option_index | ( | const char * | name | ) | [static] |
Definition at line 474 of file mongoose.c.
static int get_request_len | ( | const char * | buf, |
int | buflen | ||
) | [static] |
Definition at line 1618 of file mongoose.c.
static void handle_cgi_request | ( | struct mg_connection * | conn, |
const char * | prog | ||
) | [static] |
Definition at line 2887 of file mongoose.c.
static void handle_directory_request | ( | struct mg_connection * | conn, |
const char * | dir | ||
) | [static] |
Definition at line 2386 of file mongoose.c.
static void handle_file_request | ( | struct mg_connection * | conn, |
const char * | path, | ||
struct mgstat * | stp | ||
) | [static] |
Definition at line 2503 of file mongoose.c.
static void handle_proxy_request | ( | struct mg_connection * | conn | ) | [static] |
Definition at line 3726 of file mongoose.c.
static void handle_request | ( | struct mg_connection * | conn | ) | [static] |
Definition at line 3219 of file mongoose.c.
static void handle_ssi_file_request | ( | struct mg_connection * | conn, |
const char * | path | ||
) | [static] |
Definition at line 3198 of file mongoose.c.
static int is_authorized_for_put | ( | struct mg_connection * | conn | ) | [static] |
Definition at line 2218 of file mongoose.c.
static int is_not_modified | ( | const struct mg_connection * | conn, |
const struct mgstat * | stp | ||
) | [static] |
Definition at line 2679 of file mongoose.c.
static int is_valid_http_method | ( | const char * | method | ) | [static] |
Definition at line 2579 of file mongoose.c.
static int is_valid_uri | ( | const char * | uri | ) | [static] |
Definition at line 3777 of file mongoose.c.
static int isbyte | ( | int | n | ) | [static] |
Definition at line 3425 of file mongoose.c.
static int load_dll | ( | struct mg_context * | ctx, |
const char * | dll_name, | ||
struct ssl_func * | sw | ||
) | [static] |
Definition at line 3528 of file mongoose.c.
static void log_access | ( | const struct mg_connection * | conn | ) | [static] |
Definition at line 3389 of file mongoose.c.
static void log_header | ( | const struct mg_connection * | conn, |
const char * | header, | ||
FILE * | fp | ||
) | [static] |
Definition at line 3378 of file mongoose.c.
static int lowercase | ( | const char * | s | ) | [static] |
Definition at line 568 of file mongoose.c.
static void master_thread | ( | struct mg_context * | ctx | ) | [static] |
Definition at line 3979 of file mongoose.c.
static int match_extension | ( | const char * | path, |
const char * | ext_list | ||
) | [static] |
Definition at line 754 of file mongoose.c.
Definition at line 1956 of file mongoose.c.
Definition at line 1828 of file mongoose.c.
static void MD5Transform | ( | uint32_t | buf[4], |
uint32_t const | in[16] | ||
) | [static] |
Definition at line 1838 of file mongoose.c.
Definition at line 1920 of file mongoose.c.
static struct mg_connection* mg_connect | ( | struct mg_connection * | conn, |
const char * | host, | ||
int | port, | ||
int | use_ssl | ||
) | [static, read] |
Definition at line 1578 of file mongoose.c.
int mg_get_cookie | ( | const struct mg_connection * | conn, |
const char * | cookie_name, | ||
char * | dst, | ||
size_t | dst_size | ||
) |
Definition at line 1498 of file mongoose.c.
const char* mg_get_header | ( | const struct mg_connection * | conn, |
const char * | name | ||
) |
Definition at line 708 of file mongoose.c.
const char* mg_get_option | ( | const struct mg_context * | ctx, |
const char * | name | ||
) |
Definition at line 486 of file mongoose.c.
const char** mg_get_valid_option_names | ( | void | ) |
Definition at line 464 of file mongoose.c.
int mg_get_var | ( | const char * | buf, |
size_t | buf_len, | ||
const char * | name, | ||
char * | dst, | ||
size_t | dst_len | ||
) |
Definition at line 1462 of file mongoose.c.
void mg_md5 | ( | char * | buf, |
... | |||
) |
Definition at line 1998 of file mongoose.c.
int mg_modify_passwords_file | ( | struct mg_context * | ctx, |
const char * | fname, | ||
const char * | user, | ||
const char * | pass | ||
) |
Definition at line 2233 of file mongoose.c.
int mg_printf | ( | struct mg_connection * | conn, |
const char * | fmt, | ||
... | |||
) |
Definition at line 1415 of file mongoose.c.
int mg_read | ( | struct mg_connection * | conn, |
void * | buf, | ||
size_t | len | ||
) |
Definition at line 1361 of file mongoose.c.
static int mg_snprintf | ( | struct mg_connection * | conn, |
char * | buf, | ||
size_t | buflen, | ||
const char * | fmt, | ||
... | |||
) | [static] |
Definition at line 633 of file mongoose.c.
struct mg_context* mg_start | ( | mg_callback_t | user_callback, |
void * | user_data, | ||
const char ** | options | ||
) | [read] |
Definition at line 4076 of file mongoose.c.
Definition at line 1213 of file mongoose.c.
void mg_stop | ( | struct mg_context * | ctx | ) |
Definition at line 4062 of file mongoose.c.
static int mg_strcasecmp | ( | const char * | s1, |
const char * | s2 | ||
) | [static] |
Definition at line 583 of file mongoose.c.
static char* mg_strdup | ( | const char * | str | ) | [static] |
Definition at line 603 of file mongoose.c.
static void mg_strlcpy | ( | register char * | dst, |
register const char * | src, | ||
size_t | n | ||
) | [static] |
Definition at line 561 of file mongoose.c.
static int mg_strncasecmp | ( | const char * | s1, |
const char * | s2, | ||
size_t | len | ||
) | [static] |
Definition at line 572 of file mongoose.c.
static char* mg_strndup | ( | const char * | ptr, |
size_t | len | ||
) | [static] |
Definition at line 593 of file mongoose.c.
const char* mg_version | ( | void | ) |
Definition at line 557 of file mongoose.c.
static int mg_vsnprintf | ( | struct mg_connection * | conn, |
char * | buf, | ||
size_t | buflen, | ||
const char * | fmt, | ||
va_list | ap | ||
) | [static] |
Definition at line 611 of file mongoose.c.
int mg_write | ( | struct mg_connection * | conn, |
const void * | buf, | ||
size_t | len | ||
) |
Definition at line 1410 of file mongoose.c.
static int month_number_to_month_name | ( | const char * | s | ) | [static] |
Definition at line 1639 of file mongoose.c.
static const char* next_option | ( | const char * | list, |
struct vec * | val, | ||
struct vec * | eq_val | ||
) | [static] |
Definition at line 718 of file mongoose.c.
static FILE* open_auth_file | ( | struct mg_connection * | conn, |
const char * | path | ||
) | [static] |
Definition at line 2046 of file mongoose.c.
static int parse_auth_header | ( | struct mg_connection * | conn, |
char * | buf, | ||
size_t | buf_size, | ||
struct ah * | ah | ||
) | [static] |
Definition at line 2081 of file mongoose.c.
static time_t parse_date_string | ( | const char * | s | ) | [static] |
Definition at line 1650 of file mongoose.c.
static void parse_http_headers | ( | char ** | buf, |
struct mg_request_info * | ri | ||
) | [static] |
Definition at line 2567 of file mongoose.c.
static int parse_http_request | ( | char * | buf, |
struct mg_request_info * | ri | ||
) | [static] |
Definition at line 2586 of file mongoose.c.
static int parse_port_string | ( | const struct vec * | vec, |
struct socket * | so | ||
) | [static] |
Definition at line 3299 of file mongoose.c.
static int parse_range_header | ( | const char * | header, |
int64_t * | a, | ||
int64_t * | b | ||
) | [static] |
Definition at line 2499 of file mongoose.c.
static int parse_url | ( | const char * | url, |
char * | host, | ||
int * | port | ||
) | [static] |
Definition at line 3705 of file mongoose.c.
static void prepare_cgi_environment | ( | struct mg_connection * | conn, |
const char * | prog, | ||
struct cgi_env_block * | blk | ||
) | [static] |
Definition at line 2789 of file mongoose.c.
static void print_dir_entry | ( | struct de * | de | ) | [static] |
Definition at line 2325 of file mongoose.c.
static void process_new_connection | ( | struct mg_connection * | conn | ) | [static] |
Definition at line 3783 of file mongoose.c.
static void produce_socket | ( | struct mg_context * | ctx, |
const struct socket * | sp | ||
) | [static] |
Definition at line 3937 of file mongoose.c.
Definition at line 1342 of file mongoose.c.
Definition at line 1310 of file mongoose.c.
static int put_dir | ( | const char * | path | ) | [static] |
Definition at line 3009 of file mongoose.c.
static void put_file | ( | struct mg_connection * | conn, |
const char * | path | ||
) | [static] |
Definition at line 3035 of file mongoose.c.
static int read_request | ( | FILE * | fp, |
SOCKET | sock, | ||
SSL * | ssl, | ||
char * | buf, | ||
int | bufsiz, | ||
int * | nread | ||
) | [static] |
Definition at line 2613 of file mongoose.c.
static void remove_double_dots_and_double_slashes | ( | char * | s | ) | [static] |
Definition at line 1692 of file mongoose.c.
static void reset_per_request_attributes | ( | struct mg_connection * | conn | ) | [static] |
Definition at line 3637 of file mongoose.c.
static void send_authorization_request | ( | struct mg_connection * | conn | ) | [static] |
Definition at line 2208 of file mongoose.c.
static void send_file_data | ( | struct mg_connection * | conn, |
FILE * | fp, | ||
int64_t | len | ||
) | [static] |
Definition at line 2475 of file mongoose.c.
static void send_http_error | ( | struct mg_connection * | conn, |
int | status, | ||
const char * | reason, | ||
const char * | fmt, | ||
... | |||
) | [static] |
Definition at line 784 of file mongoose.c.
static void send_ssi_file | ( | struct mg_connection * | conn, |
const char * | path, | ||
FILE * | fp, | ||
int | include_level | ||
) | [static] |
Definition at line 3133 of file mongoose.c.
static int set_acl_option | ( | struct mg_context * | ctx | ) | [static] |
Definition at line 3632 of file mongoose.c.
static void set_close_on_exec | ( | int | fd | ) | [static] |
Definition at line 1229 of file mongoose.c.
static int set_gpass_option | ( | struct mg_context * | ctx | ) | [static] |
Definition at line 3626 of file mongoose.c.
static int set_non_blocking_mode | ( | SOCKET | sock | ) | [static] |
Definition at line 1298 of file mongoose.c.
static int set_ports_option | ( | struct mg_context * | ctx | ) | [static] |
Definition at line 3330 of file mongoose.c.
static int set_ssl_option | ( | struct mg_context * | ctx | ) | [static] |
Definition at line 3561 of file mongoose.c.
static int set_uid_option | ( | struct mg_context * | ctx | ) | [static] |
Definition at line 3485 of file mongoose.c.
static int should_keep_alive | ( | const struct mg_connection * | conn | ) | [static] |
Definition at line 773 of file mongoose.c.
static char* skip | ( | char ** | buf, |
const char * | delimiters | ||
) | [static] |
Definition at line 691 of file mongoose.c.
static char* skip_quoted | ( | char ** | buf, |
const char * | delimiters, | ||
const char * | whitespace, | ||
char | quotechar | ||
) | [static] |
Definition at line 649 of file mongoose.c.
static pid_t spawn_process | ( | struct mg_connection * | conn, |
const char * | prog, | ||
char * | envblk, | ||
char * | envp[], | ||
int | fd_stdin, | ||
int | fd_stdout, | ||
const char * | dir | ||
) | [static] |
Definition at line 1252 of file mongoose.c.
static const char* ssl_error | ( | void | ) | [static] |
Definition at line 543 of file mongoose.c.
static unsigned long ssl_id_callback | ( | void | ) | [static] |
Definition at line 3523 of file mongoose.c.
static void ssl_locking_callback | ( | int | mode, |
int | mutex_num, | ||
const char * | file, | ||
int | line | ||
) | [static] |
Definition at line 3511 of file mongoose.c.
static int sslize | ( | struct mg_connection * | conn, |
int(*)(SSL *) | func | ||
) | [static] |
Definition at line 1572 of file mongoose.c.
static int start_thread | ( | struct mg_context * | ctx, |
mg_thread_func_t | func, | ||
void * | param | ||
) | [static] |
Definition at line 1233 of file mongoose.c.
static int substitute_index_file | ( | struct mg_connection * | conn, |
char * | path, | ||
size_t | path_len, | ||
struct mgstat * | stp | ||
) | [static] |
Definition at line 2634 of file mongoose.c.
static const char* suggest_connection_header | ( | const struct mg_connection * | conn | ) | [static] |
Definition at line 780 of file mongoose.c.
static size_t url_decode | ( | const char * | src, |
size_t | src_len, | ||
char * | dst, | ||
size_t | dst_len, | ||
int | is_form_url_encoded | ||
) | [static] |
Definition at line 1432 of file mongoose.c.
static void url_encode | ( | const char * | src, |
char * | dst, | ||
size_t | dst_len | ||
) | [static] |
Definition at line 2305 of file mongoose.c.
static void worker_thread | ( | struct mg_context * | ctx | ) | [static] |
Definition at line 3869 of file mongoose.c.
struct { ... } builtin_mime_types[] [static] |
const char* config_options[] [static] |
{ "C", "cgi_extensions", ".cgi,.pl,.php", "E", "cgi_environment", NULL, "G", "put_delete_passwords_file", NULL, "I", "cgi_interpreter", NULL, "P", "protect_uri", NULL, "R", "authentication_domain", "mydomain.com", "S", "ssi_extensions", ".shtml,.shtm", "a", "access_log_file", NULL, "c", "ssl_chain_file", NULL, "d", "enable_directory_listing", "yes", "e", "error_log_file", NULL, "g", "global_passwords_file", NULL, "i", "index_files", "index.html,index.htm,index.cgi", "k", "enable_keep_alive", "no", "l", "access_control_list", NULL, "M", "max_request_size", "16384", "m", "extra_mime_types", NULL, "p", "listening_ports", "8080", "r", "document_root", ".", "s", "ssl_certificate", NULL, "t", "num_threads", "10", "u", "run_as_user", NULL, "T", "max_threads", NULL, NULL }
Definition at line 397 of file mongoose.c.
{ {"CRYPTO_num_locks", NULL}, {"CRYPTO_set_locking_callback", NULL}, {"CRYPTO_set_id_callback", NULL}, {"ERR_get_error", NULL}, {"ERR_error_string", NULL}, {NULL, NULL} }
Definition at line 337 of file mongoose.c.
size_t ext_len |
Definition at line 1714 of file mongoose.c.
const char* extension |
Definition at line 1713 of file mongoose.c.
const char* http_500_error = "Internal Server Error" [static] |
Definition at line 237 of file mongoose.c.
const char* mime_type |
Definition at line 1715 of file mongoose.c.
size_t mime_type_len |
Definition at line 1716 of file mongoose.c.
const char* month_names[] [static] |
{ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }
Definition at line 347 of file mongoose.c.
pthread_mutex_t* ssl_mutexes [static] |
Definition at line 3509 of file mongoose.c.
{ {"SSL_free", NULL}, {"SSL_accept", NULL}, {"SSL_connect", NULL}, {"SSL_read", NULL}, {"SSL_write", NULL}, {"SSL_get_error", NULL}, {"SSL_set_fd", NULL}, {"SSL_new", NULL}, {"SSL_CTX_new", NULL}, {"SSLv23_server_method", NULL}, {"SSL_library_init", NULL}, {"SSL_CTX_use_PrivateKey_file", NULL}, {"SSL_CTX_use_certificate_file",NULL}, {"SSL_CTX_set_default_passwd_cb",NULL}, {"SSL_CTX_free", NULL}, {"SSL_load_error_strings", NULL}, {"SSL_CTX_use_certificate_chain_file", NULL}, {NULL, NULL} }
Definition at line 315 of file mongoose.c.