From: Jim Jagielski Date: Tue, 18 Sep 2007 13:34:25 +0000 (+0000) Subject: Merge r574024 from trunk: X-Git-Tag: 2.2.7~392 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=54b7d80725423cc154e7f03f2aa6674ddef68b29;p=thirdparty%2Fapache%2Fhttpd.git Merge r574024 from trunk: Make AJP HEAD aware Reviewed by: jim git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.2.x@576911 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/CHANGES b/CHANGES index 92b8ac133a8..1d8ac6885f0 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,9 @@ -*- coding: utf-8 -*- Changes with Apache 2.2.7 + *) mod_proxy_ajp: Differentiate within AJP between GET and HEAD + requests. PR 43060 [Jim Jagielski] + *) Don't send spurious "100 Continue" response lines. PR 38014 [Basant Kumar Kukreja ] diff --git a/STATUS b/STATUS index c354877d316..a46cd1ab547 100644 --- a/STATUS +++ b/STATUS @@ -79,13 +79,6 @@ RELEASE SHOWSTOPPERS: PATCHES ACCEPTED TO BACKPORT FROM TRUNK: [ start all new proposals below, under PATCHES PROPOSED. ] - * mod_proxy_ajp: Differentiate within AJP between GET and HEAD requests. - PR 43060 - Trunk version of patch: - http://svn.apache.org/viewcvs.cgi?rev=574024&view=rev - Backport version for 2.2.x of patch: - Trunk version of patch works - +1: rpluem, jim, niq PATCHES PROPOSED TO BACKPORT FROM TRUNK: [ New proposals should be added at the end of the list ] diff --git a/modules/proxy/ajp_header.c b/modules/proxy/ajp_header.c index 07ffba97c07..6fecb5a91fb 100644 --- a/modules/proxy/ajp_header.c +++ b/modules/proxy/ajp_header.c @@ -162,13 +162,19 @@ static const unsigned char sc_for_req_method_table[] = { 0 /* M_INVALID */ }; -static int sc_for_req_method_by_id(int method_id) +static int sc_for_req_method_by_id(request_rec *r) { - if (method_id < 0 || method_id > M_INVALID) + int method_id = r->method_number; + if (method_id < 0 || method_id > M_INVALID) { return UNKNOWN_METHOD; - else + } + else if (r->header_only) { + return SC_M_HEAD; + } + else { return sc_for_req_method_table[method_id] ? sc_for_req_method_table[method_id] : UNKNOWN_METHOD; + } } /* @@ -218,7 +224,7 @@ static apr_status_t ajp_marshal_into_msgb(ajp_msg_t *msg, ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, r->server, "Into ajp_marshal_into_msgb"); - if ((method = sc_for_req_method_by_id(r->method_number)) == UNKNOWN_METHOD) { + if ((method = sc_for_req_method_by_id(r)) == UNKNOWN_METHOD) { ap_log_error(APLOG_MARK, APLOG_ERR, 0, r->server, "ajp_marshal_into_msgb - No such method %s", r->method);