Forward-port from mod_dav 1.0:

* server/util_xml.c (ap_xml_parse_input): Give a 413 (Request Entity
Too Large) not a 400 if the client exceeds the configured XML request
body limit.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@102959 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Joe Orton
2004-03-14 20:53:58 +00:00
parent 56c15784a0
commit 329a32cf74

View File

@ -36,6 +36,7 @@ AP_DECLARE(int) ap_xml_parse_input(request_rec * r, apr_xml_doc **pdoc)
char errbuf[200];
apr_size_t total_read = 0;
apr_size_t limit_xml_body = ap_get_limit_xml_body(r);
int result = HTTP_BAD_REQUEST;
parser = apr_xml_parser_create(r->pool);
brigade = apr_brigade_create(r->pool, r->connection->bucket_alloc);
@ -81,6 +82,7 @@ AP_DECLARE(int) ap_xml_parse_input(request_rec * r, apr_xml_doc **pdoc)
ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r,
"XML request body is larger than the configured "
"limit of %lu", (unsigned long)limit_xml_body);
result = HTTP_REQUEST_ENTITY_TOO_LARGE;
goto read_error;
}
@ -124,5 +126,5 @@ AP_DECLARE(int) ap_xml_parse_input(request_rec * r, apr_xml_doc **pdoc)
apr_brigade_destroy(brigade);
/* Apache will supply a default error, plus the error log above. */
return HTTP_BAD_REQUEST;
return result;
}