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, rpl...@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 >> >> > > >