---- src/mod_evasive_orig.c Wed Jan 4 21:24:51 2006
-+++ src/mod_evasive.c Thu Apr 13 21:32:12 2006
+--- lighttpd-1.4.13/src/mod_evasive.c~ 2006-10-10 03:02:12.749561697 +0300
++++ lighttpd-1.4.13/src/mod_evasive.c 2006-10-10 03:14:39.056335465 +0300
@@ -27,11 +27,15 @@
typedef struct {
typedef struct {
PLUGIN_DATA;
-
+
+ buffer *evasive_rftmp;
-+
++
plugin_config **config_storage;
-
- plugin_config conf;
+
+ plugin_config conf;
@@ -42,6 +46,10 @@
-
+
p = calloc(1, sizeof(*p));
-
+
+ p->evasive_rftmp = buffer_init();
+
+ buffer_prepare_copy(p->evasive_rftmp, 255);
-+
++
return p;
}
@@ -52,6 +60,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++) {
{ NULL, NULL, T_CONFIG_UNSET, T_CONFIG_SCOPE_UNSET }
};
-@@ -82,9 +94,13 @@
+@@ -84,9 +94,13 @@
plugin_config *s;
-
+
s = calloc(1, sizeof(plugin_config));
- s->max_conns = 0;
+ s->max_conns = 0;
+ s->http_status_code = 503;
+ s->retry_after = 0;
-
+
cv[0].destination = &(s->max_conns);
+ cv[1].destination = &(s->http_status_code);
+ cv[2].destination = &(s->retry_after);
-
+
p->config_storage[i] = s;
-
-@@ -103,6 +119,8 @@
+
+@@ -105,6 +119,8 @@
plugin_config *s = p->config_storage[0];
PATCH(max_conns);
+ PATCH(http_status_code);
+ PATCH(retry_after);
-
+
/* skip the first, the global context */
for (i = 1; i < srv->config_context->used; i++) {
@@ -118,6 +136,10 @@