|
@@ -1335,7 +1335,7 @@ networkstatus_compute_consensus(smartlist_t *votes,
|
|
|
smartlist_t *flags;
|
|
|
const char *flavor_name;
|
|
|
uint32_t max_unmeasured_bw_kb = DEFAULT_MAX_UNMEASURED_BW_KB;
|
|
|
- int64_t G=0, M=0, E=0, D=0, T=0; /* For bandwidth weights */
|
|
|
+ int64_t G, M, E, D, T; /* For bandwidth weights */
|
|
|
const routerstatus_format_type_t rs_format =
|
|
|
flavor == FLAV_NS ? NS_V3_CONSENSUS : NS_V3_CONSENSUS_MICRODESC;
|
|
|
char *params = NULL;
|
|
@@ -1368,8 +1368,13 @@ networkstatus_compute_consensus(smartlist_t *votes,
|
|
|
}
|
|
|
|
|
|
if (consensus_method >= MIN_METHOD_FOR_INIT_BW_WEIGHTS_ONE) {
|
|
|
+ /* It's smarter to initialize these weights to 1, so that later on,
|
|
|
+ * we can't accidentally divide by zero. */
|
|
|
G = M = E = D = 1;
|
|
|
T = 4;
|
|
|
+ } else {
|
|
|
+ /* ...but originally, they were set to zero. */
|
|
|
+ G = M = E = D = T = 0;
|
|
|
}
|
|
|
|
|
|
/* Compute medians of time-related things, and figure out how many
|