]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Add a new config option __DisablePredictedCircuits designed for
authorRoger Dingledine <arma@torproject.org>
Mon, 30 Apr 2007 09:18:48 +0000 (09:18 +0000)
committerRoger Dingledine <arma@torproject.org>
Mon, 30 Apr 2007 09:18:48 +0000 (09:18 +0000)
use by the controller, when we don't want Tor to build any circuits
preemptively.

svn:r10054

ChangeLog
src/or/circuituse.c
src/or/config.c
src/or/or.h

index 80da7f5e73fa336883eb3894faea2d0224e7ee3d..61a4cae73a0992a18169371d34277adc5939c843 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -63,6 +63,9 @@ Changes in version 0.2.0.1-alpha - 2007-??-??
   o Minor features (other):
     - Correctly report Windows 95 OSR2 and Windows 98 SE.
     - More unit tests.
+    - Add a new config option __DisablePredictedCircuits designed for
+      use by the controller, when we don't want Tor to build any circuits
+      preemptively.
 
   o Removed features:
     - Removed support for the old binary "version 0" controller protocol.
index 8b3e1a8f149a14a9b7de1f0b83cb5a14f2af7fe2..6bfe087100394d3798135ab49638a9390b41122b 100644 (file)
@@ -448,6 +448,7 @@ void
 circuit_build_needed_circs(time_t now)
 {
   static long time_to_new_circuit = 0;
+  or_options_t *options = get_options();
 
   /* launch a new circ for any pending streams that need one */
   connection_ap_attach_pending();
@@ -457,7 +458,7 @@ circuit_build_needed_circs(time_t now)
 
   if (time_to_new_circuit < now) {
     circuit_reset_failure_count(1);
-    time_to_new_circuit = now + get_options()->NewCircuitPeriod;
+    time_to_new_circuit = now + options->NewCircuitPeriod;
     if (proxy_mode(get_options()))
       addressmap_clean(now);
     circuit_expire_old_circuits(now);
@@ -472,7 +473,8 @@ circuit_build_needed_circs(time_t now)
     }
 #endif
   }
-  circuit_predict_and_launch_new();
+  if (!options->DisablePredictedCircuits)
+    circuit_predict_and_launch_new();
 }
 
 /** If the stream <b>conn</b> is a member of any of the linked
index 568cd934beb77daa3d8551bd23c97599249565b5..3a11b7d787a4208f38d5aab6829012b423a9741a 100644 (file)
@@ -123,7 +123,6 @@ static config_var_t _option_vars[] = {
   VAR("AccountingMax",       MEMUNIT,  AccountingMax,        "0 bytes"),
   VAR("AccountingStart",     STRING,   AccountingStart,      NULL),
   VAR("Address",             STRING,   Address,              NULL),
-  VAR("__AllDirActionsPrivate",BOOL,   AllDirActionsPrivate, "0"),
   VAR("AllowInvalidNodes",   CSV,      AllowInvalidNodes,
                                                         "middle,rendezvous"),
   VAR("AllowNonRFC953Hostnames", BOOL, AllowNonRFC953Hostnames, "0"),
@@ -258,6 +257,8 @@ static config_var_t _option_vars[] = {
   VAR("V1AuthoritativeDirectory",BOOL, V1AuthoritativeDir,   "0"),
   VAR("VersioningAuthoritativeDirectory",BOOL,VersioningAuthoritativeDir, "0"),
   VAR("VirtualAddrNetwork",  STRING,   VirtualAddrNetwork,   "127.192.0.0/10"),
+  VAR("__AllDirActionsPrivate",BOOL,   AllDirActionsPrivate, "0"),
+  VAR("__DisablePredictedCircuits",BOOL,DisablePredictedCircuits,"0"),
   VAR("__LeaveStreamsUnattached", BOOL,LeaveStreamsUnattached, "0"),
   { NULL, CONFIG_TYPE_OBSOLETE, 0, NULL }
 };
index c44504156acc6375bcaa0fe3f58d619cd97a194e..91f85f3257fccee15c00af2032faeb03a372d9cb 100644 (file)
@@ -1820,6 +1820,9 @@ typedef struct {
   int LeaveStreamsUnattached; /**< Boolean: Does Tor attach new streams to
                           * circuits itself (0), or does it expect a controller
                           * to cope? (1) */
+  int DisablePredictedCircuits; /**< Boolean: does Tor preemptively
+                                 * make circuits in the background (0),
+                                 * or not (1)? */
   int ShutdownWaitLength; /**< When we get a SIGINT and we're a server, how
                            * long do we wait before exiting? */
   int SafeLogging; /**< Boolean: are we allowed to log sensitive strings