You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by rp...@apache.org on 2011/02/08 11:05:07 UTC

svn commit: r1068310 - in /httpd/httpd/branches/2.2.x: ./ CHANGES STATUS docs/ docs/conf/mime.types docs/manual/mod/mod_autoindex.xml modules/dav/main/mod_dav.c support/ab.c support/suexec.c

Author: rpluem
Date: Tue Feb  8 10:05:07 2011
New Revision: 1068310

URL: http://svn.apache.org/viewvc?rev=1068310&view=rev
Log:
Merge r1026746 from trunk:

If an unknown Content-* header is received for a PUT request, we must not
ignore it but reply with 501 per RFC 2616 9.6.

PR: 42978

Submitted by: sf
Reviewed by: rpluem, covener, poirier

Modified:
    httpd/httpd/branches/2.2.x/   (props changed)
    httpd/httpd/branches/2.2.x/CHANGES
    httpd/httpd/branches/2.2.x/STATUS
    httpd/httpd/branches/2.2.x/docs/   (props changed)
    httpd/httpd/branches/2.2.x/docs/conf/mime.types   (props changed)
    httpd/httpd/branches/2.2.x/docs/manual/mod/mod_autoindex.xml   (props changed)
    httpd/httpd/branches/2.2.x/modules/dav/main/mod_dav.c
    httpd/httpd/branches/2.2.x/support/ab.c   (props changed)
    httpd/httpd/branches/2.2.x/support/suexec.c   (props changed)

Propchange: httpd/httpd/branches/2.2.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  8 10:05:07 2011
@@ -1 +1 @@
-/httpd/httpd/trunk:395552,417988,451572,583817,583830,611483,630858,639005,639010,647395,657354,657459,660461,660566,664330,678761,680082,681190,682369,683626,685112,686805,686809,687099,687754,693120,693392,693727-693728,696006,697093,706318,707163,708902,711421,719357,720250,729316-729317,729586,732414,732504,732832,733127,733134,733218-733219,734710,743589,755190,756671,756675,756678,756683,757741,761329,763394,764239,768535,769809,771587,771610,776325,777042,777091,778438-778439,778531,778942,780648,780655,780692,780697,780699,785457,785661,790587,803704,823536,823563,891282,932791,942209,953311,955966,992625,1026743,1031551
+/httpd/httpd/trunk:395552,417988,451572,583817,583830,611483,630858,639005,639010,647395,657354,657459,660461,660566,664330,678761,680082,681190,682369,683626,685112,686805,686809,687099,687754,693120,693392,693727-693728,696006,697093,706318,707163,708902,711421,719357,720250,729316-729317,729586,732414,732504,732832,733127,733134,733218-733219,734710,743589,755190,756671,756675,756678,756683,757741,761329,763394,764239,768535,769809,771587,771610,776325,777042,777091,778438-778439,778531,778942,780648,780655,780692,780697,780699,785457,785661,790587,803704,823536,823563,891282,932791,942209,953311,955966,992625,1026743,1026746,1031551

Modified: httpd/httpd/branches/2.2.x/CHANGES
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/CHANGES?rev=1068310&r1=1068309&r2=1068310&view=diff
==============================================================================
--- httpd/httpd/branches/2.2.x/CHANGES [utf-8] (original)
+++ httpd/httpd/branches/2.2.x/CHANGES [utf-8] Tue Feb  8 10:05:07 2011
@@ -1,6 +1,9 @@
                                                          -*- coding: utf-8 -*-
 Changes with Apache 2.2.18
 
+  *) mod_dav: Send 501 error if unknown Content-* header is received for a PUT
+     request (RFC 2616 9.6). PR 42978. [Stefan Fritsch]
+
   *) mod_dav: Send 400 error if malformed Content-Range header is received for
      a put request (RFC 2616 14.16). PR 49825. [Stefan Fritsch]
 

Modified: httpd/httpd/branches/2.2.x/STATUS
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/STATUS?rev=1068310&r1=1068309&r2=1068310&view=diff
==============================================================================
--- httpd/httpd/branches/2.2.x/STATUS (original)
+++ httpd/httpd/branches/2.2.x/STATUS Tue Feb  8 10:05:07 2011
@@ -98,15 +98,6 @@ PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
      2.2.x patch: http://people.apache.org/~minfrin/httpd-mod_cache-304-fix-2.patch
      +1: minfrin, jim, covener
 
-  * mod_dav: If an unknown Content-* header is received for a PUT request, we
-    must not ignore it but reply with 501 per RFC 2616 9.6.
-    PR: 42978
-    Trunk version of patch:
-      http://svn.apache.org/viewvc?rev=1026746&view=rev
-    Backport version for 2.2.x of patch:
-      Trunk version of patch works
-    +1: rpluem, covener, poirier
-
 PATCHES PROPOSED TO BACKPORT FROM TRUNK:
   [ New proposals should be added at the end of the list ]
 

Propchange: httpd/httpd/branches/2.2.x/docs/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  8 10:05:07 2011
@@ -1 +1 @@
-/httpd/httpd/trunk/docs:395552,417988,451572,583817,583830,611483,630858,639005,639010,647395,657354,657459,660461,660566,664330,675610,678761,680082,681190,682369,683626,684351,685112,686549,686805,686809,687099,687754,692325,693120,693392,693727-693728,696006,697093,703441,703997,706318,707163,708902,711421,719357,720250,726109,728015,728020,728220,729316-729317,729586,732414,732421,732451,732504,732832,733127,733134,733218-733219,733465,733467,733695,734703,734710,743589,755190,756671,756675,756678,756683,757741,761329,763394,764239,768535,769809,771587,771610,776325,777042,777091,778438-778439,778531,778942,780648,780655,780692,780697,780699,785457,785661,790587,803704,891282,942209,955966,992625,1026743
+/httpd/httpd/trunk/docs:395552,417988,451572,583817,583830,611483,630858,639005,639010,647395,657354,657459,660461,660566,664330,675610,678761,680082,681190,682369,683626,684351,685112,686549,686805,686809,687099,687754,692325,693120,693392,693727-693728,696006,697093,703441,703997,706318,707163,708902,711421,719357,720250,726109,728015,728020,728220,729316-729317,729586,732414,732421,732451,732504,732832,733127,733134,733218-733219,733465,733467,733695,734703,734710,743589,755190,756671,756675,756678,756683,757741,761329,763394,764239,768535,769809,771587,771610,776325,777042,777091,778438-778439,778531,778942,780648,780655,780692,780697,780699,785457,785661,790587,803704,891282,942209,955966,992625,1026743,1026746

Propchange: httpd/httpd/branches/2.2.x/docs/conf/mime.types
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  8 10:05:07 2011
@@ -1 +1 @@
-/httpd/httpd/trunk/docs/conf/mime.types:83749-896271,942209,955966,992625,1026743
+/httpd/httpd/trunk/docs/conf/mime.types:83749-896271,942209,955966,992625,1026743,1026746

Propchange: httpd/httpd/branches/2.2.x/docs/manual/mod/mod_autoindex.xml
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  8 10:05:07 2011
@@ -1 +1 @@
-/httpd/httpd/trunk/docs/manual/mod/mod_autoindex.xml:395552,417988,451572,583817,583830,611483,630858,639005,639010,647395,657354,657459,660461,660566,664330,675610,678761,680082,681190,682369,683626,684351,685112,686549,686805,686809,687099,687754,692325,693120,693392,693727-693728,696006,697093,703441,703997,706318,707163,708902,711421,719357,720250,726109,728015,728020,728220,729316-729317,729586,732414,732421,732451,732504,732832,733127,733134,733218-733219,733465,733467,733695,734703,734710,743589,755190,756671,756675,756678,756683,757741,761329,763394,764239,768535,769809,771587,771610,776325,777042,777091,778438-778439,778531,778942,780648,780655,780692,780697,780699,785457,785661,790587,803704,891282,942209,955966,992625,1026743,1059559-1059589
+/httpd/httpd/trunk/docs/manual/mod/mod_autoindex.xml:395552,417988,451572,583817,583830,611483,630858,639005,639010,647395,657354,657459,660461,660566,664330,675610,678761,680082,681190,682369,683626,684351,685112,686549,686805,686809,687099,687754,692325,693120,693392,693727-693728,696006,697093,703441,703997,706318,707163,708902,711421,719357,720250,726109,728015,728020,728220,729316-729317,729586,732414,732421,732451,732504,732832,733127,733134,733218-733219,733465,733467,733695,734703,734710,743589,755190,756671,756675,756678,756683,757741,761329,763394,764239,768535,769809,771587,771610,776325,777042,777091,778438-778439,778531,778942,780648,780655,780692,780697,780699,785457,785661,790587,803704,891282,942209,955966,992625,1026743,1026746,1059559-1059589

Modified: httpd/httpd/branches/2.2.x/modules/dav/main/mod_dav.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/modules/dav/main/mod_dav.c?rev=1068310&r1=1068309&r2=1068310&view=diff
==============================================================================
--- httpd/httpd/branches/2.2.x/modules/dav/main/mod_dav.c (original)
+++ httpd/httpd/branches/2.2.x/modules/dav/main/mod_dav.c Tue Feb  8 10:05:07 2011
@@ -812,6 +812,30 @@ static int dav_parse_range(request_rec *
     return 1;
 }
 
+static const char *dav_validate_content_headers(request_rec *r)
+{
+    int i, prefix_len = strlen("content-");
+    const apr_array_header_t *arr = apr_table_elts(r->headers_in);
+    const apr_table_entry_t *elts = (const apr_table_entry_t *)arr->elts;
+
+    for (i = 0; i < arr->nelts; ++i) {
+         if (elts[i].key == NULL)
+             continue;
+         if (strncasecmp(elts[i].key, "content-", prefix_len) == 0
+             && strcasecmp(elts[i].key + prefix_len, "length") != 0
+             && strcasecmp(elts[i].key + prefix_len, "range") != 0
+             /* Content-Location may be ignored per RFC 2616 14.14 */
+             && strcasecmp(elts[i].key + prefix_len, "location") != 0
+             && strcasecmp(elts[i].key + prefix_len, "type") != 0)
+         {
+             /* XXX: content-md5? content-language? content-encoding? */
+             return apr_psprintf(r->pool, "Support for %s is not implemented.",
+                                 ap_escape_html(r->pool, elts[i].key));
+         }
+    }
+    return NULL;
+}
+
 /* handle the GET method */
 static int dav_method_get(request_rec *r)
 {
@@ -959,6 +983,14 @@ static int dav_method_put(request_rec *r
         mode = DAV_MODE_WRITE_TRUNC;
     }
 
+    if ((body = dav_validate_content_headers(r)) != NULL) {
+        /* RFC 2616 9.6: We must not ignore any Content-* headers we do not
+         * understand.
+         * XXX: Relax this for HTTP 1.0 requests?
+         */
+        return dav_error_response(r, HTTP_NOT_IMPLEMENTED, body);
+    }
+
     /* make sure the resource can be modified (if versioning repository) */
     if ((err = dav_auto_checkout(r, resource,
                                  0 /* not parent_only */,

Propchange: httpd/httpd/branches/2.2.x/support/ab.c
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  8 10:05:07 2011
@@ -1 +1 @@
-/httpd/httpd/trunk/support/ab.c:83751-655654,657354,657433,657459,660461,660566,664330,678761,680082,681190,682369,683626,685112,686805,686809,687099,687754,693120,693392,693727-693728,696006,697093,706318,707163,708902,711421,719357,720250,729316-729317,729586,732414,732504,732832,733127,733134,733218-733219,734710,743589,755190,756671,756675,756678,756683,757741,761329,763394,764239,768535,769809,771587,771610,776325,777042,777091,778438-778439,778531,778942,780648,780655,780692,780697,780699,785457,785661,790587,803704,891282,942209,955966,992625,1026743
+/httpd/httpd/trunk/support/ab.c:83751-655654,657354,657433,657459,660461,660566,664330,678761,680082,681190,682369,683626,685112,686805,686809,687099,687754,693120,693392,693727-693728,696006,697093,706318,707163,708902,711421,719357,720250,729316-729317,729586,732414,732504,732832,733127,733134,733218-733219,734710,743589,755190,756671,756675,756678,756683,757741,761329,763394,764239,768535,769809,771587,771610,776325,777042,777091,778438-778439,778531,778942,780648,780655,780692,780697,780699,785457,785661,790587,803704,891282,942209,955966,992625,1026743,1026746

Propchange: httpd/httpd/branches/2.2.x/support/suexec.c
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Feb  8 10:05:07 2011
@@ -1 +1 @@
-/httpd/httpd/trunk/support/suexec.c:395552,417988,451572,583817,583830,611483,630858,639005,639010,647395,655711,657354,657459,660461,660566,664330,678761,680082,681190,682369,683626,685112,686805,686809,687099,687754,693120,693392,693727-693728,696006,697093,706318,707163,708902,711421,719357,720250,729316-729317,729586,732414,732504,732832,733127,733134,733218-733219,734710,743589,755190,756671,756675,756678,756683,757741,761329,763394,764239,768535,769809,771587,771610,776325,777042,777091,778438-778439,778531,778942,780648,780655,780692,780697,780699,785457,785661,790587,803704,891282,942209,955966,992625,1026743
+/httpd/httpd/trunk/support/suexec.c:395552,417988,451572,583817,583830,611483,630858,639005,639010,647395,655711,657354,657459,660461,660566,664330,678761,680082,681190,682369,683626,685112,686805,686809,687099,687754,693120,693392,693727-693728,696006,697093,706318,707163,708902,711421,719357,720250,729316-729317,729586,732414,732504,732832,733127,733134,733218-733219,734710,743589,755190,756671,756675,756678,756683,757741,761329,763394,764239,768535,769809,771587,771610,776325,777042,777091,778438-778439,778531,778942,780648,780655,780692,780697,780699,785457,785661,790587,803704,891282,942209,955966,992625,1026743,1026746



Re: svn commit: r1068310 - in /httpd/httpd/branches/2.2.x: ./ CHANGES STATUS docs/ docs/conf/mime.types docs/manual/mod/mod_autoindex.xml modules/dav/main/mod_dav.c support/ab.c support/suexec.c

Posted by Stefan Fritsch <sf...@sfritsch.de>.
On Wednesday 09 February 2011, Ruediger Pluem wrote:
> Reverted in r1068793.
> Stefan can you please take care of the trunk revision and remove
> the test from the framework that fails without this patch?

OK, done in r1070061, r1070062

Re: svn commit: r1068310 - in /httpd/httpd/branches/2.2.x: ./ CHANGES STATUS docs/ docs/conf/mime.types docs/manual/mod/mod_autoindex.xml modules/dav/main/mod_dav.c support/ab.c support/suexec.c

Posted by Ruediger Pluem <rp...@apache.org>.
Reverted in r1068793.
Stefan can you please take care of the trunk revision and remove the test from the
framework that fails without this patch?
BTW: We should update PR42978. It would be cool if Roy could do that, because it
might result in an interesting RFC discussion :-).

Regards

RĂ¼diger

On 02/09/2011 09:31 AM, Roy T. Fielding wrote:
> Sorry, I didn't see this earlier.  -1 (veto).  This requirement will
> be (or has already been) removed from httpbis because it hinders
> extensibility and breaks content management systems, just as the
> change below causes content-language to be broken.  That is why
> we never implemented this requirement when it was added (without
> consensus) to RFC 2616.
> 
> ....Roy
> 
> 
> On Feb 8, 2011, at 2:05 AM, rpluem@apache.org wrote:
> 
>> Author: rpluem
>> Date: Tue Feb  8 10:05:07 2011
>> New Revision: 1068310
>>
>> URL: http://svn.apache.org/viewvc?rev=1068310&view=rev
>> Log:
>> Merge r1026746 from trunk:
>>
>> If an unknown Content-* header is received for a PUT request, we must not
>> ignore it but reply with 501 per RFC 2616 9.6.
>>
>> PR: 42978
>>
>> Submitted by: sf
>> Reviewed by: rpluem, covener, poirier
>>
>> Modified:
>>    httpd/httpd/branches/2.2.x/   (props changed)
>>    httpd/httpd/branches/2.2.x/CHANGES
>>    httpd/httpd/branches/2.2.x/STATUS
>>    httpd/httpd/branches/2.2.x/docs/   (props changed)
>>    httpd/httpd/branches/2.2.x/docs/conf/mime.types   (props changed)
>>    httpd/httpd/branches/2.2.x/docs/manual/mod/mod_autoindex.xml   (props changed)
>>    httpd/httpd/branches/2.2.x/modules/dav/main/mod_dav.c
>>    httpd/httpd/branches/2.2.x/support/ab.c   (props changed)
>>    httpd/httpd/branches/2.2.x/support/suexec.c   (props changed)
>>
>> Propchange: httpd/httpd/branches/2.2.x/
>> ------------------------------------------------------------------------------
>> --- svn:mergeinfo (original)
>> +++ svn:mergeinfo Tue Feb  8 10:05:07 2011
>> @@ -1 +1 @@
>> -/httpd/httpd/trunk:395552,417988,451572,583817,583830,611483,630858,639005,639010,647395,657354,657459,660461,660566,664330,678761,680082,681190,682369,683626,685112,686805,686809,687099,687754,693120,693392,693727-693728,696006,697093,706318,707163,708902,711421,719357,720250,729316-729317,729586,732414,732504,732832,733127,733134,733218-733219,734710,743589,755190,756671,756675,756678,756683,757741,761329,763394,764239,768535,769809,771587,771610,776325,777042,777091,778438-778439,778531,778942,780648,780655,780692,780697,780699,785457,785661,790587,803704,823536,823563,891282,932791,942209,953311,955966,992625,1026743,1031551
>> +/httpd/httpd/trunk:395552,417988,451572,583817,583830,611483,630858,639005,639010,647395,657354,657459,660461,660566,664330,678761,680082,681190,682369,683626,685112,686805,686809,687099,687754,693120,693392,693727-693728,696006,697093,706318,707163,708902,711421,719357,720250,729316-729317,729586,732414,732504,732832,733127,733134,733218-733219,734710,743589,755190,756671,756675,756678,756683,757741,761329,763394,764239,768535,769809,771587,771610,776325,777042,777091,778438-778439,778531,778942,780648,780655,780692,780697,780699,785457,785661,790587,803704,823536,823563,891282,932791,942209,953311,955966,992625,1026743,1026746,1031551
>>
>> Modified: httpd/httpd/branches/2.2.x/CHANGES
>> URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/CHANGES?rev=1068310&r1=1068309&r2=1068310&view=diff
>> ==============================================================================
>> --- httpd/httpd/branches/2.2.x/CHANGES [utf-8] (original)
>> +++ httpd/httpd/branches/2.2.x/CHANGES [utf-8] Tue Feb  8 10:05:07 2011
>> @@ -1,6 +1,9 @@
>>                                                          -*- coding: utf-8 -*-
>> Changes with Apache 2.2.18
>>
>> +  *) mod_dav: Send 501 error if unknown Content-* header is received for a PUT
>> +     request (RFC 2616 9.6). PR 42978. [Stefan Fritsch]
>> +
>>   *) mod_dav: Send 400 error if malformed Content-Range header is received for
>>      a put request (RFC 2616 14.16). PR 49825. [Stefan Fritsch]
>>
>>
>> Modified: httpd/httpd/branches/2.2.x/STATUS
>> URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/STATUS?rev=1068310&r1=1068309&r2=1068310&view=diff
>> ==============================================================================
>> --- httpd/httpd/branches/2.2.x/STATUS (original)
>> +++ httpd/httpd/branches/2.2.x/STATUS Tue Feb  8 10:05:07 2011
>> @@ -98,15 +98,6 @@ PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
>>      2.2.x patch: http://people.apache.org/~minfrin/httpd-mod_cache-304-fix-2.patch
>>      +1: minfrin, jim, covener
>>
>> -  * mod_dav: If an unknown Content-* header is received for a PUT request, we
>> -    must not ignore it but reply with 501 per RFC 2616 9.6.
>> -    PR: 42978
>> -    Trunk version of patch:
>> -      http://svn.apache.org/viewvc?rev=1026746&view=rev
>> -    Backport version for 2.2.x of patch:
>> -      Trunk version of patch works
>> -    +1: rpluem, covener, poirier
>> -
>> PATCHES PROPOSED TO BACKPORT FROM TRUNK:
>>   [ New proposals should be added at the end of the list ]
>>
>>
>> Propchange: httpd/httpd/branches/2.2.x/docs/
>> ------------------------------------------------------------------------------
>> --- svn:mergeinfo (original)
>> +++ svn:mergeinfo Tue Feb  8 10:05:07 2011
>> @@ -1 +1 @@
>> -/httpd/httpd/trunk/docs:395552,417988,451572,583817,583830,611483,630858,639005,639010,647395,657354,657459,660461,660566,664330,675610,678761,680082,681190,682369,683626,684351,685112,686549,686805,686809,687099,687754,692325,693120,693392,693727-693728,696006,697093,703441,703997,706318,707163,708902,711421,719357,720250,726109,728015,728020,728220,729316-729317,729586,732414,732421,732451,732504,732832,733127,733134,733218-733219,733465,733467,733695,734703,734710,743589,755190,756671,756675,756678,756683,757741,761329,763394,764239,768535,769809,771587,771610,776325,777042,777091,778438-778439,778531,778942,780648,780655,780692,780697,780699,785457,785661,790587,803704,891282,942209,955966,992625,1026743
>> +/httpd/httpd/trunk/docs:395552,417988,451572,583817,583830,611483,630858,639005,639010,647395,657354,657459,660461,660566,664330,675610,678761,680082,681190,682369,683626,684351,685112,686549,686805,686809,687099,687754,692325,693120,693392,693727-693728,696006,697093,703441,703997,706318,707163,708902,711421,719357,720250,726109,728015,728020,728220,729316-729317,729586,732414,732421,732451,732504,732832,733127,733134,733218-733219,733465,733467,733695,734703,734710,743589,755190,756671,756675,756678,756683,757741,761329,763394,764239,768535,769809,771587,771610,776325,777042,777091,778438-778439,778531,778942,780648,780655,780692,780697,780699,785457,785661,790587,803704,891282,942209,955966,992625,1026743,1026746
>>
>> Propchange: httpd/httpd/branches/2.2.x/docs/conf/mime.types
>> ------------------------------------------------------------------------------
>> --- svn:mergeinfo (original)
>> +++ svn:mergeinfo Tue Feb  8 10:05:07 2011
>> @@ -1 +1 @@
>> -/httpd/httpd/trunk/docs/conf/mime.types:83749-896271,942209,955966,992625,1026743
>> +/httpd/httpd/trunk/docs/conf/mime.types:83749-896271,942209,955966,992625,1026743,1026746
>>
>> Propchange: httpd/httpd/branches/2.2.x/docs/manual/mod/mod_autoindex.xml
>> ------------------------------------------------------------------------------
>> --- svn:mergeinfo (original)
>> +++ svn:mergeinfo Tue Feb  8 10:05:07 2011
>> @@ -1 +1 @@
>> -/httpd/httpd/trunk/docs/manual/mod/mod_autoindex.xml:395552,417988,451572,583817,583830,611483,630858,639005,639010,647395,657354,657459,660461,660566,664330,675610,678761,680082,681190,682369,683626,684351,685112,686549,686805,686809,687099,687754,692325,693120,693392,693727-693728,696006,697093,703441,703997,706318,707163,708902,711421,719357,720250,726109,728015,728020,728220,729316-729317,729586,732414,732421,732451,732504,732832,733127,733134,733218-733219,733465,733467,733695,734703,734710,743589,755190,756671,756675,756678,756683,757741,761329,763394,764239,768535,769809,771587,771610,776325,777042,777091,778438-778439,778531,778942,780648,780655,780692,780697,780699,785457,785661,790587,803704,891282,942209,955966,992625,1026743,1059559-1059589
>> +/httpd/httpd/trunk/docs/manual/mod/mod_autoindex.xml:395552,417988,451572,583817,583830,611483,630858,639005,639010,647395,657354,657459,660461,660566,664330,675610,678761,680082,681190,682369,683626,684351,685112,686549,686805,686809,687099,687754,692325,693120,693392,693727-693728,696006,697093,703441,703997,706318,707163,708902,711421,719357,720250,726109,728015,728020,728220,729316-729317,729586,732414,732421,732451,732504,732832,733127,733134,733218-733219,733465,733467,733695,734703,734710,743589,755190,756671,756675,756678,756683,757741,761329,763394,764239,768535,769809,771587,771610,776325,777042,777091,778438-778439,778531,778942,780648,780655,780692,780697,780699,785457,785661,790587,803704,891282,942209,955966,992625,1026743,1026746,1059559-1059589
>>
>> Modified: httpd/httpd/branches/2.2.x/modules/dav/main/mod_dav.c
>> URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/modules/dav/main/mod_dav.c?rev=1068310&r1=1068309&r2=1068310&view=diff
>> ==============================================================================
>> --- httpd/httpd/branches/2.2.x/modules/dav/main/mod_dav.c (original)
>> +++ httpd/httpd/branches/2.2.x/modules/dav/main/mod_dav.c Tue Feb  8 10:05:07 2011
>> @@ -812,6 +812,30 @@ static int dav_parse_range(request_rec *
>>     return 1;
>> }
>>
>> +static const char *dav_validate_content_headers(request_rec *r)
>> +{
>> +    int i, prefix_len = strlen("content-");
>> +    const apr_array_header_t *arr = apr_table_elts(r->headers_in);
>> +    const apr_table_entry_t *elts = (const apr_table_entry_t *)arr->elts;
>> +
>> +    for (i = 0; i < arr->nelts; ++i) {
>> +         if (elts[i].key == NULL)
>> +             continue;
>> +         if (strncasecmp(elts[i].key, "content-", prefix_len) == 0
>> +             && strcasecmp(elts[i].key + prefix_len, "length") != 0
>> +             && strcasecmp(elts[i].key + prefix_len, "range") != 0
>> +             /* Content-Location may be ignored per RFC 2616 14.14 */
>> +             && strcasecmp(elts[i].key + prefix_len, "location") != 0
>> +             && strcasecmp(elts[i].key + prefix_len, "type") != 0)
>> +         {
>> +             /* XXX: content-md5? content-language? content-encoding? */
>> +             return apr_psprintf(r->pool, "Support for %s is not implemented.",
>> +                                 ap_escape_html(r->pool, elts[i].key));
>> +         }
>> +    }
>> +    return NULL;
>> +}
>> +
>> /* handle the GET method */
>> static int dav_method_get(request_rec *r)
>> {
>> @@ -959,6 +983,14 @@ static int dav_method_put(request_rec *r
>>         mode = DAV_MODE_WRITE_TRUNC;
>>     }
>>
>> +    if ((body = dav_validate_content_headers(r)) != NULL) {
>> +        /* RFC 2616 9.6: We must not ignore any Content-* headers we do not
>> +         * understand.
>> +         * XXX: Relax this for HTTP 1.0 requests?
>> +         */
>> +        return dav_error_response(r, HTTP_NOT_IMPLEMENTED, body);
>> +    }
>> +
>>     /* make sure the resource can be modified (if versioning repository) */
>>     if ((err = dav_auto_checkout(r, resource,
>>                                  0 /* not parent_only */,
>>
>> Propchange: httpd/httpd/branches/2.2.x/support/ab.c
>> ------------------------------------------------------------------------------
>> --- svn:mergeinfo (original)
>> +++ svn:mergeinfo Tue Feb  8 10:05:07 2011
>> @@ -1 +1 @@
>> -/httpd/httpd/trunk/support/ab.c:83751-655654,657354,657433,657459,660461,660566,664330,678761,680082,681190,682369,683626,685112,686805,686809,687099,687754,693120,693392,693727-693728,696006,697093,706318,707163,708902,711421,719357,720250,729316-729317,729586,732414,732504,732832,733127,733134,733218-733219,734710,743589,755190,756671,756675,756678,756683,757741,761329,763394,764239,768535,769809,771587,771610,776325,777042,777091,778438-778439,778531,778942,780648,780655,780692,780697,780699,785457,785661,790587,803704,891282,942209,955966,992625,1026743
>> +/httpd/httpd/trunk/support/ab.c:83751-655654,657354,657433,657459,660461,660566,664330,678761,680082,681190,682369,683626,685112,686805,686809,687099,687754,693120,693392,693727-693728,696006,697093,706318,707163,708902,711421,719357,720250,729316-729317,729586,732414,732504,732832,733127,733134,733218-733219,734710,743589,755190,756671,756675,756678,756683,757741,761329,763394,764239,768535,769809,771587,771610,776325,777042,777091,778438-778439,778531,778942,780648,780655,780692,780697,780699,785457,785661,790587,803704,891282,942209,955966,992625,1026743,1026746
>>
>> Propchange: httpd/httpd/branches/2.2.x/support/suexec.c
>> ------------------------------------------------------------------------------
>> --- svn:mergeinfo (original)
>> +++ svn:mergeinfo Tue Feb  8 10:05:07 2011
>> @@ -1 +1 @@
>> -/httpd/httpd/trunk/support/suexec.c:395552,417988,451572,583817,583830,611483,630858,639005,639010,647395,655711,657354,657459,660461,660566,664330,678761,680082,681190,682369,683626,685112,686805,686809,687099,687754,693120,693392,693727-693728,696006,697093,706318,707163,708902,711421,719357,720250,729316-729317,729586,732414,732504,732832,733127,733134,733218-733219,734710,743589,755190,756671,756675,756678,756683,757741,761329,763394,764239,768535,769809,771587,771610,776325,777042,777091,778438-778439,778531,778942,780648,780655,780692,780697,780699,785457,785661,790587,803704,891282,942209,955966,992625,1026743
>> +/httpd/httpd/trunk/support/suexec.c:395552,417988,451572,583817,583830,611483,630858,639005,639010,647395,655711,657354,657459,660461,660566,664330,678761,680082,681190,682369,683626,685112,686805,686809,687099,687754,693120,693392,693727-693728,696006,697093,706318,707163,708902,711421,719357,720250,729316-729317,729586,732414,732504,732832,733127,733134,733218-733219,734710,743589,755190,756671,756675,756678,756683,757741,761329,763394,764239,768535,769809,771587,771610,776325,777042,777091,778438-778439,778531,778942,780648,780655,780692,780697,780699,785457,785661,790587,803704,891282,942209,955966,992625,1026743,1026746
>>
>>
> 
> 
> 

Re: svn commit: r1068310 - in /httpd/httpd/branches/2.2.x: ./ CHANGES STATUS docs/ docs/conf/mime.types docs/manual/mod/mod_autoindex.xml modules/dav/main/mod_dav.c support/ab.c support/suexec.c

Posted by "Roy T. Fielding" <fi...@gbiv.com>.
Sorry, I didn't see this earlier.  -1 (veto).  This requirement will
be (or has already been) removed from httpbis because it hinders
extensibility and breaks content management systems, just as the
change below causes content-language to be broken.  That is why
we never implemented this requirement when it was added (without
consensus) to RFC 2616.

....Roy


On Feb 8, 2011, at 2:05 AM, rpluem@apache.org wrote:

> Author: rpluem
> Date: Tue Feb  8 10:05:07 2011
> New Revision: 1068310
> 
> URL: http://svn.apache.org/viewvc?rev=1068310&view=rev
> Log:
> Merge r1026746 from trunk:
> 
> If an unknown Content-* header is received for a PUT request, we must not
> ignore it but reply with 501 per RFC 2616 9.6.
> 
> PR: 42978
> 
> Submitted by: sf
> Reviewed by: rpluem, covener, poirier
> 
> Modified:
>    httpd/httpd/branches/2.2.x/   (props changed)
>    httpd/httpd/branches/2.2.x/CHANGES
>    httpd/httpd/branches/2.2.x/STATUS
>    httpd/httpd/branches/2.2.x/docs/   (props changed)
>    httpd/httpd/branches/2.2.x/docs/conf/mime.types   (props changed)
>    httpd/httpd/branches/2.2.x/docs/manual/mod/mod_autoindex.xml   (props changed)
>    httpd/httpd/branches/2.2.x/modules/dav/main/mod_dav.c
>    httpd/httpd/branches/2.2.x/support/ab.c   (props changed)
>    httpd/httpd/branches/2.2.x/support/suexec.c   (props changed)
> 
> Propchange: httpd/httpd/branches/2.2.x/
> ------------------------------------------------------------------------------
> --- svn:mergeinfo (original)
> +++ svn:mergeinfo Tue Feb  8 10:05:07 2011
> @@ -1 +1 @@
> -/httpd/httpd/trunk:395552,417988,451572,583817,583830,611483,630858,639005,639010,647395,657354,657459,660461,660566,664330,678761,680082,681190,682369,683626,685112,686805,686809,687099,687754,693120,693392,693727-693728,696006,697093,706318,707163,708902,711421,719357,720250,729316-729317,729586,732414,732504,732832,733127,733134,733218-733219,734710,743589,755190,756671,756675,756678,756683,757741,761329,763394,764239,768535,769809,771587,771610,776325,777042,777091,778438-778439,778531,778942,780648,780655,780692,780697,780699,785457,785661,790587,803704,823536,823563,891282,932791,942209,953311,955966,992625,1026743,1031551
> +/httpd/httpd/trunk:395552,417988,451572,583817,583830,611483,630858,639005,639010,647395,657354,657459,660461,660566,664330,678761,680082,681190,682369,683626,685112,686805,686809,687099,687754,693120,693392,693727-693728,696006,697093,706318,707163,708902,711421,719357,720250,729316-729317,729586,732414,732504,732832,733127,733134,733218-733219,734710,743589,755190,756671,756675,756678,756683,757741,761329,763394,764239,768535,769809,771587,771610,776325,777042,777091,778438-778439,778531,778942,780648,780655,780692,780697,780699,785457,785661,790587,803704,823536,823563,891282,932791,942209,953311,955966,992625,1026743,1026746,1031551
> 
> Modified: httpd/httpd/branches/2.2.x/CHANGES
> URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/CHANGES?rev=1068310&r1=1068309&r2=1068310&view=diff
> ==============================================================================
> --- httpd/httpd/branches/2.2.x/CHANGES [utf-8] (original)
> +++ httpd/httpd/branches/2.2.x/CHANGES [utf-8] Tue Feb  8 10:05:07 2011
> @@ -1,6 +1,9 @@
>                                                          -*- coding: utf-8 -*-
> Changes with Apache 2.2.18
> 
> +  *) mod_dav: Send 501 error if unknown Content-* header is received for a PUT
> +     request (RFC 2616 9.6). PR 42978. [Stefan Fritsch]
> +
>   *) mod_dav: Send 400 error if malformed Content-Range header is received for
>      a put request (RFC 2616 14.16). PR 49825. [Stefan Fritsch]
> 
> 
> Modified: httpd/httpd/branches/2.2.x/STATUS
> URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/STATUS?rev=1068310&r1=1068309&r2=1068310&view=diff
> ==============================================================================
> --- httpd/httpd/branches/2.2.x/STATUS (original)
> +++ httpd/httpd/branches/2.2.x/STATUS Tue Feb  8 10:05:07 2011
> @@ -98,15 +98,6 @@ PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
>      2.2.x patch: http://people.apache.org/~minfrin/httpd-mod_cache-304-fix-2.patch
>      +1: minfrin, jim, covener
> 
> -  * mod_dav: If an unknown Content-* header is received for a PUT request, we
> -    must not ignore it but reply with 501 per RFC 2616 9.6.
> -    PR: 42978
> -    Trunk version of patch:
> -      http://svn.apache.org/viewvc?rev=1026746&view=rev
> -    Backport version for 2.2.x of patch:
> -      Trunk version of patch works
> -    +1: rpluem, covener, poirier
> -
> PATCHES PROPOSED TO BACKPORT FROM TRUNK:
>   [ New proposals should be added at the end of the list ]
> 
> 
> Propchange: httpd/httpd/branches/2.2.x/docs/
> ------------------------------------------------------------------------------
> --- svn:mergeinfo (original)
> +++ svn:mergeinfo Tue Feb  8 10:05:07 2011
> @@ -1 +1 @@
> -/httpd/httpd/trunk/docs:395552,417988,451572,583817,583830,611483,630858,639005,639010,647395,657354,657459,660461,660566,664330,675610,678761,680082,681190,682369,683626,684351,685112,686549,686805,686809,687099,687754,692325,693120,693392,693727-693728,696006,697093,703441,703997,706318,707163,708902,711421,719357,720250,726109,728015,728020,728220,729316-729317,729586,732414,732421,732451,732504,732832,733127,733134,733218-733219,733465,733467,733695,734703,734710,743589,755190,756671,756675,756678,756683,757741,761329,763394,764239,768535,769809,771587,771610,776325,777042,777091,778438-778439,778531,778942,780648,780655,780692,780697,780699,785457,785661,790587,803704,891282,942209,955966,992625,1026743
> +/httpd/httpd/trunk/docs:395552,417988,451572,583817,583830,611483,630858,639005,639010,647395,657354,657459,660461,660566,664330,675610,678761,680082,681190,682369,683626,684351,685112,686549,686805,686809,687099,687754,692325,693120,693392,693727-693728,696006,697093,703441,703997,706318,707163,708902,711421,719357,720250,726109,728015,728020,728220,729316-729317,729586,732414,732421,732451,732504,732832,733127,733134,733218-733219,733465,733467,733695,734703,734710,743589,755190,756671,756675,756678,756683,757741,761329,763394,764239,768535,769809,771587,771610,776325,777042,777091,778438-778439,778531,778942,780648,780655,780692,780697,780699,785457,785661,790587,803704,891282,942209,955966,992625,1026743,1026746
> 
> Propchange: httpd/httpd/branches/2.2.x/docs/conf/mime.types
> ------------------------------------------------------------------------------
> --- svn:mergeinfo (original)
> +++ svn:mergeinfo Tue Feb  8 10:05:07 2011
> @@ -1 +1 @@
> -/httpd/httpd/trunk/docs/conf/mime.types:83749-896271,942209,955966,992625,1026743
> +/httpd/httpd/trunk/docs/conf/mime.types:83749-896271,942209,955966,992625,1026743,1026746
> 
> Propchange: httpd/httpd/branches/2.2.x/docs/manual/mod/mod_autoindex.xml
> ------------------------------------------------------------------------------
> --- svn:mergeinfo (original)
> +++ svn:mergeinfo Tue Feb  8 10:05:07 2011
> @@ -1 +1 @@
> -/httpd/httpd/trunk/docs/manual/mod/mod_autoindex.xml:395552,417988,451572,583817,583830,611483,630858,639005,639010,647395,657354,657459,660461,660566,664330,675610,678761,680082,681190,682369,683626,684351,685112,686549,686805,686809,687099,687754,692325,693120,693392,693727-693728,696006,697093,703441,703997,706318,707163,708902,711421,719357,720250,726109,728015,728020,728220,729316-729317,729586,732414,732421,732451,732504,732832,733127,733134,733218-733219,733465,733467,733695,734703,734710,743589,755190,756671,756675,756678,756683,757741,761329,763394,764239,768535,769809,771587,771610,776325,777042,777091,778438-778439,778531,778942,780648,780655,780692,780697,780699,785457,785661,790587,803704,891282,942209,955966,992625,1026743,1059559-1059589
> +/httpd/httpd/trunk/docs/manual/mod/mod_autoindex.xml:395552,417988,451572,583817,583830,611483,630858,639005,639010,647395,657354,657459,660461,660566,664330,675610,678761,680082,681190,682369,683626,684351,685112,686549,686805,686809,687099,687754,692325,693120,693392,693727-693728,696006,697093,703441,703997,706318,707163,708902,711421,719357,720250,726109,728015,728020,728220,729316-729317,729586,732414,732421,732451,732504,732832,733127,733134,733218-733219,733465,733467,733695,734703,734710,743589,755190,756671,756675,756678,756683,757741,761329,763394,764239,768535,769809,771587,771610,776325,777042,777091,778438-778439,778531,778942,780648,780655,780692,780697,780699,785457,785661,790587,803704,891282,942209,955966,992625,1026743,1026746,1059559-1059589
> 
> Modified: httpd/httpd/branches/2.2.x/modules/dav/main/mod_dav.c
> URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.2.x/modules/dav/main/mod_dav.c?rev=1068310&r1=1068309&r2=1068310&view=diff
> ==============================================================================
> --- httpd/httpd/branches/2.2.x/modules/dav/main/mod_dav.c (original)
> +++ httpd/httpd/branches/2.2.x/modules/dav/main/mod_dav.c Tue Feb  8 10:05:07 2011
> @@ -812,6 +812,30 @@ static int dav_parse_range(request_rec *
>     return 1;
> }
> 
> +static const char *dav_validate_content_headers(request_rec *r)
> +{
> +    int i, prefix_len = strlen("content-");
> +    const apr_array_header_t *arr = apr_table_elts(r->headers_in);
> +    const apr_table_entry_t *elts = (const apr_table_entry_t *)arr->elts;
> +
> +    for (i = 0; i < arr->nelts; ++i) {
> +         if (elts[i].key == NULL)
> +             continue;
> +         if (strncasecmp(elts[i].key, "content-", prefix_len) == 0
> +             && strcasecmp(elts[i].key + prefix_len, "length") != 0
> +             && strcasecmp(elts[i].key + prefix_len, "range") != 0
> +             /* Content-Location may be ignored per RFC 2616 14.14 */
> +             && strcasecmp(elts[i].key + prefix_len, "location") != 0
> +             && strcasecmp(elts[i].key + prefix_len, "type") != 0)
> +         {
> +             /* XXX: content-md5? content-language? content-encoding? */
> +             return apr_psprintf(r->pool, "Support for %s is not implemented.",
> +                                 ap_escape_html(r->pool, elts[i].key));
> +         }
> +    }
> +    return NULL;
> +}
> +
> /* handle the GET method */
> static int dav_method_get(request_rec *r)
> {
> @@ -959,6 +983,14 @@ static int dav_method_put(request_rec *r
>         mode = DAV_MODE_WRITE_TRUNC;
>     }
> 
> +    if ((body = dav_validate_content_headers(r)) != NULL) {
> +        /* RFC 2616 9.6: We must not ignore any Content-* headers we do not
> +         * understand.
> +         * XXX: Relax this for HTTP 1.0 requests?
> +         */
> +        return dav_error_response(r, HTTP_NOT_IMPLEMENTED, body);
> +    }
> +
>     /* make sure the resource can be modified (if versioning repository) */
>     if ((err = dav_auto_checkout(r, resource,
>                                  0 /* not parent_only */,
> 
> Propchange: httpd/httpd/branches/2.2.x/support/ab.c
> ------------------------------------------------------------------------------
> --- svn:mergeinfo (original)
> +++ svn:mergeinfo Tue Feb  8 10:05:07 2011
> @@ -1 +1 @@
> -/httpd/httpd/trunk/support/ab.c:83751-655654,657354,657433,657459,660461,660566,664330,678761,680082,681190,682369,683626,685112,686805,686809,687099,687754,693120,693392,693727-693728,696006,697093,706318,707163,708902,711421,719357,720250,729316-729317,729586,732414,732504,732832,733127,733134,733218-733219,734710,743589,755190,756671,756675,756678,756683,757741,761329,763394,764239,768535,769809,771587,771610,776325,777042,777091,778438-778439,778531,778942,780648,780655,780692,780697,780699,785457,785661,790587,803704,891282,942209,955966,992625,1026743
> +/httpd/httpd/trunk/support/ab.c:83751-655654,657354,657433,657459,660461,660566,664330,678761,680082,681190,682369,683626,685112,686805,686809,687099,687754,693120,693392,693727-693728,696006,697093,706318,707163,708902,711421,719357,720250,729316-729317,729586,732414,732504,732832,733127,733134,733218-733219,734710,743589,755190,756671,756675,756678,756683,757741,761329,763394,764239,768535,769809,771587,771610,776325,777042,777091,778438-778439,778531,778942,780648,780655,780692,780697,780699,785457,785661,790587,803704,891282,942209,955966,992625,1026743,1026746
> 
> Propchange: httpd/httpd/branches/2.2.x/support/suexec.c
> ------------------------------------------------------------------------------
> --- svn:mergeinfo (original)
> +++ svn:mergeinfo Tue Feb  8 10:05:07 2011
> @@ -1 +1 @@
> -/httpd/httpd/trunk/support/suexec.c:395552,417988,451572,583817,583830,611483,630858,639005,639010,647395,655711,657354,657459,660461,660566,664330,678761,680082,681190,682369,683626,685112,686805,686809,687099,687754,693120,693392,693727-693728,696006,697093,706318,707163,708902,711421,719357,720250,729316-729317,729586,732414,732504,732832,733127,733134,733218-733219,734710,743589,755190,756671,756675,756678,756683,757741,761329,763394,764239,768535,769809,771587,771610,776325,777042,777091,778438-778439,778531,778942,780648,780655,780692,780697,780699,785457,785661,790587,803704,891282,942209,955966,992625,1026743
> +/httpd/httpd/trunk/support/suexec.c:395552,417988,451572,583817,583830,611483,630858,639005,639010,647395,655711,657354,657459,660461,660566,664330,678761,680082,681190,682369,683626,685112,686805,686809,687099,687754,693120,693392,693727-693728,696006,697093,706318,707163,708902,711421,719357,720250,729316-729317,729586,732414,732504,732832,733127,733134,733218-733219,734710,743589,755190,756671,756675,756678,756683,757741,761329,763394,764239,768535,769809,771587,771610,776325,777042,777091,778438-778439,778531,778942,780648,780655,780692,780697,780699,785457,785661,790587,803704,891282,942209,955966,992625,1026743,1026746
> 
>