mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-24 20:33:31 +01:00
Merge remote branch 'origin/maint-0.2.2'
This commit is contained in:
commit
cbcae4aef1
6
changes/bug2346
Normal file
6
changes/bug2346
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
o Minor features
|
||||||
|
- If writing the state file to disk fails, wait up to an hour
|
||||||
|
before retrying again. (Our old code would retry the write
|
||||||
|
immediately.) Fixes bug 2346. Bugfix on Tor 0.1.1.3-alpha.
|
||||||
|
|
||||||
|
|
@ -5292,6 +5292,9 @@ or_state_load(void)
|
|||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** If writing the state to disk fails, try again after this many seconds. */
|
||||||
|
#define STATE_WRITE_RETRY_INTERVAL 3600
|
||||||
|
|
||||||
/** Write the persistent state to disk. Return 0 for success, <0 on failure. */
|
/** Write the persistent state to disk. Return 0 for success, <0 on failure. */
|
||||||
int
|
int
|
||||||
or_state_save(time_t now)
|
or_state_save(time_t now)
|
||||||
@ -5326,10 +5329,14 @@ or_state_save(time_t now)
|
|||||||
tor_free(state);
|
tor_free(state);
|
||||||
fname = get_datadir_fname("state");
|
fname = get_datadir_fname("state");
|
||||||
if (write_str_to_file(fname, contents, 0)<0) {
|
if (write_str_to_file(fname, contents, 0)<0) {
|
||||||
log_warn(LD_FS, "Unable to write state to file \"%s\"", fname);
|
log_warn(LD_FS, "Unable to write state to file \"%s\"; will try later",
|
||||||
|
fname);
|
||||||
global_state->LastWritten = -1;
|
global_state->LastWritten = -1;
|
||||||
tor_free(fname);
|
tor_free(fname);
|
||||||
tor_free(contents);
|
tor_free(contents);
|
||||||
|
/* Try again after STATE_WRITE_RETRY_INTERVAL (or sooner, if the state
|
||||||
|
* changes sooner). */
|
||||||
|
global_state->next_write = now + STATE_WRITE_RETRY_INTERVAL;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user