mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-10 21:23:58 +01:00
Resolve some hibernating-related XXXX009s.
svn:r2875
This commit is contained in:
parent
402c75fb06
commit
3e6edf20cc
@ -310,6 +310,10 @@ options_act(void) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Set up accounting */
|
||||
if (get_options()->AccountingMaxKB)
|
||||
configure_accounting(time(NULL));
|
||||
|
||||
if(retry_all_listeners(1) < 0) {
|
||||
log_fn(LOG_ERR,"Failed to bind one of the listener ports.");
|
||||
return -1;
|
||||
|
@ -83,7 +83,6 @@ static uint32_t expected_bandwidth_usage = 0;
|
||||
|
||||
static void reset_accounting(time_t now);
|
||||
static int read_bandwidth_usage(void);
|
||||
static int record_bandwidth_usage(time_t now);
|
||||
static time_t start_of_accounting_period_after(time_t now);
|
||||
static time_t start_of_accounting_period_containing(time_t now);
|
||||
static void accounting_set_wakeup_time(void);
|
||||
@ -316,12 +315,11 @@ accounting_set_wakeup_time(void)
|
||||
(int)(unsigned char)digest[0], buf);
|
||||
}
|
||||
|
||||
/* XXXX009 This should also get called on HUP and shutdown. */
|
||||
#define BW_ACCOUNTING_VERSION 1
|
||||
/** Save all our bandwidth tracking information to disk. Return 0 on
|
||||
* success, -1 on failure*/
|
||||
static int
|
||||
record_bandwidth_usage(time_t now)
|
||||
int
|
||||
accounting_record_bandwidth_usage(time_t now)
|
||||
{
|
||||
char buf[128];
|
||||
char fname[512];
|
||||
@ -483,7 +481,7 @@ static void hibernate_begin(int new_state, time_t now) {
|
||||
}
|
||||
|
||||
hibernate_state = new_state;
|
||||
record_bandwidth_usage(time(NULL));
|
||||
accounting_record_bandwidth_usage(now);
|
||||
}
|
||||
|
||||
/** Called when we've been hibernating and our timeout is reached. */
|
||||
@ -539,7 +537,7 @@ hibernate_go_dormant(time_t now) {
|
||||
connection_mark_for_close(conn);
|
||||
}
|
||||
|
||||
record_bandwidth_usage(time(NULL));
|
||||
accounting_record_bandwidth_usage(now);
|
||||
}
|
||||
|
||||
/** Called when hibernate_end_time has arrived. */
|
||||
|
@ -737,6 +737,8 @@ static int do_hup(void) {
|
||||
|
||||
log_fn(LOG_NOTICE,"Received sighup. Reloading config.");
|
||||
has_completed_circuit=0;
|
||||
accounting_record_bandwidth_usage();
|
||||
|
||||
/* first, reload config variables, in case they've changed */
|
||||
/* no need to provide argc/v, they've been cached inside init_from_config */
|
||||
if (init_from_config(0, NULL) < 0) {
|
||||
@ -793,11 +795,6 @@ static int do_main_loop(void) {
|
||||
stats_prev_global_read_bucket = global_read_bucket;
|
||||
stats_prev_global_write_bucket = global_write_bucket;
|
||||
|
||||
/*XXX009 move to options_act? */
|
||||
/* Set up accounting */
|
||||
if (get_options()->AccountingMaxKB)
|
||||
configure_accounting(time(NULL));
|
||||
|
||||
/* load the routers file, or assign the defaults. */
|
||||
if(router_reload_router_list()) {
|
||||
return -1;
|
||||
@ -1082,6 +1079,7 @@ void tor_cleanup(void) {
|
||||
if(options->PidFile && options->command == CMD_RUN_TOR)
|
||||
unlink(options->PidFile);
|
||||
crypto_global_cleanup();
|
||||
accounting_record_bandwidth_usage();
|
||||
}
|
||||
|
||||
/** Read/create keys as needed, and echo our fingerprint to stdout. */
|
||||
|
@ -1327,6 +1327,7 @@ int dns_resolve(connection_t *exitconn);
|
||||
void configure_accounting(time_t now);
|
||||
void accounting_run_housekeeping(time_t now);
|
||||
void accounting_add_bytes(size_t n_read, size_t n_written, int seconds);
|
||||
int accounting_record_bandwidth_usage(time_t now);
|
||||
void hibernate_begin_shutdown(void);
|
||||
int we_are_hibernating(void);
|
||||
void consider_hibernation(time_t now);
|
||||
|
Loading…
Reference in New Issue
Block a user