1
0
mirror of https://github.com/apache/httpd.git synced 2025-08-07 04:02:58 +03:00

* Fix If-Match handling:

- We need to fail if we do NOT match.
  - ETag comparison only makes sense if we have an ETag

PR: 57358
Submitted by: Kunihiko Sakamoto <ksakamoto google.com>
Reviewed by: rpluem


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1646282 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Ruediger Pluem
2014-12-17 15:39:15 +00:00
parent 9746f9b464
commit bcf652f6fc
2 changed files with 6 additions and 6 deletions

View File

@@ -1,6 +1,9 @@
-*- coding: utf-8 -*-
Changes with Apache 2.5.0
*) mod_http: Fix incorrect If-Match handling. PR 57358
[Kunihiko Sakamoto <ksakamoto google.com>]
*) mod_proxy_ajp: Fix handling of the default port (8009) in the
ProxyPass and <Proxy> configurations. PR 57259. [Yann Ylavic].

View File

@@ -316,8 +316,8 @@ AP_DECLARE(ap_condition_e) ap_condition_if_match(request_rec *r,
*/
if ((if_match = apr_table_get(r->headers_in, "If-Match")) != NULL) {
if (if_match[0] == '*'
|| ((etag = apr_table_get(headers, "ETag")) == NULL
&& !ap_find_etag_strong(r->pool, if_match, etag))) {
|| ((etag = apr_table_get(headers, "ETag")) != NULL
&& ap_find_etag_strong(r->pool, if_match, etag))) {
return AP_CONDITION_STRONG;
}
else {
@@ -552,9 +552,6 @@ AP_DECLARE(int) ap_meets_conditions(request_rec *r)
*/
cond = ap_condition_if_match(r, r->headers_out);
if (AP_CONDITION_NOMATCH == cond) {
not_modified = 0;
}
else if (cond >= AP_CONDITION_WEAK) {
return HTTP_PRECONDITION_FAILED;
}