Ticket #1038: lighttpd-proxy-core.disable-time.patch
| File lighttpd-proxy-core.disable-time.patch, 4.2 kB (added by Dan <dmarkham@…>, 20 months ago) |
|---|
-
src/mod_proxy_core.c
40 40 #define CONFIG_PROXY_CORE_MAX_POOL_SIZE PROXY_CORE ".max-pool-size" 41 41 #define CONFIG_PROXY_CORE_CHECK_LOCAL PROXY_CORE ".check-local" 42 42 #define CONFIG_PROXY_CORE_SPLIT_HOSTNAMES PROXY_CORE ".split-hostnames" 43 #define CONFIG_PROXY_CORE_DISABLE_TIME PROXY_CORE ".disable-time" 43 44 44 45 static int mod_proxy_wakeup_connections(server *srv, plugin_data *p, plugin_config *p_conf); 45 46 … … 268 269 { CONFIG_PROXY_CORE_CHECK_LOCAL, NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_CONNECTION }, /* 9 */ 269 270 { CONFIG_PROXY_CORE_MAX_KEEP_ALIVE, NULL, T_CONFIG_SHORT, T_CONFIG_SCOPE_CONNECTION }, /* 10 */ 270 271 { CONFIG_PROXY_CORE_SPLIT_HOSTNAMES, NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_CONNECTION }, /* 11 */ 272 { CONFIG_PROXY_CORE_DISABLE_TIME, NULL, T_CONFIG_SHORT, T_CONFIG_SCOPE_CONNECTION }, /* 12 */ 271 273 { NULL, NULL, T_CONFIG_UNSET, T_CONFIG_SCOPE_UNSET } 272 274 }; 273 275 … … 295 297 s->check_local = 0; 296 298 s->split_hostnames = 1; 297 299 s->max_keep_alive_requests = 0; 300 s->disable_time = 60; 298 301 299 302 cv[0].destination = p->backends_arr; 300 303 cv[1].destination = &(s->debug); … … 306 309 cv[9].destination = &(s->check_local); 307 310 cv[10].destination = &(s->max_keep_alive_requests); 308 311 cv[11].destination = &(s->split_hostnames); 312 cv[12].destination = &(s->disable_time); 309 313 310 314 buffer_reset(p->balance_buf); 311 315 … … 1342 1346 return HANDLER_WAIT_FOR_FD; 1343 1347 case HANDLER_ERROR: 1344 1348 /* there is no-one on the other side */ 1345 sess->proxy_con->address->disabled_until = srv->cur_ts + 60; 1346 1347 TRACE("connecting to address %s (%p) failed, disabling for 60 sec", 1349 sess->proxy_con->address->disabled_until = srv->cur_ts + p->conf.disable_time; 1350 1351 1352 TRACE("connecting to address %s (%p) failed, disabling for %d sec", 1348 1353 BUF_STR(sess->proxy_con->address->name), 1349 sess->proxy_con->address); 1354 sess->proxy_con->address, 1355 p->conf.disable_time ); 1356 1350 1357 COUNTER_INC(sess->proxy_backend->requests_failed); 1351 1358 1352 1359 sess->proxy_con->address->state = PROXY_ADDRESS_STATE_DISABLED; … … 1390 1397 break; 1391 1398 case EHOSTUNREACH: 1392 1399 /* there is no-one on the other side */ 1393 sess->proxy_con->address->disabled_until = srv->cur_ts + 60;1400 sess->proxy_con->address->disabled_until = srv->cur_ts + p->conf.disable_time; 1394 1401 1395 TRACE("host %s is unreachable, disabling for 60 sec", sess->proxy_con->address->name->ptr);1402 TRACE("host %s is unreachable, disabling for %d sec", sess->proxy_con->address->name->ptr, p->conf.disable_time); 1396 1403 break; 1397 1404 default: 1398 sess->proxy_con->address->disabled_until = srv->cur_ts + 60;1405 sess->proxy_con->address->disabled_until = srv->cur_ts + p->conf.disable_time; 1399 1406 1400 1407 TRACE("connected finally failed: %s (%d)", strerror(socket_error), socket_error); 1401 1408 1402 TRACE("connect to address %s failed and I don't know why, disabling for 10 sec", sess->proxy_con->address->name->ptr);1409 TRACE("connect to address %s failed and I don't know why, disabling for %d sec", sess->proxy_con->address->name->ptr, p->conf.disable_time); 1403 1410 1404 1411 break; 1405 1412 } … … 1904 1911 PATCH_OPTION(check_local); 1905 1912 PATCH_OPTION(split_hostnames); 1906 1913 PATCH_OPTION(max_keep_alive_requests); 1914 PATCH_OPTION(disable_time); 1907 1915 1908 1916 /* skip the first, the global context */ 1909 1917 for (i = 1; i < srv->config_context->used; i++) { … … 1943 1951 PATCH_OPTION(split_hostnames); 1944 1952 } else if (buffer_is_equal_string(du->key, CONST_STR_LEN(CONFIG_PROXY_CORE_MAX_KEEP_ALIVE))) { 1945 1953 PATCH_OPTION(max_keep_alive_requests); 1954 } else if (buffer_is_equal_string(du->key, CONST_STR_LEN(CONFIG_PROXY_CORE_DISABLE_TIME))) { 1955 PATCH_OPTION(disable_time); 1946 1956 } 1947 1957 } 1948 1958 } -
src/mod_proxy_core.h
32 32 unsigned short check_local; 33 33 unsigned short split_hostnames; 34 34 unsigned short max_keep_alive_requests; 35 unsigned short disable_time; 35 36 36 37 proxy_balance_t balancer; 37 38 struct proxy_protocol *protocol;

