|
@@ -228,6 +228,7 @@ typedef int SOCKET;
|
|
|
#define CGI_ENVIRONMENT_SIZE 4096
|
|
|
#define MAX_CGI_ENVIR_VARS 64
|
|
|
#define MG_BUF_LEN 8192
|
|
|
+#define MAX_REQUEST_SIZE 16384
|
|
|
#define ARRAY_SIZE(array) (sizeof(array) / sizeof(array[0]))
|
|
|
|
|
|
#ifdef _WIN32
|
|
@@ -427,7 +428,7 @@ struct socket {
|
|
|
// NOTE(lsm): this enum shoulds be in sync with the config_options below.
|
|
|
enum {
|
|
|
CGI_EXTENSIONS, CGI_ENVIRONMENT, PUT_DELETE_PASSWORDS_FILE, CGI_INTERPRETER,
|
|
|
- MAX_REQUEST_SIZE, PROTECT_URI, AUTHENTICATION_DOMAIN, SSI_EXTENSIONS,
|
|
|
+ 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,
|
|
|
EXTRA_MIME_TYPES, LISTENING_PORTS, DOCUMENT_ROOT, SSL_CERTIFICATE,
|
|
@@ -440,7 +441,6 @@ static const char *config_options[] = {
|
|
|
"E", "cgi_environment", NULL,
|
|
|
"G", "put_delete_passwords_file", NULL,
|
|
|
"I", "cgi_interpreter", NULL,
|
|
|
- "M", "max_request_size", "16384",
|
|
|
"P", "protect_uri", NULL,
|
|
|
"R", "authentication_domain", "mydomain.com",
|
|
|
"S", "ssi_pattern", "**.shtml$|**.shtm$",
|
|
@@ -4182,13 +4182,12 @@ static int consume_socket(struct mg_context *ctx, struct socket *sp) {
|
|
|
|
|
|
static void worker_thread(struct mg_context *ctx) {
|
|
|
struct mg_connection *conn;
|
|
|
- int buf_size = atoi(ctx->config[MAX_REQUEST_SIZE]);
|
|
|
|
|
|
- conn = (struct mg_connection *) calloc(1, sizeof(*conn) + buf_size);
|
|
|
+ conn = (struct mg_connection *) calloc(1, sizeof(*conn) + MAX_REQUEST_SIZE);
|
|
|
if (conn == NULL) {
|
|
|
cry(fc(), "%s", "Cannot create new connection struct, OOM");
|
|
|
} else {
|
|
|
- conn->buf_size = buf_size;
|
|
|
+ conn->buf_size = MAX_REQUEST_SIZE;
|
|
|
conn->buf = (char *) (conn + 1);
|
|
|
|
|
|
// Call consume_socket() even when ctx->stop_flag > 0, to let it signal
|