Browse Source

Merge branch 'maint-0.3.0'

Nick Mathewson 6 years ago
parent
commit
b214c2c095
4 changed files with 17 additions and 2 deletions
  1. 3 0
      changes/bug22252
  2. 10 1
      src/or/circuitstats.c
  3. 3 0
      src/or/circuitstats.h
  4. 1 1
      src/or/config.c

+ 3 - 0
changes/bug22252

@@ -0,0 +1,3 @@
+  o Minor bugfixes (configuration):
+    - Do not crash when starting with LearnCircuitBuildTimeout 0.
+      Fixes bug 22252; bugfix on 0.2.9.3-alpha.

+ 10 - 1
src/or/circuitstats.c

@@ -106,11 +106,20 @@ get_circuit_build_timeout_ms(void)
  */
 int
 circuit_build_times_disabled(const or_options_t *options)
+{
+  return circuit_build_times_disabled_(options, 0);
+}
+
+/** As circuit_build_times_disabled, but take options as an argument. */
+int
+circuit_build_times_disabled_(const or_options_t *options,
+                              int ignore_consensus)
 {
   if (unit_tests) {
     return 0;
   } else {
-    int consensus_disabled = networkstatus_get_param(NULL, "cbtdisabled",
+    int consensus_disabled =
+      ignore_consensus ? 0 : networkstatus_get_param(NULL, "cbtdisabled",
                                                      0, 0, 1);
     int config_disabled = !options->LearnCircuitBuildTimeout;
     int dirauth_disabled = options->AuthoritativeDir;

+ 3 - 0
src/or/circuitstats.h

@@ -18,6 +18,9 @@ double get_circuit_build_close_time_ms(void);
 double get_circuit_build_timeout_ms(void);
 
 int circuit_build_times_disabled(const or_options_t *options);
+int circuit_build_times_disabled_(const or_options_t *options,
+                                  int ignore_consensus);
+
 int circuit_build_times_enough_to_compute(const circuit_build_times_t *cbt);
 void circuit_build_times_update_state(const circuit_build_times_t *cbt,
                                       or_state_t *state);

+ 1 - 1
src/or/config.c

@@ -3490,7 +3490,7 @@ options_validate(or_options_t *old_options, or_options_t *options,
     int severity = LOG_NOTICE;
     /* Be a little quieter if we've deliberately disabled
      * LearnCircuitBuildTimeout. */
-    if (circuit_build_times_disabled(options)) {
+    if (circuit_build_times_disabled_(options, 1)) {
       severity = LOG_INFO;
     }
     log_fn(severity, LD_CONFIG, "You disabled LearnCircuitBuildTimeout, but "