| Tor 0.4.9.3-alpha-dev
    | 
Header file for dirvote.c. More...
Go to the source code of this file.
| Macros | |
| #define | MIN_VOTE_SECONDS 2 | 
| #define | MIN_VOTE_SECONDS_TESTING 2 | 
| #define | MIN_DIST_SECONDS 2 | 
| #define | MIN_DIST_SECONDS_TESTING 2 | 
| #define | MIN_VOTE_INTERVAL 300 | 
| #define | MIN_VOTE_INTERVAL_TESTING (((MIN_VOTE_SECONDS_TESTING)+(MIN_DIST_SECONDS_TESTING)+1)*2) | 
| #define | MIN_VOTE_INTERVAL_TESTING_INITIAL ((MIN_VOTE_SECONDS_TESTING)+(MIN_DIST_SECONDS_TESTING)+1) | 
| #define | MIN_SUPPORTED_CONSENSUS_METHOD 32 | 
| #define | MAX_SUPPORTED_CONSENSUS_METHOD 35 | 
| #define | MIN_METHOD_TO_SUPPRESS_MD_PUBLISHED 33 | 
| #define | MIN_METHOD_TO_OMIT_PACKAGE_FINGERPRINTS 34 | 
| #define | MIN_METHOD_FOR_FAMILY_IDS 35 | 
| #define | DEFAULT_MAX_UNMEASURED_BW_KB 20 | 
| #define | DGV_BY_ID 1 | 
| #define | DGV_INCLUDE_PENDING 2 | 
| #define | DGV_INCLUDE_PREVIOUS 4 | 
| #define | MAX_BW_FILE_HEADERS_LINE_LEN 1024 | 
| Functions | |
| static time_t | dirvote_act (const or_options_t *options, time_t now) | 
| static void | dirvote_free_all (void) | 
| static void | dirvote_parse_sr_commits (networkstatus_t *ns, const smartlist_t *tokens) | 
| static void | dirvote_clear_commits (networkstatus_t *ns) | 
| static void | dirvote_dirreq_get_status_vote (const char *url, smartlist_t *items, smartlist_t *dir_items) | 
| static struct pending_vote_t * | dirvote_add_vote (const char *vote_body, time_t time_posted, const char *where_from, const char **msg_out, int *status_out) | 
| static int | dirvote_add_signatures (const char *detached_signatures_body, const char *source, const char **msg_out) | 
| const char * | dirvote_get_pending_consensus (consensus_flavor_t flav) | 
| uint32_t | dirserv_get_bandwidth_for_router_kb (const routerinfo_t *ri) | 
| const char * | dirvote_get_pending_detached_signatures (void) | 
| const cached_dir_t * | dirvote_get_vote (const char *fp, int flags) | 
| networkstatus_t * | dirserv_generate_networkstatus_vote_obj (crypto_pk_t *private_key, authority_cert_t *cert) | 
| vote_microdesc_hash_t * | dirvote_format_all_microdesc_vote_lines (const routerinfo_t *ri, time_t now, smartlist_t *microdescriptors_out) | 
| Variables | |
| const char | DIRVOTE_UNIVERSAL_FLAGS [] | 
| const char | DIRVOTE_OPTIONAL_FLAGS [] | 
| #define DEFAULT_MAX_UNMEASURED_BW_KB 20 | 
| #define MAX_BW_FILE_HEADERS_LINE_LEN 1024 | 
| #define MAX_SUPPORTED_CONSENSUS_METHOD 35 | 
| #define MIN_DIST_SECONDS 2 | 
| #define MIN_DIST_SECONDS_TESTING 2 | 
| #define MIN_METHOD_FOR_FAMILY_IDS 35 | 
| #define MIN_METHOD_TO_OMIT_PACKAGE_FINGERPRINTS 34 | 
| #define MIN_METHOD_TO_SUPPRESS_MD_PUBLISHED 33 | 
| #define MIN_SUPPORTED_CONSENSUS_METHOD 32 | 
| #define MIN_VOTE_INTERVAL 300 | 
| #define MIN_VOTE_INTERVAL_TESTING (((MIN_VOTE_SECONDS_TESTING)+(MIN_DIST_SECONDS_TESTING)+1)*2) | 
Lowest allowable voting interval when TestingTorNetwork is 1: Voting Interval can be: 10, 12, 15, 18, 20, 24, 25, 30, 36, 40, 45, 50, 60, ... Testing Initial Voting Interval can be: 5, 6, 8, 9, or any of the possible values for Voting Interval, as they both need to evenly divide 30 minutes. If clock desynchronisation is an issue, use an interval of at least: 18 * drift in seconds, to allow for a clock slop factor
| #define MIN_VOTE_INTERVAL_TESTING_INITIAL ((MIN_VOTE_SECONDS_TESTING)+(MIN_DIST_SECONDS_TESTING)+1) | 
| #define MIN_VOTE_SECONDS 2 | 
| #define MIN_VOTE_SECONDS_TESTING 2 | 
| networkstatus_t * dirserv_generate_networkstatus_vote_obj | ( | crypto_pk_t * | private_key, | 
| authority_cert_t * | cert | ||
| ) | 
Return a new networkstatus_t* containing our current opinion. (For v3 authorities)
Definition at line 4596 of file dirvote.c.
Referenced by dirvote_perform_vote().
| uint32_t dirserv_get_bandwidth_for_router_kb | ( | const routerinfo_t * | ri | ) | 
Get the best estimate of a router's bandwidth for dirauth purposes, preferring measured to advertised values if available.
Definition at line 4221 of file dirvote.c.
Referenced by compare_routerinfo_usefulness().
| 
 | inlinestatic | 
| 
 | inlinestatic | 
| 
 | inlinestatic | 
| 
 | inlinestatic | 
| 
 | inlinestatic | 
| vote_microdesc_hash_t * dirvote_format_all_microdesc_vote_lines | ( | const routerinfo_t * | ri, | 
| time_t | now, | ||
| smartlist_t * | microdescriptors_out | ||
| ) | 
Generate and return a linked list of all the lines that should appear to describe a router's microdescriptor versions in a directory vote. Add the generated microdescriptors to microdescriptors_out.
Definition at line 4024 of file dirvote.c.
Referenced by dirserv_generate_networkstatus_vote_obj().
| const char * dirvote_get_pending_consensus | ( | consensus_flavor_t | flav | ) | 
| const char * dirvote_get_pending_detached_signatures | ( | void | ) | 
| const cached_dir_t * dirvote_get_vote | ( | const char * | fp, | 
| int | flags | ||
| ) | 
Return a given vote specified by fp. If by_id, return the vote for the authority with the v3 authority identity key digest fp; if by_id is false, return the vote whose digest is fp. If fp is NULL, return our own vote. If include_previous is false, do not consider any votes for a consensus that's already been built. If include_pending is false, do not consider any votes for the consensus that's in progress. May return NULL if we have no vote for the authority in question.
Definition at line 3821 of file dirvote.c.
Referenced by dirvote_fetch_missing_votes().
| 
 | inlinestatic | 
| 
 | extern | 
| 
 | extern | 
Space-separated list of all the flags that we will always vote on.
Definition at line 4575 of file dirvote.c.
Referenced by dirserv_generate_networkstatus_vote_obj().