Move code for setting bridges as running to voteflags.c

This commit is contained in:
Neel Chauhan 2019-04-11 20:44:30 -04:00
parent e16f5184da
commit 4172dcaa62
4 changed files with 23 additions and 8 deletions

View File

@ -67,7 +67,7 @@ problem function-size /src/core/mainloop/connection.c:connection_handle_read_imp
problem function-size /src/core/mainloop/connection.c:connection_buf_read_from_socket() 177
problem function-size /src/core/mainloop/connection.c:connection_handle_write_impl() 241
problem function-size /src/core/mainloop/connection.c:assert_connection_ok() 143
problem file-size /src/core/mainloop/mainloop.c 3076
problem file-size /src/core/mainloop/mainloop.c 3071
problem include-count /src/core/mainloop/mainloop.c 68
problem function-size /src/core/mainloop/mainloop.c:conn_close_if_marked() 108
problem function-size /src/core/mainloop/mainloop.c:run_connection_housekeeping() 123
@ -276,7 +276,7 @@ problem function-size /src/lib/net/resolve.c:tor_addr_lookup() 110
problem function-size /src/lib/net/socketpair.c:tor_ersatz_socketpair() 102
problem function-size /src/lib/osinfo/uname.c:get_uname() 116
problem function-size /src/lib/process/process_unix.c:process_unix_exec() 220
problem function-size /src/lib/process/process_win32.c:process_win32_exec() 138
problem function-size /src/lib/process/process_win32.c:process_win32_exec() 133
problem function-size /src/lib/process/process_win32.c:process_win32_create_pipe() 112
problem function-size /src/lib/process/restrict.c:set_max_file_descriptors() 102
problem function-size /src/lib/process/setuid.c:switch_id() 156

View File

@ -2595,12 +2595,7 @@ static int
set_bridge_running_callback(time_t now, const or_options_t *options)
{
if (authdir_mode_bridge(options)) {
routerlist_t *rl = router_get_routerlist();
SMARTLIST_FOREACH_BEGIN(rl->routers, routerinfo_t *, ri) {
if (ri->purpose == ROUTER_PURPOSE_BRIDGE)
dirserv_set_router_is_running(ri, now);
} SMARTLIST_FOREACH_END(ri);
dirserv_set_bridges_running(now);
#define SET_BRIDGES_RUNNING_INTERVAL (5*60)
return SET_BRIDGES_RUNNING_INTERVAL;

View File

@ -29,6 +29,7 @@
#include "feature/nodelist/node_st.h"
#include "feature/nodelist/routerinfo_st.h"
#include "feature/nodelist/routerlist_st.h"
#include "feature/nodelist/vote_routerstatus_st.h"
#include "lib/container/order.h"
@ -658,3 +659,20 @@ dirserv_set_routerstatus_testing(routerstatus_t *rs)
rs->is_hs_dir = 0;
}
}
/** Use dirserv_set_router_is_running() to set bridges as running if they're
* reachable.
*
* This function is called from set_bridge_running_callback() when running as
* a bridge authority.
*/
void
dirserv_set_bridges_running(time_t now)
{
routerlist_t *rl = router_get_routerlist();
SMARTLIST_FOREACH_BEGIN(rl->routers, routerinfo_t *, ri) {
if (ri->purpose == ROUTER_PURPOSE_BRIDGE)
dirserv_set_router_is_running(ri, now);
} SMARTLIST_FOREACH_END(ri);
}

View File

@ -25,6 +25,8 @@ void set_routerstatus_from_routerinfo(routerstatus_t *rs,
void dirserv_compute_performance_thresholds(digestmap_t *omit_as_sybil);
void dirserv_set_bridges_running(time_t now);
#ifdef VOTEFLAGS_PRIVATE
/** Any descriptor older than this age causes the authorities to set the
* StaleDesc flag. */