Add we_are_fully_hibernating() to distinguish hibernation states

We want to tell "shut down" from "shutting down".
This commit is contained in:
Nick Mathewson 2018-05-09 12:11:14 -04:00
parent 0c19ce7bde
commit 50328533e3
2 changed files with 15 additions and 1 deletions

View File

@ -877,13 +877,26 @@ hibernate_begin_shutdown(void)
hibernate_begin(HIBERNATE_STATE_EXITING, time(NULL));
}
/** Return true iff we are currently hibernating. */
/**
* Return true iff we are currently hibernating -- that is, if we are in
* any non-live state.
*/
MOCK_IMPL(int,
we_are_hibernating,(void))
{
return hibernate_state != HIBERNATE_STATE_LIVE;
}
/**
* Return true iff we are currently _fully_ hibernating -- that is, if we are
* in a state where we expect to handle no network activity at all.
*/
MOCK_IMPL(int,
we_are_fully_hibernating,(void))
{
return hibernate_state == HIBERNATE_STATE_DORMANT;
}
/** If we aren't currently dormant, close all connections and become
* dormant. */
static void

View File

@ -25,6 +25,7 @@ void accounting_add_bytes(size_t n_read, size_t n_written, int seconds);
int accounting_record_bandwidth_usage(time_t now, or_state_t *state);
void hibernate_begin_shutdown(void);
MOCK_DECL(int, we_are_hibernating, (void));
MOCK_DECL(int, we_are_fully_hibernating,(void));
void consider_hibernation(time_t now);
int getinfo_helper_accounting(control_connection_t *conn,
const char *question, char **answer,