-*- coding: utf-8 -*-
Changes with Apache 2.2.7
+ *) mod_proxy_ajp: Ignore any ajp13 flush packets received before
+ we send the response headers. See Tomcat PR 43478.
+ [Jim Jagielski]
+
*) mod_proxy_balancer: Do not reset lbstatus, lbfactor and lbset when
starting a new child.
PR 39907 [Vinicius Petrucci <vpetrucci gmail.com>, Ruediger Pluem]
PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
[ start all new proposals below, under PATCHES PROPOSED. ]
- * mod_proxy_ajp: Ignore any ajp13 flush packets that we may
- receive before we send headers.
- Trunk version of patch:
- http://svn.apache.org/viewvc?view=rev&revision=579707
- Backport version for 2.2.x of patch:
- Trunk version of patch works (minus CHANGES conflict)
- +1: jim, rpluem, jfclere
PATCHES PROPOSED TO BACKPORT FROM TRUNK:
[ New proposals should be added at the end of the list ]
int backend_failed = 0;
apr_off_t bb_len;
int data_sent = 0;
+ int headers_sent = 0;
int rv = 0;
apr_int32_t conn_poll_fd;
apr_pollfd_t *conn_poll;
if (status != APR_SUCCESS) {
backend_failed = 1;
}
+ headers_sent = 1;
break;
case CMD_AJP13_SEND_BODY_CHUNK:
/* AJP13_SEND_BODY_CHUNK: piece of data */
status = ajp_parse_data(r, conn->data, &size, &buff);
if (status == APR_SUCCESS) {
+ /* AJP13_SEND_BODY_CHUNK with zero length
+ * is explicit flush message
+ */
if (size == 0) {
- /* AJP13_SEND_BODY_CHUNK with zero length
- * is explicit flush message
- */
- e = apr_bucket_flush_create(r->connection->bucket_alloc);
- APR_BRIGADE_INSERT_TAIL(output_brigade, e);
+ if (headers_sent) {
+ e = apr_bucket_flush_create(r->connection->bucket_alloc);
+ APR_BRIGADE_INSERT_TAIL(output_brigade, e);
+ }
+ else {
+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, r->server,
+ "Ignoring flush message received before headers");
+ }
}
else {
e = apr_bucket_transient_create(buff, size,