1 /* Copyright (c) 2007-2021, The Tor Project, Inc. */
2 /* See LICENSE for licensing information */
6 * \brief Bootstrap trackers
8 * Initializes and shuts down the specific bootstrap trackers. These
9 * trackers help the reporting of bootstrap progress by maintaining
10 * state information about various subsystems within tor. When the
11 * correct state changes happen, these trackers emit controller
14 * These trackers avoid referring directly to the internals of state
15 * objects of other subsystems.
17 * btrack_circuit.c contains the tracker for origin circuits.
19 * btrack_orconn.c contains the tracker for OR connections.
21 * Eventually there will be a tracker for directory downloads as well.
24 #include "feature/control/btrack_circuit.h"
25 #include "feature/control/btrack_orconn.h"
26 #include "feature/control/btrack_sys.h"
27 #include "lib/pubsub/pubsub.h"
28 #include "lib/subsys/subsys.h"
33 if (btrack_orconn_init())
47 btrack_add_pubsub(pubsub_connector_t
*connector
)
49 if (btrack_orconn_add_pubsub(connector
))
51 if (btrack_circ_add_pubsub(connector
))
57 const subsys_fns_t sys_btrack
= {
59 SUBSYS_DECLARE_LOCATION(),
62 .initialize
= btrack_init
,
63 .shutdown
= btrack_fini
,
64 .add_pubsub
= btrack_add_pubsub
,