Tor
0.4.7.0-alpha-dev
|
Header file for hs_cache.c. More...
#include <stdint.h>
#include "feature/hs/hs_common.h"
#include "feature/hs/hs_descriptor.h"
#include "feature/rend/rendcommon.h"
#include "feature/nodelist/torcert.h"
Go to the source code of this file.
Data Structures | |
struct | hs_cache_intro_state_t |
struct | hs_cache_client_intro_state_t |
struct | hs_cache_dir_descriptor_t |
Macros | |
#define | HS_CACHE_CLIENT_INTRO_STATE_MAX_AGE (2 * 60) |
#define | HS_CACHE_MAX_AGE (2*24*60*60) |
#define | HS_CACHE_MAX_SKEW (24*60*60) |
#define | HS_CACHE_FAILURE_MAX_AGE (5*60) |
Functions | |
static time_t | hs_cache_max_entry_lifetime (void) |
void | hs_cache_init (void) |
void | hs_cache_free_all (void) |
void | hs_cache_clean_as_dir (time_t now) |
size_t | hs_cache_handle_oom (time_t now, size_t min_remove_bytes) |
unsigned int | hs_cache_get_max_descriptor_size (void) |
int | hs_cache_store_as_dir (const char *desc) |
int | hs_cache_lookup_as_dir (uint32_t version, const char *query, const char **desc_out) |
const hs_descriptor_t * | hs_cache_lookup_as_client (const struct ed25519_public_key_t *key) |
const char * | hs_cache_lookup_encoded_as_client (const struct ed25519_public_key_t *key) |
hs_desc_decode_status_t | hs_cache_store_as_client (const char *desc_str, const struct ed25519_public_key_t *identity_pk) |
void | hs_cache_remove_as_client (const struct ed25519_public_key_t *key) |
void | hs_cache_clean_as_client (time_t now) |
void | hs_cache_purge_as_client (void) |
void | hs_cache_client_intro_state_note (const struct ed25519_public_key_t *service_pk, const struct ed25519_public_key_t *auth_key, rend_intro_point_failure_t failure) |
const hs_cache_intro_state_t * | hs_cache_client_intro_state_find (const struct ed25519_public_key_t *service_pk, const struct ed25519_public_key_t *auth_key) |
void | hs_cache_client_intro_state_clean (time_t now) |
void | hs_cache_client_intro_state_purge (void) |
bool | hs_cache_client_new_auth_parse (const ed25519_public_key_t *service_pk) |
size_t | hs_cache_get_total_allocation (void) |
void | hs_cache_decrement_allocation (size_t n) |
void | hs_cache_increment_allocation (size_t n) |
Header file for hs_cache.c.
Definition in file hs_cache.h.
#define HS_CACHE_CLIENT_INTRO_STATE_MAX_AGE (2 * 60) |
This is the maximum time an introduction point state object can stay in the client cache in seconds (2 mins or 120 seconds).
Definition at line 23 of file hs_cache.h.
#define HS_CACHE_FAILURE_MAX_AGE (5*60) |
How old do we keep an intro point failure entry in the failure cache?
Definition at line 31 of file hs_cache.h.
#define HS_CACHE_MAX_AGE (2*24*60*60) |
How old do we let hidden service descriptors get before discarding them as too old?
Definition at line 26 of file hs_cache.h.
#define HS_CACHE_MAX_SKEW (24*60*60) |
How wrong do we assume our clock may be when checking whether hidden services are too old or too new?
Definition at line 29 of file hs_cache.h.
void hs_cache_clean_as_client | ( | time_t | now | ) |
Clean all client caches using the current time now.
Definition at line 942 of file hs_cache.c.
Referenced by clean_caches_callback().
void hs_cache_clean_as_dir | ( | time_t | now | ) |
Clean all directory caches using the current time now.
Definition at line 339 of file hs_cache.c.
Referenced by clean_caches_callback().
void hs_cache_client_intro_state_clean | ( | time_t | now | ) |
Cleanup the client introduction state cache.
Definition at line 1001 of file hs_cache.c.
Referenced by rend_cache_failure_clean_callback().
void hs_cache_client_intro_state_purge | ( | void | ) |
Purge the client introduction state cache.
Definition at line 1021 of file hs_cache.c.
void hs_cache_decrement_allocation | ( | size_t | n | ) |
Decrement the total bytes attributed to the rendezvous cache by n.
Definition at line 1164 of file hs_cache.c.
Referenced by remove_v3_desc_as_client().
void hs_cache_free_all | ( | void | ) |
Cleanup the hidden service cache subsystem.
Definition at line 1141 of file hs_cache.c.
Referenced by hs_free_all().
unsigned int hs_cache_get_max_descriptor_size | ( | void | ) |
Return the maximum size of a v3 HS descriptor.
Definition at line 1117 of file hs_cache.c.
size_t hs_cache_handle_oom | ( | time_t | now, |
size_t | min_remove_bytes | ||
) |
Do a round of OOM cleanup on all directory caches. Return the amount of removed bytes. It is possible that the returned value is lower than min_remove_bytes if the caches get emptied out so the caller should be aware of this.
Definition at line 1072 of file hs_cache.c.
void hs_cache_increment_allocation | ( | size_t | n | ) |
Increase the total bytes attributed to the rendezvous cache by n.
Definition at line 1181 of file hs_cache.c.
void hs_cache_init | ( | void | ) |
Initialize the hidden service cache subsystem.
Definition at line 1126 of file hs_cache.c.
Referenced by hs_init().
int hs_cache_lookup_as_dir | ( | uint32_t | version, |
const char * | query, | ||
const char ** | desc_out | ||
) |
Using the query, lookup in our directory cache the entry. If found, 1 is returned and desc_out is populated with a newly allocated string being the encoded descriptor. If not found, 0 is returned and desc_out is untouched. On error, a negative value is returned and desc_out is untouched.
Definition at line 318 of file hs_cache.c.
Referenced by handle_get_hs_descriptor_v3().
void hs_cache_purge_as_client | ( | void | ) |
Purge the client descriptor cache.
Definition at line 951 of file hs_cache.c.
int hs_cache_store_as_dir | ( | const char * | desc | ) |
Given an encoded descriptor, store it in the directory cache depending on which version it is. Return a negative value on error. On success, 0 is returned.
Definition at line 281 of file hs_cache.c.