Commit 44107f6e authored by Roger Dingledine's avatar Roger Dingledine
Browse files

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


svn:r6105
parent 8a72c2bd
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -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);
+6 −0
Original line number Diff line number Diff line
@@ -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;
  }
}

+3 −0
Original line number Diff line number Diff line
@@ -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