Tor
0.4.6.0-alpha-dev
feature
control
btrack.c
Go to the documentation of this file.
1
/* Copyright (c) 2007-2020, The Tor Project, Inc. */
2
/* See LICENSE for licensing information */
3
4
/**
5
* \file btrack.c
6
* \brief Bootstrap trackers
7
*
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
12
* events.
13
*
14
* These trackers avoid referring directly to the internals of state
15
* objects of other subsystems.
16
*
17
* btrack_circuit.c contains the tracker for origin circuits.
18
*
19
* btrack_orconn.c contains the tracker for OR connections.
20
*
21
* Eventually there will be a tracker for directory downloads as well.
22
**/
23
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
"
29
30
static
int
31
btrack_init(
void
)
32
{
33
if
(
btrack_orconn_init
())
34
return
-1;
35
36
return
0;
37
}
38
39
static
void
40
btrack_fini(
void
)
41
{
42
btrack_orconn_fini
();
43
btrack_circ_fini();
44
}
45
46
static
int
47
btrack_add_pubsub(
pubsub_connector_t
*connector)
48
{
49
if
(btrack_orconn_add_pubsub(connector))
50
return
-1;
51
if
(btrack_circ_add_pubsub(connector))
52
return
-1;
53
54
return
0;
55
}
56
57
const
subsys_fns_t
sys_btrack = {
58
.
name
=
"btrack"
,
59
SUBSYS_DECLARE_LOCATION
(),
60
.supported =
true
,
61
.level = 55,
62
.initialize = btrack_init,
63
.shutdown = btrack_fini,
64
.add_pubsub = btrack_add_pubsub,
65
};
SUBSYS_DECLARE_LOCATION
#define SUBSYS_DECLARE_LOCATION()
Definition:
subsys.h:211
btrack_sys.h
Declare subsystem object for the bootstrap tracker susbystem.
btrack_circuit.h
Header file for btrack_circuit.c.
btrack_orconn_fini
void btrack_orconn_fini(void)
Definition:
btrack_orconn.c:201
subsys.h
Types used to declare a subsystem.
subsys_fns_t::name
const char * name
Definition:
subsys.h:43
btrack_orconn_init
int btrack_orconn_init(void)
Definition:
btrack_orconn.c:180
pubsub.h
Header for OO publish-subscribe functionality.
btrack_orconn.h
Header file for btrack_orconn.c.
subsys_fns_t
Definition:
subsys.h:38
pubsub_connector_t
struct pubsub_connector_t pubsub_connector_t
Definition:
pubsub_connect.h:28
Generated by
1.8.20