X-Git-Url: https://git.tld-linux.org/?p=packages%2Flighttpd.git;a=blobdiff_plain;f=lighttpd-mod_evasive-status_code.patch;fp=lighttpd-mod_evasive-status_code.patch;h=0000000000000000000000000000000000000000;hp=02cbd9ecd0f2ef8c74318e824169cb102ec80e03;hb=79fe78f5ef198f8af6678f7004fd1c20d1294d02;hpb=47a46b80631467d42e733372908dc1e706330f17 diff --git a/lighttpd-mod_evasive-status_code.patch b/lighttpd-mod_evasive-status_code.patch deleted file mode 100644 index 02cbd9e..0000000 --- a/lighttpd-mod_evasive-status_code.patch +++ /dev/null @@ -1,97 +0,0 @@ ---- lighttpd-1.4.19/src/mod_evasive.c 2008-09-19 17:50:24.307245276 +0300 -+++ lighttpd-1.4.22/src/mod_evasive.c 2009-05-12 02:21:58.524447939 +0300 -@@ -28,11 +28,15 @@ - typedef struct { - unsigned short max_conns; - unsigned short silent; -+ unsigned short http_status_code; -+ unsigned int retry_after; - } plugin_config; - - typedef struct { - PLUGIN_DATA; - -+ buffer *evasive_rftmp; -+ - plugin_config **config_storage; - - plugin_config conf; -@@ -46,6 +50,10 @@ - - p = calloc(1, sizeof(*p)); - -+ p->evasive_rftmp = buffer_init(); -+ -+ buffer_prepare_copy(p->evasive_rftmp, 255); -+ - return p; - } - -@@ -56,6 +64,8 @@ - - if (!p) return HANDLER_GO_ON; - -+ buffer_free(p->evasive_rftmp); -+ - if (p->config_storage) { - size_t i; - for (i = 0; i < srv->config_context->used; i++) { -@@ -85,6 +85,8 @@ - config_values_t cv[] = { - { "evasive.max-conns-per-ip", NULL, T_CONFIG_SHORT, T_CONFIG_SCOPE_CONNECTION }, /* 0 */ - { "evasive.silent", NULL, T_CONFIG_BOOLEAN, T_CONFIG_SCOPE_CONNECTION }, /* 1 */ -+ { "evasive.http-status-code", NULL, T_CONFIG_SHORT, T_CONFIG_SCOPE_CONNECTION }, /* 2 */ -+ { "evasive.retry-after", NULL, T_CONFIG_SHORT, T_CONFIG_SCOPE_CONNECTION }, /* 3 */ - { NULL, NULL, T_CONFIG_UNSET, T_CONFIG_SCOPE_UNSET } - }; - -@@ -94,11 +96,15 @@ - plugin_config *s; - - s = calloc(1, sizeof(plugin_config)); -- s->max_conns = 0; -- s->silent = 0; -+ s->max_conns = 0; -+ s->silent = 0; -+ s->http_status_code = 503; -+ s->retry_after = 0; - - cv[0].destination = &(s->max_conns); - cv[1].destination = &(s->silent); -+ cv[2].destination = &(s->http_status_code); -+ cv[3].destination = &(s->retry_after); - - p->config_storage[i] = s; - -@@ -107,6 +123,8 @@ - - PATCH(max_conns); - PATCH(silent); -+ PATCH(http_status_code); -+ PATCH(retry_after); - - /* skip the first, the global context */ - for (i = 1; i < srv->config_context->used; i++) { -@@ -124,6 +142,10 @@ - PATCH(max_conns); - } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("evasive.silent"))) { - PATCH(silent); -+ } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("evasive.http-status-code"))) { -+ PATCH(http_status_code); -+ } else if (buffer_is_equal_string(du->key, CONST_STR_LEN("evasive.retry-after"))) { -+ PATCH(retry_after); - } - } - } -@@ -192,8 +214,10 @@ - inet_ntop_cache_get_ip(srv, &(con->dst_addr)), - "turned away. Too many connections."); - -- con->http_status = 403; - con->mode = DIRECT; -+ con->http_status = p->conf.http_status_code; -+ buffer_copy_long(p->evasive_rftmp, p->conf.retry_after); -+ response_header_overwrite(srv, con, CONST_STR_LEN("Retry-After"), CONST_BUF_LEN(p->evasive_rftmp)); - return HANDLER_FINISHED; - } - }