PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
[ start all new proposals below, under PATCHES PROPOSED. ]
- *) back port: Add CPING to health check logic - remove hardcoded timeout.
- Trunk version of patch:
- https://svn.apache.org/r1887439
- Backport version for 2.4.x of patch:
- Trunk version of patch works
- svn merge -c 1887439 ^/httpd/httpd/trunk .
- +1: minfrin, rpluem, covener
PATCHES PROPOSED TO BACKPORT FROM TRUNK:
return hc_determine_connection(ctx, hc, &(*backend)->addr, ptemp);
}
-static apr_status_t hc_check_cping(baton_t *baton)
+static apr_status_t hc_check_cping(baton_t *baton, apr_thread_t *thread)
{
int status;
sctx_t *ctx = baton->ctx;
return backend_cleanup("HCCPING", backend, ctx->s, status);
}
set_request_connection(r, backend->connection);
-
- timeout = apr_time_from_sec(10); /* 10 seconds */
+ backend->connection->current_thread = thread;
+
+ if (hc->s->ping_timeout_set) {
+ timeout = hc->s->ping_timeout;
+ } else if ( hc->s->conn_timeout_set) {
+ timeout = hc->s->conn_timeout;
+ } else if ( hc->s->timeout_set) {
+ timeout = hc->s->timeout;
+ } else {
+ /* default to socket timeout */
+ apr_socket_timeout_get(backend->sock, &timeout);
+ }
status = ajp_handle_cping_cpong(backend->sock, r, timeout);
ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, baton->ctx->s, "HCCPING done %d", status);
return backend_cleanup("HCCPING", backend, ctx->s, status);
* then apply those to the resulting response, otherwise
* any status code 2xx or 3xx is considered "passing"
*/
-static apr_status_t hc_check_http(baton_t *baton)
+static apr_status_t hc_check_http(baton_t *baton, apr_thread_t *thread)
{
int status;
proxy_conn_rec *backend = NULL;
return backend_cleanup("HCOH", backend, ctx->s, status);
}
set_request_connection(r, backend->connection);
+ backend->connection->current_thread = thread;
bb = apr_brigade_create(r->pool, r->connection->bucket_alloc);
rv = hc_check_tcp(baton);
}
else if (hc->s->method == CPING) {
- rv = hc_check_cping(baton);
+ rv = hc_check_cping(baton, thread);
}
else {
- rv = hc_check_http(baton);
+ rv = hc_check_http(baton, thread);
}
now = apr_time_now();