worker->acquire = apr_time_make(0, ival * 1000);
worker->acquire_set = 1;
}
+ else if (!strcasecmp(key, "timeout")) {
+ ival = atoi(val);
+ if (ival < 1)
+ return "timeout must be at least one second";
+ worker->timeout = apr_time_from_sec(ival);
+ worker->timeout_set = 1;
+ }
else {
return "unknown parameter";
}
if ((err = ap_proxy_add_worker(&worker, cmd->pool, conf, name)) != NULL)
return apr_pstrcat(cmd->temp_pool, "BalancerMember: ", err, NULL);
}
- if (conf->timeout_set)
+ if ((worker->timeout_set = conf->timeout_set))
worker->timeout = conf->timeout;
-
+
arr = apr_table_elts(params);
elts = (const apr_table_entry_t *)arr->elts;
for (i = 0; i < arr->nelts; i++) {
int preserve_host;
int preserve_host_set;
apr_interval_time_t timeout;
- apr_interval_time_t timeout_set;
+ int timeout_set;
enum {
bad_error,
bad_ignore,
apr_interval_time_t ttl; /* maximum amount of time in seconds a connection
* may be available while exceeding the soft limit */
apr_interval_time_t timeout; /* connection timeout */
+ int timeout_set;
apr_interval_time_t acquire; /* acquire timeout when the maximum number of connections is exceeded */
char acquire_set;
proxy_conn_pool *cp; /* Connection pool to use */
PROXY_DECLARE(apr_status_t) ap_proxy_determine_connection(apr_pool_t *p, request_rec *r, proxy_server_conf *conf, proxy_worker *worker, proxy_conn_rec *conn,
apr_pool_t *ppool, apr_uri_t *uri, char **url, const char *proxyname, apr_port_t proxyport,
char *server_portstr, int server_portstr_size);
+PROXY_DECLARE(apr_status_t) ap_proxy_destroy_connection(proxy_conn_rec *conn);
+PROXY_DECLARE(apr_status_t) ap_proxy_close_connection(proxy_conn_rec *conn);
+
/* For proxy_util */
extern module PROXY_DECLARE_DATA proxy_module;