summaryrefslogtreecommitdiff
path: root/src/or/consdiffmgr.h
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2017-04-24 11:02:22 -0400
committerNick Mathewson <nickm@torproject.org>2017-04-24 11:02:22 -0400
commitb7567a6282e0bca38f4412ce0d571445a0ceda50 (patch)
tree558112eb1640a95cab86afe9eeb8bca466c7b7c0 /src/or/consdiffmgr.h
parent9ba10d714a8ae84864c4fe159f4d6780a93d168f (diff)
parenteb14faa0c1cb9f83d39e8b7aeb35bbe2788bea8c (diff)
downloadtor-b7567a6282e0bca38f4412ce0d571445a0ceda50.tar.gz
tor-b7567a6282e0bca38f4412ce0d571445a0ceda50.zip
Merge branch 'consdiffmgr_squashed'
Diffstat (limited to 'src/or/consdiffmgr.h')
-rw-r--r--src/or/consdiffmgr.h48
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
+