DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=25507>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=25507

mod_headers fails to set header

[EMAIL PROTECTED] changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|REOPENED                    |RESOLVED
         Resolution|                            |WONTFIX



------- Additional Comments From [EMAIL PROTECTED]  2003-12-14 13:43 -------
There was a bug in Apache 2 which, until fairly recently, allowed the Server
header field to be overridden.

>From 2.0.48 changes:

  *) Don't respect the Server header field as set by modules and CGIs.
     As with 1.3, for proxy requests any such field is from the origin
     server; otherwise it will have our server info as controlled by
     the ServerTokens directive.

It is a long-standing policy for Apache httpd to set the Server header field to
well-defined values, controlled only by the ServerTokens directive.  (See
http://httpd.apache.org/docs-2.0/mod/core.html#servertokens.)

The server can be patched easily enough to set the Server header field as you 
wish.

Find this code in modules/http/http_protocol.c:

    /* keep the set-by-proxy server header, otherwise
     * generate a new server header */
    if (r->proxyreq != PROXYREQ_NONE) {
        server = apr_table_get(r->headers_out, "Server");
        if (server) {
            form_header_field(&h, "Server", server);
        }
    }
    else {
        form_header_field(&h, "Server", ap_get_server_version());
    }


and change it to the following (untested):

    server = apr_table_get(r->headers_out, "Server");
    if (server) {
        form_header_field(&h, "Server", server);
    }
    else {
        form_header_field(&h, "Server", ap_get_server_version());
    }

As with IIS (see referenced URL), a module could be written to set Server to the
desired value without changing Apache.  But this module would have to implement
a filter that runs after the HTTP_HEADER filter and be able to parse the
response and substitute the desired Server value.  (Not recommended!)

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to