tor

The Tor anonymity network
git clone https://git.dasho.dev/tor.git
Log | Files | Refs | README | LICENSE

commit 50328533e3595b9cc2d3fc72f81f56572c9e732d
parent 0c19ce7bdece5906e035e71d3fb682632c8bb9cb
Author: Nick Mathewson <nickm@torproject.org>
Date:   Wed,  9 May 2018 12:11:14 -0400

Add we_are_fully_hibernating() to distinguish hibernation states

We want to tell "shut down" from "shutting down".

Diffstat:
Msrc/or/hibernate.c | 15++++++++++++++-
Msrc/or/hibernate.h | 1+
2 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/src/or/hibernate.c b/src/or/hibernate.c @@ -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 diff --git a/src/or/hibernate.h b/src/or/hibernate.h @@ -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,