mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-12-06 19:41:15 +01:00
prop224: Directory cache support
This implements the proposal 224 directory descriptor cache store and lookup
functionalities. Furthermore, it merges the OOM call for the HSDir cache with
current protocol v2 and the new upcoming v3.
Add hs_cache.{c|h} with store/lookup API.
Closes #18572
Signed-off-by: David Goulet <dgoulet@torproject.org>
Signed-off-by: George Kadianakis <desnacked@riseup.net>
This commit is contained in:
committed by
David Goulet
parent
473f99bf7b
commit
025610612d
+10
-3
@@ -53,10 +53,17 @@ typedef enum {
|
||||
REND_CACHE_TYPE_SERVICE = 2,
|
||||
} rend_cache_type_t;
|
||||
|
||||
/* Return maximum lifetime in seconds of a cache entry. */
|
||||
static inline time_t
|
||||
rend_cache_max_entry_lifetime(void)
|
||||
{
|
||||
return REND_CACHE_MAX_AGE + REND_CACHE_MAX_SKEW;
|
||||
}
|
||||
|
||||
void rend_cache_init(void);
|
||||
void rend_cache_clean(time_t now, rend_cache_type_t cache_type);
|
||||
void rend_cache_failure_clean(time_t now);
|
||||
void rend_cache_clean_v2_descs_as_dir(time_t now, size_t min_to_remove);
|
||||
size_t rend_cache_clean_v2_descs_as_dir(time_t cutoff);
|
||||
void rend_cache_purge(void);
|
||||
void rend_cache_free_all(void);
|
||||
int rend_cache_lookup_entry(const char *query, int version,
|
||||
@@ -77,6 +84,8 @@ void rend_cache_intro_failure_note(rend_intro_point_failure_t failure,
|
||||
const uint8_t *identity,
|
||||
const char *service_id);
|
||||
void rend_cache_failure_purge(void);
|
||||
void rend_cache_decrement_allocation(size_t n);
|
||||
void rend_cache_increment_allocation(size_t n);
|
||||
|
||||
#ifdef RENDCACHE_PRIVATE
|
||||
|
||||
@@ -89,8 +98,6 @@ STATIC int cache_failure_intro_lookup(const uint8_t *identity,
|
||||
const char *service_id,
|
||||
rend_cache_failure_intro_t
|
||||
**intro_entry);
|
||||
STATIC void rend_cache_decrement_allocation(size_t n);
|
||||
STATIC void rend_cache_increment_allocation(size_t n);
|
||||
STATIC rend_cache_failure_intro_t *rend_cache_failure_intro_entry_new(
|
||||
rend_intro_point_failure_t failure);
|
||||
STATIC rend_cache_failure_t *rend_cache_failure_entry_new(void);
|
||||
|
||||
Reference in New Issue
Block a user