diff options
author | Sebastian Hahn <sebastian@torproject.org> | 2010-07-22 11:54:50 +0200 |
---|---|---|
committer | Sebastian Hahn <sebastian@torproject.org> | 2010-07-27 07:58:15 +0200 |
commit | bec1c838ca96b69d69b3c275b4703fa539c8c106 (patch) | |
tree | 0bcf54513e466d17c28d84a5b37e8aae900e6f4a /src/or | |
parent | 98d1314c7eb1ef13e298703fa50f0b6b62c35bd3 (diff) | |
download | tor-bec1c838ca96b69d69b3c275b4703fa539c8c106.tar.gz tor-bec1c838ca96b69d69b3c275b4703fa539c8c106.zip |
Create directory.h
Diffstat (limited to 'src/or')
-rw-r--r-- | src/or/circuitbuild.c | 1 | ||||
-rw-r--r-- | src/or/connection.c | 1 | ||||
-rw-r--r-- | src/or/control.c | 1 | ||||
-rw-r--r-- | src/or/directory.c | 1 | ||||
-rw-r--r-- | src/or/directory.h | 108 | ||||
-rw-r--r-- | src/or/dirserv.c | 1 | ||||
-rw-r--r-- | src/or/dirvote.c | 1 | ||||
-rw-r--r-- | src/or/main.c | 1 | ||||
-rw-r--r-- | src/or/networkstatus.c | 1 | ||||
-rw-r--r-- | src/or/or.h | 90 | ||||
-rw-r--r-- | src/or/rendclient.c | 1 | ||||
-rw-r--r-- | src/or/rendservice.c | 1 | ||||
-rw-r--r-- | src/or/router.c | 1 | ||||
-rw-r--r-- | src/or/routerlist.c | 1 |
14 files changed, 120 insertions, 90 deletions
diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c index a675d7dad8..1a189caabd 100644 --- a/src/or/circuitbuild.c +++ b/src/or/circuitbuild.c @@ -20,6 +20,7 @@ #include "connection_edge.h" #include "connection_or.h" #include "control.h" +#include "directory.h" #include "router.h" #include "routerlist.h" #include "crypto.h" diff --git a/src/or/connection.c b/src/or/connection.c index ac8123cf37..f41578322b 100644 --- a/src/or/connection.c +++ b/src/or/connection.c @@ -21,6 +21,7 @@ #include "connection_or.h" #include "control.h" #include "cpuworker.h" +#include "directory.h" #include "dnsserv.h" #include "geoip.h" #include "rendclient.h" diff --git a/src/or/control.c b/src/or/control.c index 77ca085167..e90134afca 100644 --- a/src/or/control.c +++ b/src/or/control.c @@ -19,6 +19,7 @@ #include "connection.h" #include "connection_edge.h" #include "control.h" +#include "directory.h" #include "dnsserv.h" #include "geoip.h" #include "router.h" diff --git a/src/or/directory.c b/src/or/directory.c index 5fdae43094..41b27945d7 100644 --- a/src/or/directory.c +++ b/src/or/directory.c @@ -10,6 +10,7 @@ #include "connection.h" #include "connection_edge.h" #include "control.h" +#include "directory.h" #include "geoip.h" #include "rendclient.h" #include "rendcommon.h" diff --git a/src/or/directory.h b/src/or/directory.h new file mode 100644 index 0000000000..36b4cf2b18 --- /dev/null +++ b/src/or/directory.h @@ -0,0 +1,108 @@ +/* Copyright (c) 2001 Matej Pfajfar. + * Copyright (c) 2001-2004, Roger Dingledine. + * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. + * Copyright (c) 2007-2010, The Tor Project, Inc. */ +/* See LICENSE for licensing information */ + +/** + * \file directory.h + * \brief Header file for directory.c. + **/ + +#ifndef _TOR_DIRECTORY_H +#define _TOR_DIRECTORY_H + +int directories_have_accepted_server_descriptor(void); +char *authority_type_to_string(authority_type_t auth); +void directory_post_to_dirservers(uint8_t dir_purpose, uint8_t router_purpose, + authority_type_t type, const char *payload, + size_t payload_len, size_t extrainfo_len); +void directory_get_from_dirserver(uint8_t dir_purpose, uint8_t router_purpose, + const char *resource, + int pds_flags); +void directory_get_from_all_authorities(uint8_t dir_purpose, + uint8_t router_purpose, + const char *resource); +void directory_initiate_command_routerstatus(routerstatus_t *status, + uint8_t dir_purpose, + uint8_t router_purpose, + int anonymized_connection, + const char *resource, + const char *payload, + size_t payload_len, + time_t if_modified_since); +void directory_initiate_command_routerstatus_rend(routerstatus_t *status, + uint8_t dir_purpose, + uint8_t router_purpose, + int anonymized_connection, + const char *resource, + const char *payload, + size_t payload_len, + time_t if_modified_since, + const rend_data_t *rend_query); + +int parse_http_response(const char *headers, int *code, time_t *date, + compress_method_t *compression, char **response); + +int connection_dir_is_encrypted(dir_connection_t *conn); +int connection_dir_reached_eof(dir_connection_t *conn); +int connection_dir_process_inbuf(dir_connection_t *conn); +int connection_dir_finished_flushing(dir_connection_t *conn); +int connection_dir_finished_connecting(dir_connection_t *conn); +void connection_dir_request_failed(dir_connection_t *conn); +void directory_initiate_command(const char *address, const tor_addr_t *addr, + uint16_t or_port, uint16_t dir_port, + int supports_conditional_consensus, + int supports_begindir, const char *digest, + uint8_t dir_purpose, uint8_t router_purpose, + int anonymized_connection, + const char *resource, + const char *payload, size_t payload_len, + time_t if_modified_since); + +#define DSR_HEX (1<<0) +#define DSR_BASE64 (1<<1) +#define DSR_DIGEST256 (1<<2) +#define DSR_SORT_UNIQ (1<<3) +int dir_split_resource_into_fingerprints(const char *resource, + smartlist_t *fp_out, int *compressed_out, + int flags); + +int dir_split_resource_into_fingerprint_pairs(const char *res, + smartlist_t *pairs_out); +char *directory_dump_request_log(void); +void note_request(const char *key, size_t bytes); +int router_supports_extrainfo(const char *identity_digest, int is_authority); + +time_t download_status_increment_failure(download_status_t *dls, + int status_code, const char *item, + int server, time_t now); +/** Increment the failure count of the download_status_t <b>dls</b>, with + * the optional status code <b>sc</b>. */ +#define download_status_failed(dls, sc) \ + download_status_increment_failure((dls), (sc), NULL, \ + get_options()->DirPort, time(NULL)) + +void download_status_reset(download_status_t *dls); +static int download_status_is_ready(download_status_t *dls, time_t now, + int max_failures); +/** Return true iff, as of <b>now</b>, the resource tracked by <b>dls</b> is + * ready to get its download reattempted. */ +static INLINE int +download_status_is_ready(download_status_t *dls, time_t now, + int max_failures) +{ + return (dls->n_download_failures <= max_failures + && dls->next_attempt_at <= now); +} + +static void download_status_mark_impossible(download_status_t *dl); +/** Mark <b>dl</b> as never downloadable. */ +static INLINE void +download_status_mark_impossible(download_status_t *dl) +{ + dl->n_download_failures = IMPOSSIBLE_TO_DOWNLOAD; +} + +#endif + diff --git a/src/or/dirserv.c b/src/or/dirserv.c index 80423381ef..5eea9ce1ab 100644 --- a/src/or/dirserv.c +++ b/src/or/dirserv.c @@ -10,6 +10,7 @@ #include "connection.h" #include "connection_or.h" #include "control.h" +#include "directory.h" #include "router.h" #include "routerlist.h" diff --git a/src/or/dirvote.c b/src/or/dirvote.c index 6e6bf8d088..f24a91f8e8 100644 --- a/src/or/dirvote.c +++ b/src/or/dirvote.c @@ -6,6 +6,7 @@ #define DIRVOTE_PRIVATE #include "or.h" #include "config.h" +#include "directory.h" #include "router.h" #include "routerlist.h" diff --git a/src/or/main.c b/src/or/main.c index 46ab044c34..4bd815a6f3 100644 --- a/src/or/main.c +++ b/src/or/main.c @@ -23,6 +23,7 @@ #include "connection_or.h" #include "control.h" #include "cpuworker.h" +#include "directory.h" #include "dnsserv.h" #include "geoip.h" #include "rendclient.h" diff --git a/src/or/networkstatus.c b/src/or/networkstatus.c index 21774976ca..799d21f9d0 100644 --- a/src/or/networkstatus.c +++ b/src/or/networkstatus.c @@ -15,6 +15,7 @@ #include "config.h" #include "connection.h" #include "control.h" +#include "directory.h" #include "router.h" #include "routerlist.h" diff --git a/src/or/or.h b/src/or/or.h index f38567f539..58339b291e 100644 --- a/src/or/or.h +++ b/src/or/or.h @@ -3166,101 +3166,11 @@ typedef enum { /********************************* directory.c ***************************/ -int directories_have_accepted_server_descriptor(void); -char *authority_type_to_string(authority_type_t auth); -void directory_post_to_dirservers(uint8_t dir_purpose, uint8_t router_purpose, - authority_type_t type, const char *payload, - size_t payload_len, size_t extrainfo_len); -void directory_get_from_dirserver(uint8_t dir_purpose, uint8_t router_purpose, - const char *resource, - int pds_flags); -void directory_get_from_all_authorities(uint8_t dir_purpose, - uint8_t router_purpose, - const char *resource); -void directory_initiate_command_routerstatus(routerstatus_t *status, - uint8_t dir_purpose, - uint8_t router_purpose, - int anonymized_connection, - const char *resource, - const char *payload, - size_t payload_len, - time_t if_modified_since); -void directory_initiate_command_routerstatus_rend(routerstatus_t *status, - uint8_t dir_purpose, - uint8_t router_purpose, - int anonymized_connection, - const char *resource, - const char *payload, - size_t payload_len, - time_t if_modified_since, - const rend_data_t *rend_query); - -int parse_http_response(const char *headers, int *code, time_t *date, - compress_method_t *compression, char **response); - -int connection_dir_is_encrypted(dir_connection_t *conn); -int connection_dir_reached_eof(dir_connection_t *conn); -int connection_dir_process_inbuf(dir_connection_t *conn); -int connection_dir_finished_flushing(dir_connection_t *conn); -int connection_dir_finished_connecting(dir_connection_t *conn); -void connection_dir_request_failed(dir_connection_t *conn); -void directory_initiate_command(const char *address, const tor_addr_t *addr, - uint16_t or_port, uint16_t dir_port, - int supports_conditional_consensus, - int supports_begindir, const char *digest, - uint8_t dir_purpose, uint8_t router_purpose, - int anonymized_connection, - const char *resource, - const char *payload, size_t payload_len, - time_t if_modified_since); - -#define DSR_HEX (1<<0) -#define DSR_BASE64 (1<<1) -#define DSR_DIGEST256 (1<<2) -#define DSR_SORT_UNIQ (1<<3) -int dir_split_resource_into_fingerprints(const char *resource, - smartlist_t *fp_out, int *compressed_out, - int flags); /** A pair of digests created by dir_split_resource_info_fingerprint_pairs() */ typedef struct { char first[DIGEST_LEN]; char second[DIGEST_LEN]; } fp_pair_t; -int dir_split_resource_into_fingerprint_pairs(const char *res, - smartlist_t *pairs_out); -char *directory_dump_request_log(void); -void note_request(const char *key, size_t bytes); -int router_supports_extrainfo(const char *identity_digest, int is_authority); - -time_t download_status_increment_failure(download_status_t *dls, - int status_code, const char *item, - int server, time_t now); -/** Increment the failure count of the download_status_t <b>dls</b>, with - * the optional status code <b>sc</b>. */ -#define download_status_failed(dls, sc) \ - download_status_increment_failure((dls), (sc), NULL, \ - get_options()->DirPort, time(NULL)) - -void download_status_reset(download_status_t *dls); -static int download_status_is_ready(download_status_t *dls, time_t now, - int max_failures); -/** Return true iff, as of <b>now</b>, the resource tracked by <b>dls</b> is - * ready to get its download reattempted. */ -static INLINE int -download_status_is_ready(download_status_t *dls, time_t now, - int max_failures) -{ - return (dls->n_download_failures <= max_failures - && dls->next_attempt_at <= now); -} - -static void download_status_mark_impossible(download_status_t *dl); -/** Mark <b>dl</b> as never downloadable. */ -static INLINE void -download_status_mark_impossible(download_status_t *dl) -{ - dl->n_download_failures = IMPOSSIBLE_TO_DOWNLOAD; -} /********************************* dirserv.c ***************************/ /** Maximum length of an exit policy summary. */ diff --git a/src/or/rendclient.c b/src/or/rendclient.c index 3665eb1182..92d43bc182 100644 --- a/src/or/rendclient.c +++ b/src/or/rendclient.c @@ -14,6 +14,7 @@ #include "config.h" #include "connection.h" #include "connection_edge.h" +#include "directory.h" #include "rendclient.h" #include "rendcommon.h" #include "routerlist.h" diff --git a/src/or/rendservice.c b/src/or/rendservice.c index a7ed2007f5..5d72ef8c0c 100644 --- a/src/or/rendservice.c +++ b/src/or/rendservice.c @@ -12,6 +12,7 @@ #include "circuitlist.h" #include "circuituse.h" #include "config.h" +#include "directory.h" #include "rendclient.h" #include "rendcommon.h" #include "rendservice.h" diff --git a/src/or/router.c b/src/or/router.c index 722bb4da5f..8dd7ef8dc0 100644 --- a/src/or/router.c +++ b/src/or/router.c @@ -12,6 +12,7 @@ #include "config.h" #include "connection.h" #include "control.h" +#include "directory.h" #include "geoip.h" #include "router.h" #include "routerlist.h" diff --git a/src/or/routerlist.c b/src/or/routerlist.c index a28415289c..ca5d75dd7d 100644 --- a/src/or/routerlist.c +++ b/src/or/routerlist.c @@ -16,6 +16,7 @@ #include "config.h" #include "connection.h" #include "control.h" +#include "directory.h" #include "geoip.h" #include "rendcommon.h" #include "rendservice.h" |