* Use distinct char pointers for sending and receiving buffers to avoid
destroying the pointer to the sending buffer in the ajp message if
data is received from the backend before all data is sent to the
backend.
PR: 45911
Submitted by: rpluem
Reviewed by: rpluem, jim, jfclere
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.2.x@714273
13f79535-47bb-0310-9956-
ffa450edef68
-*- coding: utf-8 -*-
Changes with Apache 2.2.11
+ *) mod_proxy_ajp: Do not fail if response data is sent before all request
+ data is read. PR 45911 [Ruediger Pluem]
+
*) mod_proxy_balancer: Add in forced recovery for balancer members if
all are in error state. [Mladen Turk]
PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
[ start all new proposals below, under PATCHES PROPOSED. ]
- * mod_proxy_ajp: Do not fail if response data is sent before all request
- data is read. PR 45911
- Trunk version of patch:
- http://svn.apache.org/viewvc?rev=709666&view=rev
- Backport version for 2.2.x of patch:
- Trunk version of patch works
- +1: rpluem, jim, jfclere
PATCHES PROPOSED TO BACKPORT FROM TRUNK:
[ New proposals should be added at the end of the list ]
ajp_msg_t *msg;
apr_size_t bufsiz = 0;
char *buff;
+ char *send_body_chunk_buff;
apr_uint16_t size;
const char *tenc;
int havebody = 1;
break;
case CMD_AJP13_SEND_BODY_CHUNK:
/* AJP13_SEND_BODY_CHUNK: piece of data */
- status = ajp_parse_data(r, conn->data, &size, &buff);
+ status = ajp_parse_data(r, conn->data, &size, &send_body_chunk_buff);
if (status == APR_SUCCESS) {
/* AJP13_SEND_BODY_CHUNK with zero length
* is explicit flush message
}
}
else {
- e = apr_bucket_transient_create(buff, size,
+ e = apr_bucket_transient_create(send_body_chunk_buff, size,
r->connection->bucket_alloc);
APR_BRIGADE_INSERT_TAIL(output_brigade, e);