On 09/11/2009 11:55 PM, [email protected] wrote: > Author: wrowe > Date: Fri Sep 11 21:55:46 2009 > New Revision: 814048 > > URL: http://svn.apache.org/viewvc?rev=814048&view=rev > Log: > Catch the somewhat absurd combination of a 417 error where no Expect header > was present. > > Modified: > httpd/httpd/trunk/modules/http/http_protocol.c > > Modified: httpd/httpd/trunk/modules/http/http_protocol.c > URL: > http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/http/http_protocol.c?rev=814048&r1=814047&r2=814048&view=diff > ============================================================================== > --- httpd/httpd/trunk/modules/http/http_protocol.c (original) > +++ httpd/httpd/trunk/modules/http/http_protocol.c Fri Sep 11 21:55:46 2009 > @@ -1011,16 +1011,19 @@ > "request-header field overlap the current extent\n" > "of the selected resource.</p>\n"); > case HTTP_EXPECTATION_FAILED: > - return(apr_pstrcat(p, > - "<p>The expectation given in the Expect " > - "request-header" > - "\nfield could not be met by this server.</p>\n" > - "<p>The client sent<pre>\n Expect: ", > - ap_escape_html(r->pool, > apr_table_get(r->headers_in, "Expect")), > - "\n</pre>\n" > - "but we only allow the 100-continue " > - "expectation.</p>\n", > - NULL)); > + s1 = apr_table_get(r->headers_in, "Expect"); > + if (s1) > + s1 = apr_pstrcat(p, > + "<p>The expectation given in the Expect > request-header\n" > + "field could not be met by this server.\n" > + "The client sent<pre>\n Expect: ", > + ap_escape_html(r->pool, s1), "\n</pre>\n" > + NULL); > + else > + s1 = "<p>No expectation was seen, the Expect request-header \n" > + "field was not presented by the client.\n"; > + return add_optional_notes(r, s1, "error-notes", "</p>" > + "<p>Only the 100-continue expectation is > supported.</p>\n");
Hm. Does it make sense to squeeze in the contents of the error-notes between s1 and "<p>Only the 100-continue expectation is supported.</p>\n"? Why not just return apr_pstrcat(p, s1, "<p>Only the 100-continue expectation is supported.</p>\n", NULL)? Regards RĂ¼diger
