|
|
26950b |
diff --git a/src/server/mod_wsgi.c b/src/server/mod_wsgi.c
|
|
|
26950b |
index 59aad90..ef5f5af 100644
|
|
|
26950b |
--- a/src/server/mod_wsgi.c
|
|
|
26950b |
+++ b/src/server/mod_wsgi.c
|
|
|
26950b |
@@ -12586,6 +12586,9 @@ static apr_status_t wsgi_header_filter(ap_filter_t *f, apr_bucket_brigade *b)
|
|
|
26950b |
|
|
|
26950b |
/* Output status line. */
|
|
|
26950b |
|
|
|
26950b |
+ if (!r->status_line)
|
|
|
26950b |
+ r->status_line = ap_get_status_line(r->status);
|
|
|
26950b |
+
|
|
|
26950b |
vec1[0].iov_base = (void *)"Status:";
|
|
|
26950b |
vec1[0].iov_len = strlen("Status:");
|
|
|
26950b |
vec1[1].iov_base = (void *)" ";
|
|
|
26950b |
@@ -12699,6 +12702,7 @@ static int wsgi_hook_daemon_handler(conn_rec *c)
|
|
|
26950b |
apr_bucket_brigade *bb;
|
|
|
26950b |
|
|
|
26950b |
core_request_config *req_cfg;
|
|
|
26950b |
+ core_dir_config *d;
|
|
|
26950b |
|
|
|
26950b |
ap_filter_t *current = NULL;
|
|
|
26950b |
ap_filter_t *next = NULL;
|
|
|
26950b |
@@ -12890,6 +12894,23 @@ static int wsgi_hook_daemon_handler(conn_rec *c)
|
|
|
26950b |
|
|
|
26950b |
r->per_dir_config = r->server->lookup_defaults;
|
|
|
26950b |
|
|
|
26950b |
+ /*
|
|
|
26950b |
+ * Try and ensure that request body limit in daemon mode process
|
|
|
26950b |
+ * is unlimited as Apache 2.4.54 changed rules for limit and if
|
|
|
26950b |
+ * unset is now overridden by HTTP filters to be 1GiB rather than
|
|
|
26950b |
+ * unlimited. This is required since we populate configuration
|
|
|
26950b |
+ * from the base server config only so setting unlimited in a more
|
|
|
26950b |
+ * specific context such as a virtual host wouldn't be visible.
|
|
|
26950b |
+ * Note that setting this to unlimited in the daemon mode process
|
|
|
26950b |
+ * is okay as the request limit body is checked in the Apache
|
|
|
26950b |
+ * child process before request is proxied specifically to avoid
|
|
|
26950b |
+ * unecessarily passing the content across to the daemon process.
|
|
|
26950b |
+ */
|
|
|
26950b |
+
|
|
|
26950b |
+ d = (core_dir_config *)ap_get_core_module_config(r->per_dir_config);
|
|
|
26950b |
+
|
|
|
26950b |
+ d->limit_req_body = 0;
|
|
|
26950b |
+
|
|
|
26950b |
r->sent_bodyct = 0;
|
|
|
26950b |
|
|
|
26950b |
r->read_length = 0;
|