Merge remote-tracking branch 'origin/maint-0.2.2'

This commit is contained in:
Nick Mathewson
2011-04-28 21:17:51 -04:00
2 changed files with 15 additions and 1 deletions
+5
View File
@@ -0,0 +1,5 @@
o Minor features:
- Relays can go for weeks without writing out their state file. A
relay that crashes would lose its bandwidth history (including
capacity estimate), client country statistics, and so on. Now relays
checkpoint the file at least every 12 hours. Addresses bug 3012.
+10 -1
View File
@@ -5300,6 +5300,11 @@ did_last_state_file_write_fail(void)
/** If writing the state to disk fails, try again after this many seconds. */
#define STATE_WRITE_RETRY_INTERVAL 3600
/** If we're a relay, how often should we checkpoint our state file even
* if nothing else dirties it? This will checkpoint ongoing stats like
* bandwidth used, per-country user stats, etc. */
#define STATE_RELAY_CHECKPOINT_INTERVAL (12*60*60)
/** Write the persistent state to disk. Return 0 for success, <0 on failure. */
int
or_state_save(time_t now)
@@ -5352,7 +5357,11 @@ or_state_save(time_t now)
tor_free(fname);
tor_free(contents);
global_state->next_write = TIME_MAX;
if (server_mode(get_options()))
global_state->next_write = now + STATE_RELAY_CHECKPOINT_INTERVAL;
else
global_state->next_write = TIME_MAX;
return 0;
}