Przeglądaj źródła

r15581@catbus: nickm | 2007-10-09 14:36:47 -0400
Recompute voting schedule whenever a consensus is set.


svn:r11808

Nick Mathewson 17 lat temu
rodzic
commit
23614f9523
3 zmienionych plików z 3 dodań i 2 usunięć
  1. 1 0
      ChangeLog
  2. 1 2
      src/or/dirvote.c
  3. 1 0
      src/or/networkstatus.c

+ 1 - 0
ChangeLog

@@ -39,6 +39,7 @@ Changes in version 0.2.0.8-alpha - 2007-??-??
     - Only change the reply to a vote to "OK" if it's not already set.  This
       gets rid of annoying "400 OK" log messages, which may have been masking
       some deeper issue.  Bugfix on 0.2.0.7-alpha.
+    - When we get a valid consensus, recompute the voting schedule.
 
   o Minor bugfixes (performance):
     - Use a slightly simpler string hashing algorithm (copying Python's

+ 1 - 2
src/or/dirvote.c

@@ -1080,8 +1080,6 @@ static struct {
 void
 dirvote_recalculate_timing(time_t now)
 {
-  /* XXXX020 call this when inputs may have changed (i.e., whenver we get a
-   * fresh consensus.) */
   int interval, vote_delay, dist_delay;
   time_t start;
   time_t end;
@@ -1361,6 +1359,7 @@ dirvote_add_vote(const char *vote_body, const char **msg_out, int *status_out)
  again:
   vote = networkstatus_parse_vote_from_string(vote_body, &end_of_vote, 1);
   if (!vote) {
+    log_warn(LD_DIR, "Couldn't parse vote: length was %d", strlen(vote_body));
     *msg_out = "Unable to parse vote";
     goto err;
   }

+ 1 - 0
src/or/networkstatus.c

@@ -1015,6 +1015,7 @@ networkstatus_set_current_consensus(const char *consensus, int from_cache,
   current_consensus = c;
 
   update_consensus_networkstatus_fetch_time(now);
+  dirvote_recalculate_timing(now);
 
   if (!from_cache) {
     or_options_t *options = get_options();