9 #ifndef TOR_RENDCACHE_H 10 #define TOR_RENDCACHE_H 17 #define REND_CACHE_MAX_AGE (2*24*60*60) 20 #define REND_CACHE_MAX_SKEW (24*60*60) 22 #define REND_CACHE_FAILURE_MAX_AGE (5*60) 26 #define MAX_INTRO_POINTS 10 42 rend_intro_point_failure_t failure_type;
48 digestmap_t *intro_failures;
52 REND_CACHE_TYPE_CLIENT = 1,
53 REND_CACHE_TYPE_SERVICE = 2,
58 rend_cache_max_entry_lifetime(
void)
71 int rend_cache_lookup_v2_desc_as_service(
const char *query,
78 const char *desc_id_base32,
81 size_t rend_cache_get_total_allocation(
void);
84 const uint8_t *identity,
85 const char *service_id);
90 #ifdef RENDCACHE_PRIVATE 94 #define rend_cache_entry_free(e) \ 95 FREE_AND_NULL(rend_cache_entry_t, rend_cache_entry_free_, (e)) 98 #define rend_cache_failure_intro_entry_free(e) \ 99 FREE_AND_NULL(rend_cache_failure_intro_t, \ 100 rend_cache_failure_intro_entry_free_, (e)) 102 #define rend_cache_failure_entry_free(e) \ 103 FREE_AND_NULL(rend_cache_failure_t, \ 104 rend_cache_failure_entry_free_, (e)) 106 const char *service_id,
110 rend_intro_point_failure_t failure);
114 const char *service_id,
115 rend_intro_point_failure_t failure);
117 const char *service_id);
121 #ifdef TOR_UNIT_TESTS 125 extern size_t rend_cache_total_allocation;
int rend_cache_store_v2_desc_as_dir(const char *desc)
Definition: rendcache.c:621
void rend_cache_free_all(void)
Definition: rendcache.c:227
STATIC strmap_t * rend_cache
Definition: rendcache.c:20
Header file for rendcommon.c.
void rend_cache_clean(time_t now, rend_cache_type_t cache_type)
Definition: rendcache.c:272
STATIC void rend_cache_failure_remove(rend_service_descriptor_t *desc)
Definition: rendcache.c:184
STATIC void cache_failure_intro_add(const uint8_t *identity, const char *service_id, rend_intro_point_failure_t failure)
Definition: rendcache.c:373
STATIC strmap_t * rend_cache_failure
Definition: rendcache.c:54
STATIC void rend_cache_entry_free_(rend_cache_entry_t *e)
Definition: rendcache.c:204
STATIC int cache_failure_intro_lookup(const uint8_t *identity, const char *service_id, rend_cache_failure_intro_t **intro_entry)
Definition: rendcache.c:329
#define REND_CACHE_MAX_SKEW
Definition: rendcache.h:20
rend_service_descriptor_t * parsed
Definition: rendcache.h:34
time_t last_served
Definition: rendcache.h:31
STATIC void rend_cache_failure_entry_free_(rend_cache_failure_t *entry)
Definition: rendcache.c:150
STATIC digestmap_t * rend_cache_v2_dir
Definition: rendcache.c:27
void rend_cache_intro_failure_note(rend_intro_point_failure_t failure, const uint8_t *identity, const char *service_id)
Definition: rendcache.c:448
STATIC void rend_cache_failure_entry_free_void(void *entry)
Definition: rendcache.c:166
Definition: rendcache.h:29
size_t len
Definition: rendcache.h:30
struct rend_cache_entry_t rend_cache_entry_t
size_t rend_cache_clean_v2_descs_as_dir(time_t cutoff)
Definition: rendcache.c:469
int rend_cache_lookup_entry(const char *query, int version, rend_cache_entry_t **entry_out)
Definition: rendcache.c:505
Master header file for Tor-specific functionality.
STATIC void rend_cache_failure_intro_entry_free_(rend_cache_failure_intro_t *entry)
Definition: rendcache.c:123
Definition: rendcache.h:38
struct rend_cache_failure_t rend_cache_failure_t
void rend_cache_purge(void)
Definition: rendcache.c:303
STATIC rend_cache_failure_intro_t * rend_cache_failure_intro_entry_new(rend_intro_point_failure_t failure)
Definition: rendcache.c:140
void rend_cache_init(void)
Definition: rendcache.c:62
int rend_cache_store_v2_desc_as_client(const char *desc, const char *desc_id_base32, const rend_data_t *rend_query, rend_cache_entry_t **entry)
Definition: rendcache.c:811
int rend_cache_store_v2_desc_as_service(const char *desc)
Definition: rendcache.c:730
#define REND_CACHE_MAX_AGE
Definition: rendcache.h:17
void rend_cache_failure_purge(void)
Definition: rendcache.c:315
Definition: rendcache.h:46
STATIC void validate_intro_point_failure(const rend_service_descriptor_t *desc, const char *service_id)
Definition: rendcache.c:400
STATIC rend_cache_failure_t * rend_cache_failure_entry_new(void)
Definition: rendcache.c:174
STATIC size_t rend_cache_entry_allocation(const rend_cache_entry_t *e)
Definition: rendcache.c:72
void rend_cache_increment_allocation(size_t n)
Definition: rendcache.c:107
void rend_cache_decrement_allocation(size_t n)
Definition: rendcache.c:90
void rend_cache_failure_clean(time_t now)
Definition: rendcache.c:248
char * desc
Definition: rendcache.h:33
int rend_cache_lookup_v2_desc_as_dir(const char *query, const char **desc)
Definition: rendcache.c:586