]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
change SHUTDOWN_WAIT_LENGTH from a fixed 30 secs to a config option
authorRoger Dingledine <arma@torproject.org>
Sat, 12 Mar 2005 20:13:38 +0000 (20:13 +0000)
committerRoger Dingledine <arma@torproject.org>
Sat, 12 Mar 2005 20:13:38 +0000 (20:13 +0000)
svn:r3752

src/or/config.c
src/or/hibernate.c
src/or/or.h

index bea35a199c36bc4838449dbd924a9b05757b4ec4..76848693c2be3c9b19c4b46c741c1ec1b83c8c72 100644 (file)
@@ -165,6 +165,7 @@ static config_var_t config_vars[] = {
   VAR("RecommendedVersions", LINELIST, RecommendedVersions,  NULL),
   VAR("RendNodes",           STRING,   RendNodes,            NULL),
   VAR("RendExcludeNodes",    STRING,   RendExcludeNodes,     NULL),
+  VAR("ShutdownWaitLength",  UINT,     ShutdownWaitLength,   "30"),
   VAR("SocksPort",           UINT,     SocksPort,            "9050"),
   VAR("SocksBindAddress",    LINELIST, SocksBindAddress,     NULL),
   VAR("SocksPolicy",         LINELIST, SocksPolicy,          NULL),
index cb96bf39d60cee7566124faee3fd6501e37bd4ac..a9cbdd6b728b9a0525e691fb7d99a05f0cdae2b7 100644 (file)
@@ -29,8 +29,6 @@ hibernating, phase 2:
 #define HIBERNATE_STATE_LOWBANDWIDTH 3
 #define HIBERNATE_STATE_DORMANT 4
 
-#define SHUTDOWN_WAIT_LENGTH 30 /* seconds */
-
 extern long stats_n_seconds_working; /* published uptime */
 
 static int hibernate_state = HIBERNATE_STATE_LIVE;
@@ -656,6 +654,7 @@ static int hibernate_soft_limit_reached(void)
  * connections, but we continue handling old ones. */
 static void hibernate_begin(int new_state, time_t now) {
   connection_t *conn;
+  or_options_t *options = get_options();
 
   if (new_state == HIBERNATE_STATE_EXITING &&
       hibernate_state != HIBERNATE_STATE_LIVE) {
@@ -678,8 +677,8 @@ static void hibernate_begin(int new_state, time_t now) {
   /* XXX upload rendezvous service descriptors with no intro points */
 
   if (new_state == HIBERNATE_STATE_EXITING) {
-    log(LOG_NOTICE,"Interrupt: will shut down in %d seconds. Interrupt again to exit now.", SHUTDOWN_WAIT_LENGTH);
-    hibernate_end_time = time(NULL) + SHUTDOWN_WAIT_LENGTH;
+    log(LOG_NOTICE,"Interrupt: will shut down in %d seconds. Interrupt again to exit now.", options->ShutdownWaitLength);
+    hibernate_end_time = time(NULL) + options->ShutdownWaitLength;
   } else { /* soft limit reached */
     hibernate_end_time = interval_end_time;
   }
index 3c5fbb23d99fd62c219e41bb0e02069476771e0e..c3ceb3d4a1c199b85de59dae1300b40735124df6 100644 (file)
@@ -1059,6 +1059,8 @@ typedef struct {
   int ManageConnections; /**< Boolean: Does Tor attach new connections to
                           * circuits itself (1), or does it let the controller
                           * deal? (0) */
+  int ShutdownWaitLength; /**< When we get a SIGINT and we're a server, how
+                           * long do we wait before exiting? */
 } or_options_t;
 
 #define MAX_SOCKS_REPLY_LEN 1024