r11872@catbus: nickm | 2007-02-22 01:08:46 -0500

patch from mwenge: rate-limit newnym.


svn:r9614
This commit is contained in:
Nick Mathewson
2007-02-22 06:21:16 +00:00
parent 0fb179aa2e
commit fe9224dabc
2 changed files with 10 additions and 3 deletions
+9 -2
View File
@@ -54,6 +54,8 @@ static time_t time_to_fetch_directory = 0;
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 @@ signal_callback(int fd, short events, void *arg)
uintptr_t sig = (uintptr_t)arg;
(void)fd;
(void)events;
time_t now = time(NULL);
switch (sig)
{
case SIGTERM:
@@ -1371,8 +1374,12 @@ signal_callback(int fd, short events, void *arg)
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;
case SIGCLEARDNSCACHE:
addressmap_clear_transient();