correct a point about logging
[tor.git] / src / or / networkstatus.h
blob0af17512dd087fb692bd1c1ce2c604c148eea1a2
1 /* Copyright (c) 2001 Matej Pfajfar.
2 * Copyright (c) 2001-2004, Roger Dingledine.
3 * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
4 * Copyright (c) 2007-2012, The Tor Project, Inc. */
5 /* See LICENSE for licensing information */
7 /**
8 * \file networkstatus.h
9 * \brief Header file for networkstatus.c.
10 **/
12 #ifndef _TOR_NETWORKSTATUS_H
13 #define _TOR_NETWORKSTATUS_H
15 /** How old do we allow a v2 network-status to get before removing it
16 * completely? */
17 #define MAX_NETWORKSTATUS_AGE (10*24*60*60)
19 void networkstatus_reset_warnings(void);
20 void networkstatus_reset_download_failures(void);
21 int router_reload_v2_networkstatus(void);
22 int router_reload_consensus_networkstatus(void);
23 void routerstatus_free(routerstatus_t *rs);
24 void networkstatus_v2_free(networkstatus_v2_t *ns);
25 void networkstatus_vote_free(networkstatus_t *ns);
26 networkstatus_voter_info_t *networkstatus_get_voter_by_id(
27 networkstatus_t *vote,
28 const char *identity);
29 int networkstatus_check_consensus_signature(networkstatus_t *consensus,
30 int warn);
31 int networkstatus_check_document_signature(const networkstatus_t *consensus,
32 document_signature_t *sig,
33 const authority_cert_t *cert);
34 char *networkstatus_get_cache_filename(const char *identity_digest);
35 int router_set_networkstatus_v2(const char *s, time_t arrived_at,
36 v2_networkstatus_source_t source,
37 smartlist_t *requested_fingerprints);
38 void networkstatus_v2_list_clean(time_t now);
39 int compare_digest_to_routerstatus_entry(const void *_key,
40 const void **_member);
41 const routerstatus_t *networkstatus_v2_find_entry(networkstatus_v2_t *ns,
42 const char *digest);
43 const routerstatus_t *networkstatus_vote_find_entry(networkstatus_t *ns,
44 const char *digest);
45 routerstatus_t *networkstatus_v2_find_mutable_entry(networkstatus_v2_t *ns,
46 const char *digest);
47 routerstatus_t *networkstatus_vote_find_mutable_entry(networkstatus_t *ns,
48 const char *digest);
49 int networkstatus_vote_find_entry_idx(networkstatus_t *ns,
50 const char *digest, int *found_out);
51 const smartlist_t *networkstatus_get_v2_list(void);
52 download_status_t *router_get_dl_status_by_descriptor_digest(const char *d);
53 const routerstatus_t *router_get_consensus_status_by_id(const char *digest);
54 routerstatus_t *router_get_mutable_consensus_status_by_id(
55 const char *digest);
56 const routerstatus_t *router_get_consensus_status_by_descriptor_digest(
57 networkstatus_t *consensus,
58 const char *digest);
59 routerstatus_t *router_get_mutable_consensus_status_by_descriptor_digest(
60 networkstatus_t *consensus,
61 const char *digest);
62 const routerstatus_t *router_get_consensus_status_by_nickname(
63 const char *nickname,
64 int warn_if_unnamed);
65 const char *networkstatus_get_router_digest_by_nickname(const char *nickname);
66 int networkstatus_nickname_is_unnamed(const char *nickname);
67 void networkstatus_consensus_download_failed(int status_code,
68 const char *flavname);
69 void update_consensus_networkstatus_fetch_time(time_t now);
70 int should_delay_dir_fetches(const or_options_t *options);
71 void update_networkstatus_downloads(time_t now);
72 void update_certificate_downloads(time_t now);
73 int consensus_is_waiting_for_certs(void);
74 networkstatus_v2_t *networkstatus_v2_get_by_digest(const char *digest);
75 networkstatus_t *networkstatus_get_latest_consensus(void);
76 networkstatus_t *networkstatus_get_latest_consensus_by_flavor(
77 consensus_flavor_t f);
78 networkstatus_t *networkstatus_get_live_consensus(time_t now);
79 networkstatus_t *networkstatus_get_reasonably_live_consensus(time_t now,
80 int flavor);
81 #define NSSET_FROM_CACHE 1
82 #define NSSET_WAS_WAITING_FOR_CERTS 2
83 #define NSSET_DONT_DOWNLOAD_CERTS 4
84 #define NSSET_ACCEPT_OBSOLETE 8
85 #define NSSET_REQUIRE_FLAVOR 16
86 int networkstatus_set_current_consensus(const char *consensus,
87 const char *flavor,
88 unsigned flags);
89 void networkstatus_note_certs_arrived(void);
90 void routers_update_all_from_networkstatus(time_t now, int dir_version);
91 void routers_update_status_from_consensus_networkstatus(smartlist_t *routers,
92 int reset_failures);
93 void signed_descs_update_status_from_consensus_networkstatus(
94 smartlist_t *descs);
96 char *networkstatus_getinfo_helper_single(const routerstatus_t *rs);
97 char *networkstatus_getinfo_by_purpose(const char *purpose_string, time_t now);
98 void networkstatus_dump_bridge_status_to_file(time_t now);
99 int32_t networkstatus_get_param(const networkstatus_t *ns,
100 const char *param_name,
101 int32_t default_val, int32_t min_val,
102 int32_t max_val);
103 int getinfo_helper_networkstatus(control_connection_t *conn,
104 const char *question, char **answer,
105 const char **errmsg);
106 int32_t networkstatus_get_bw_weight(networkstatus_t *ns, const char *weight,
107 int32_t default_val);
108 const char *networkstatus_get_flavor_name(consensus_flavor_t flav);
109 int networkstatus_parse_flavor_name(const char *flavname);
110 void document_signature_free(document_signature_t *sig);
111 document_signature_t *document_signature_dup(const document_signature_t *sig);
112 void networkstatus_free_all(void);
114 #endif