From: Jim Jagielski Date: Tue, 17 Sep 2013 19:37:03 +0000 (+0000) Subject: revert 1524161 for the time being X-Git-Tag: 2.5.0-alpha~5049 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b18fa49a7536b1ee88a8e63f3c58849e21c8e4f9;p=apache revert 1524161 for the time being git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1524190 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index 6a81e556a0..5b82f041e4 100644 --- a/CHANGES +++ b/CHANGES @@ -1,9 +1,6 @@ -*- coding: utf-8 -*- Changes with Apache 2.5.0 - * core: Fix RFC2616 compliance issue with 'identity' transfer-encoding. - [Yann Ylavic , Jim Jagielski] - *) WinNT MPM: If ap_run_pre_connection() fails or sets c->aborted, don't save the socket for reuse by the next worker as if it were an APR_SO_DISCONNECTED socket. Restores 2.2 behavior. [Eric Covener] diff --git a/docs/log-message-tags/next-number b/docs/log-message-tags/next-number index 983711d6f2..6a5bdca5ee 100644 --- a/docs/log-message-tags/next-number +++ b/docs/log-message-tags/next-number @@ -1 +1 @@ -2540 +2536 diff --git a/docs/manual/mod/directives.html.de b/docs/manual/mod/directives.html.de index 698cc9ba92..e69de29bb2 100644 --- a/docs/manual/mod/directives.html.de +++ b/docs/manual/mod/directives.html.de @@ -1,705 +0,0 @@ - - - -Verzeichnis der Direktiven - Apache HTTP Server - - - - - - - -
<-
-

Verzeichnis der Direktiven

-
-

Verfügbare Sprachen:  de  | - en  | - es  | - ja  | - ko  | - tr  | - zh-cn 

-
- -

- Hier sind alle Apache-Direktiven aufgeführt, die in der - Standard-Apache-Distribution verfügbar sind. Sie sind in - einem einheitlichen Format beschrieben. Ein Glossar - erläutert die in der Beschreibung verwendeten Begriffe. -

- -

- Außerdem existiert eine Kurzreferenz der Direktiven, welche - zu jeder Direktive eine Zusammenfassung der Details enthält. -

- -

 A  |  B  |  C  |  D  |  E  |  F  |  G  |  H  |  I  |  K  |  L  |  M  |  N  |  O  |  P  |  R  |  S  |  T  |  U  |  V  |  W  |  X 

-
-
-
-

Verfügbare Sprachen:  de  | - en  | - es  | - ja  | - ko  | - tr  | - zh-cn 

-
top

Kommentare

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our mailing lists.
-
- \ No newline at end of file diff --git a/docs/manual/mod/mod_lua.xml.meta b/docs/manual/mod/mod_lua.xml.meta index b55c7710e9..8fc1a0efdf 100644 --- a/docs/manual/mod/mod_lua.xml.meta +++ b/docs/manual/mod/mod_lua.xml.meta @@ -8,6 +8,6 @@ en - fr + fr diff --git a/modules/http/http_filters.c b/modules/http/http_filters.c index f708e02a62..a4beb26bc9 100644 --- a/modules/http/http_filters.c +++ b/modules/http/http_filters.c @@ -227,24 +227,19 @@ apr_status_t ap_http_filter(ap_filter_t *f, apr_bucket_brigade *b, if (!strcasecmp(tenc, "chunked")) { ctx->state = BODY_CHUNK; } - /* RFC 2616 Section 4.4 states that if the message does - * include a non-identity transfer-coding, the Content-Length - * MUST be ignored. - */ - else if (lenp) { - ap_log_rerror( - APLOG_MARK, APLOG_INFO, 0, f->r, - APLOGNO(01586) "Identity or Unknown Transfer-Encoding (%s); using Content-Length", tenc); - tenc = NULL; - } - else { + /* test lenp, because it gives another case we can handle */ + else if (!lenp) { /* Something that isn't in HTTP, unless some future * edition defines new transfer encodings, is unsupported. */ - ap_log_rerror( - APLOG_MARK, APLOG_INFO, 0, f->r, - APLOGNO(01585) "Unknown Transfer-Encoding: %s", tenc); - return APR_ENOTIMPL; + ap_log_rerror( + APLOG_MARK, APLOG_INFO, 0, f->r, APLOGNO(01585) "Unknown Transfer-Encoding: %s", tenc); + return APR_ENOTIMPL; + } + else { + ap_log_rerror( + APLOG_MARK, APLOG_WARNING, 0, f->r, APLOGNO(01586) "Unknown Transfer-Encoding: %s; using Content-Length", tenc); + tenc = NULL; } } if (lenp && !tenc) { diff --git a/server/protocol.c b/server/protocol.c index 1a8aa44760..c1ecae705b 100644 --- a/server/protocol.c +++ b/server/protocol.c @@ -1091,8 +1091,6 @@ request_rec *ap_read_request(conn_rec *conn) } if (!r->assbackwards) { - const char *tenc, *clen; - ap_get_mime_headers_core(r, tmp_bb); if (r->status != HTTP_OK) { ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r, APLOGNO(00567) @@ -1104,37 +1102,13 @@ request_rec *ap_read_request(conn_rec *conn) goto traceout; } - if ((tenc = apr_table_get(r->headers_in, "Transfer-Encoding"))) { + if (apr_table_get(r->headers_in, "Transfer-Encoding") + && apr_table_get(r->headers_in, "Content-Length")) { /* 2616 section 4.4, point 3: "if both Transfer-Encoding * and Content-Length are received, the latter MUST be - * ignored"; unless the former is "identity". So unset - * the one concerned here to prevent any confusion later. - */ - if ((clen = apr_table_get(r->headers_in, "Content-Length"))) { - if (strcasecmp(tenc, "chunked") == 0) { - ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r, APLOGNO(2537) - "client sent both Transfer-Encoding (chunked)" - " and Content-Length; using TE"); - apr_table_unset(r->headers_in, "Content-Length"); - } - else { - ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r, APLOGNO(2538) - "client sent identity or unknown Transfer-Encoding (%s);" - " using Content-Length", tenc); - apr_table_unset(r->headers_in, "Transfer-Encoding"); - } - } - else if (strcasecmp(tenc, "chunked") != 0) { - ap_log_rerror(APLOG_MARK, APLOG_INFO, 0, r, APLOGNO(2539) - "client sent unknown Transfer-Encoding;" - " not implemented: %s", tenc); - r->status = HTTP_NOT_IMPLEMENTED; - ap_send_error_response(r, 0); - ap_update_child_status(conn->sbh, SERVER_BUSY_LOG, r); - ap_run_log_transaction(r); - apr_brigade_destroy(tmp_bb); - goto traceout; - } + * ignored"; so unset it here to prevent any confusion + * later. */ + apr_table_unset(r->headers_in, "Content-Length"); } } else {