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


Reply via email to