diff options
author | Nick Mathewson <nickm@torproject.org> | 2017-04-24 11:02:22 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2017-04-24 11:02:22 -0400 |
commit | b7567a6282e0bca38f4412ce0d571445a0ceda50 (patch) | |
tree | 558112eb1640a95cab86afe9eeb8bca466c7b7c0 /src/or/consdiffmgr.h | |
parent | 9ba10d714a8ae84864c4fe159f4d6780a93d168f (diff) | |
parent | eb14faa0c1cb9f83d39e8b7aeb35bbe2788bea8c (diff) | |
download | tor-b7567a6282e0bca38f4412ce0d571445a0ceda50.tar.gz tor-b7567a6282e0bca38f4412ce0d571445a0ceda50.zip |
Merge branch 'consdiffmgr_squashed'
Diffstat (limited to 'src/or/consdiffmgr.h')
-rw-r--r-- | src/or/consdiffmgr.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/or/consdiffmgr.h b/src/or/consdiffmgr.h new file mode 100644 index 0000000000..b6b7555ad9 --- /dev/null +++ b/src/or/consdiffmgr.h @@ -0,0 +1,48 @@ +/* Copyright (c) 2017, The Tor Project, Inc. */ +/* See LICENSE for licensing information */ + +#ifndef TOR_CONSDIFFMGR_H +#define TOR_CONSDIFFMGR_H + +/** + * Possible outcomes from trying to look up a given consensus diff. + */ +typedef enum consdiff_status_t { + CONSDIFF_AVAILABLE, + CONSDIFF_NOT_FOUND, + CONSDIFF_IN_PROGRESS, +} consdiff_status_t; + +typedef struct consdiff_cfg_t { + uint32_t cache_max_age_hours; + uint32_t cache_max_num; +} consdiff_cfg_t; + +struct consensus_cache_entry_t; // from conscache.h + +int consdiffmgr_add_consensus(const char *consensus, + const networkstatus_t *as_parsed); + +consdiff_status_t consdiffmgr_find_diff_from( + struct consensus_cache_entry_t **entry_out, + consensus_flavor_t flavor, + int digest_type, + const uint8_t *digest, + size_t digestlen); +void consdiffmgr_rescan(void); +int consdiffmgr_cleanup(void); +void consdiffmgr_configure(const consdiff_cfg_t *cfg); +void consdiffmgr_free_all(void); +int consdiffmgr_validate(void); + +#ifdef CONSDIFFMGR_PRIVATE +STATIC consensus_cache_t *cdm_cache_get(void); +STATIC consensus_cache_entry_t *cdm_cache_lookup_consensus( + consensus_flavor_t flavor, time_t valid_after); +STATIC int cdm_entry_get_sha3_value(uint8_t *digest_out, + consensus_cache_entry_t *ent, + const char *label); +#endif + +#endif + |