diff options
author | teor (Tim Wilson-Brown) <teor2345@gmail.com> | 2015-12-07 18:07:44 +1100 |
---|---|---|
committer | teor (Tim Wilson-Brown) <teor2345@gmail.com> | 2015-12-16 04:37:59 +1100 |
commit | 2212530bf59acb95ca9bb0278e51306e847105b7 (patch) | |
tree | 9df5a73b901d2f282656d1990770046fdafa81d7 /src/or/directory.h | |
parent | 35bbf2e4a4e8ccbc4126ebffda67c48989ec2f06 (diff) | |
download | tor-2212530bf59acb95ca9bb0278e51306e847105b7.tar.gz tor-2212530bf59acb95ca9bb0278e51306e847105b7.zip |
Prop210: Close excess connections once a consensus is downloading
Once tor is downloading a usable consensus, any other connection
attempts are not needed.
Choose a connection to keep, favouring:
* fallback directories over authorities,
* connections initiated earlier over later connections
Close all other connections downloading a consensus.
Diffstat (limited to 'src/or/directory.h')
-rw-r--r-- | src/or/directory.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/or/directory.h b/src/or/directory.h index 4255868d3a..37f9ab0815 100644 --- a/src/or/directory.h +++ b/src/or/directory.h @@ -74,6 +74,9 @@ void directory_initiate_command(const tor_addr_t *addr, const char *resource, const char *payload, size_t payload_len, time_t if_modified_since); +int connection_dir_avoid_extra_connection_for_purpose(unsigned int purpose); +int connection_dir_close_consensus_conn_if_extra(dir_connection_t *conn); +void connection_dir_close_extra_consensus_conns(void); #define DSR_HEX (1<<0) #define DSR_BASE64 (1<<1) @@ -139,6 +142,7 @@ STATIC int directory_handle_command_get(dir_connection_t *conn, const char *headers, const char *req_body, size_t req_body_len); +int connection_dir_would_close_consensus_conn_helper(void); STATIC int download_status_schedule_get_delay(download_status_t *dls, const smartlist_t *schedule, time_t now); |