Implement NEWNYM. Nick, did I do a bad thing?

svn:r6105
This commit is contained in:
Roger Dingledine 2006-03-09 00:18:16 +00:00
parent 8a72c2bd62
commit 44107f6ec4
3 changed files with 11 additions and 0 deletions

View File

@ -1118,6 +1118,8 @@ handle_control_signal(connection_t *conn, uint32_t len,
sig = SIGUSR2;
else if (!strcasecmp(s, "HALT") || !strcasecmp(s, "TERM"))
sig = SIGTERM;
else if (!strcasecmp(s, "NEWNYM"))
sig = SIGNEWNYM;
else {
connection_printf_to_buf(conn, "552 Unrecognized signal code \"%s\"\r\n",
s);

View File

@ -1220,6 +1220,9 @@ control_signal_act(int the_signal)
case 15:
signal_callback(0,0,(void*)(uintptr_t)SIGTERM);
break;
case SIGNEWNYM:
signal_callback(0,0,(void*)(uintptr_t)SIGNEWNYM);
break;
default:
return -1;
}
@ -1274,6 +1277,9 @@ signal_callback(int fd, short events, void *arg)
zombies */
break;
#endif
case SIGNEWNYM:
circuit_expire_all_dirty_circs();
break;
}
}

View File

@ -157,6 +157,9 @@
#ifndef SIGTERM
#define SIGTERM 15
#endif
/* Controller signals start at a high number so we don't
* conflict with system-defined signals. */
#define SIGNEWNYM 129
#if (SIZEOF_CELL_T != 0)
/* On Irix, stdlib.h defines a cell_t type, so we need to make sure