Only honour SIGNEWNYM every 5 seconds
Probably a braindead way of doing it, but it's also the simplest that I can think of.
Index: src/or/main.c
--- src/or/main.c (revision 9613) +++ src/or/main.c (working copy) @@ -54,6 +54,8 @@ static time_t time_to_fetch_running_routers = 0; /** When do we next launch DNS wildcarding checks? / static time_t time_to_check_for_correct_dns = 0; +/* When do we next allow a SIGNEWNYM? */ +static time_t time_to_allow_next_signewnym = 0;
/** Array of all open connections. The first n_conns elements are valid. */ static connection_t *connection_array[MAXCONNECTIONS+1] = @@ -1328,6 +1330,7 @@ uintptr_t sig = (uintptr_t)arg; (void)fd; (void)events;
- time_t now = time(NULL); switch (sig) { case SIGTERM: @@ -1371,8 +1374,12 @@ break; #endif case SIGNEWNYM:
-
circuit_expire_all_dirty_circs();
-
addressmap_clear_transient();
-
if (time_to_allow_next_signewnym < now) {
-
circuit_expire_all_dirty_circs();
-
addressmap_clear_transient();
+#define NEXT_SIGNEWNYM (5)
-
time_to_allow_next_signewnym = now + NEXT_SIGNEWNYM;
-
} break;
[Automatically added by flyspray2trac: Operating System: All]