diff --git a/src/or/or.h b/src/or/or.h index e27f25197b..06262e430a 100644 --- a/src/or/or.h +++ b/src/or/or.h @@ -4745,15 +4745,6 @@ typedef struct { time_t LastRotatedOnionKey; } or_state_t; -/** Change the next_write time of state to when, unless the - * state is already scheduled to be written to disk earlier than when. - */ -static inline void or_state_mark_dirty(or_state_t *state, time_t when) -{ - if (state->next_write > when) - state->next_write = when; -} - #define MAX_SOCKS_REPLY_LEN 1024 #define MAX_SOCKS_ADDR_LEN 256 #define SOCKS_NO_AUTH 0x00 diff --git a/src/or/rephist.c b/src/or/rephist.c index ac3e9f502e..bac2efb1f4 100644 --- a/src/or/rephist.c +++ b/src/or/rephist.c @@ -85,8 +85,8 @@ #include "routerlist.h" #include "ht.h" #include "channelpadding.h" - #include "connection_or.h" +#include "statefile.h" static void bw_arrays_init(void); static void predicted_ports_alloc(void); diff --git a/src/or/statefile.c b/src/or/statefile.c index cc114f0a2b..26a631ced0 100644 --- a/src/or/statefile.c +++ b/src/or/statefile.c @@ -472,7 +472,7 @@ or_state_save(time_t now) tor_assert(global_state); - if (global_state->next_write > now) + if (global_state->next_write >= now) return 0; /* Call everything else that might dirty the state even more, in order @@ -680,6 +680,16 @@ save_transport_to_state(const char *transport, tor_free(transport_addrport); } +/** Change the next_write time of state to when, unless the + * state is already scheduled to be written to disk earlier than when. + */ +void +or_state_mark_dirty(or_state_t *state, time_t when) +{ + if (state->next_write > when) + state->next_write = when; +} + STATIC void or_state_free_(or_state_t *state) { diff --git a/src/or/statefile.h b/src/or/statefile.h index b4cc4d1dc6..5aa2ca9320 100644 --- a/src/or/statefile.h +++ b/src/or/statefile.h @@ -17,6 +17,7 @@ char *get_stored_bindaddr_for_server_transport(const char *transport); int or_state_load(void); int or_state_loaded(void); void or_state_free_all(void); +void or_state_mark_dirty(or_state_t *state, time_t when); #ifdef STATEFILE_PRIVATE STATIC config_line_t *get_transport_in_state_by_name(const char *transport);