Browse Source

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


svn:r11808

Nick Mathewson 17 years ago
parent
commit
23614f9523
3 changed files with 3 additions and 2 deletions
  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
     - 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
       gets rid of annoying "400 OK" log messages, which may have been masking
       some deeper issue.  Bugfix on 0.2.0.7-alpha.
       some deeper issue.  Bugfix on 0.2.0.7-alpha.
+    - When we get a valid consensus, recompute the voting schedule.
 
 
   o Minor bugfixes (performance):
   o Minor bugfixes (performance):
     - Use a slightly simpler string hashing algorithm (copying Python's
     - Use a slightly simpler string hashing algorithm (copying Python's

+ 1 - 2
src/or/dirvote.c

@@ -1080,8 +1080,6 @@ static struct {
 void
 void
 dirvote_recalculate_timing(time_t now)
 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;
   int interval, vote_delay, dist_delay;
   time_t start;
   time_t start;
   time_t end;
   time_t end;
@@ -1361,6 +1359,7 @@ dirvote_add_vote(const char *vote_body, const char **msg_out, int *status_out)
  again:
  again:
   vote = networkstatus_parse_vote_from_string(vote_body, &end_of_vote, 1);
   vote = networkstatus_parse_vote_from_string(vote_body, &end_of_vote, 1);
   if (!vote) {
   if (!vote) {
+    log_warn(LD_DIR, "Couldn't parse vote: length was %d", strlen(vote_body));
     *msg_out = "Unable to parse vote";
     *msg_out = "Unable to parse vote";
     goto err;
     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;
   current_consensus = c;
 
 
   update_consensus_networkstatus_fetch_time(now);
   update_consensus_networkstatus_fetch_time(now);
+  dirvote_recalculate_timing(now);
 
 
   if (!from_cache) {
   if (!from_cache) {
     or_options_t *options = get_options();
     or_options_t *options = get_options();