http://cvs.apache.org/viewcvs.cgi/httpd-2.0/modules/http/http_protocol.c.diff?r1=1.399&r2=1.400
Attached is an alternate, which matches 1.3 AFAICT. I need to test it with proxy to make sure proxyreq is set properly, but I have at least confirmed that a CGI script can't decide what Server we should report.
Any concerns before I test further and commit?
Index: modules/http/http_protocol.c =================================================================== RCS file: /home/cvs/httpd-2.0/modules/http/http_protocol.c,v retrieving revision 1.469 diff -u -r1.469 http_protocol.c --- modules/http/http_protocol.c 9 May 2003 21:37:55 -0000 1.469 +++ modules/http/http_protocol.c 5 Jun 2003 20:31:10 -0000 @@ -1299,10 +1299,13 @@ h.bb = bb; form_header_field(&h, "Date", date); - /* keep a previously set server header (possibly from proxy), otherwise + /* keep the set-by-proxy server header, otherwise * generate a new server header */ - if ((server = apr_table_get(r->headers_out, "Server")) != NULL) { - form_header_field(&h, "Server", server); + if (r->proxyreq) { + 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());