Browse Source

Add rendcache.{c|h}

For now, rend_cache_entry_t has been moved from or.h to rendcache.h and
those files have been added to the build system.

In the next commit, these will contain hidden service descriptor cache ABI
and API for both client and directory side. The goal is to consolidate the
descriptor caches in one location to ease development, maintenance, review
and improve documentation for each cache behavior and algorithm.

Signed-off-by: David Goulet <dgoulet@ev0ke.net>
David Goulet 8 years ago
parent
commit
33b1a33c33
6 changed files with 38 additions and 9 deletions
  1. 2 0
      src/or/include.am
  2. 0 9
      src/or/or.h
  3. 9 0
      src/or/rendcache.c
  4. 23 0
      src/or/rendcache.h
  5. 2 0
      src/or/rendclient.h
  6. 2 0
      src/or/rendcommon.h

+ 2 - 0
src/or/include.am

@@ -66,6 +66,7 @@ LIBTOR_A_SOURCES = \
 	src/or/policies.c				\
 	src/or/reasons.c				\
 	src/or/relay.c					\
+	src/or/rendcache.c				\
 	src/or/rendclient.c				\
 	src/or/rendcommon.c				\
 	src/or/rendmid.c				\
@@ -174,6 +175,7 @@ ORHEADERS = \
 	src/or/policies.h				\
 	src/or/reasons.h				\
 	src/or/relay.h					\
+	src/or/rendcache.h				\
 	src/or/rendclient.h				\
 	src/or/rendcommon.h				\
 	src/or/rendmid.h				\

+ 0 - 9
src/or/or.h

@@ -4970,15 +4970,6 @@ typedef struct rend_service_descriptor_t {
   smartlist_t *successful_uploads;
 } rend_service_descriptor_t;
 
-/** A cached rendezvous descriptor. */
-typedef struct rend_cache_entry_t {
-  size_t len; /**< Length of <b>desc</b> */
-  time_t last_served; /**< When did we last write this one to somebody?
-                       * (HSDir only) */
-  char *desc; /**< Service descriptor */
-  rend_service_descriptor_t *parsed; /**< Parsed value of 'desc' */
-} rend_cache_entry_t;
-
 /********************************* routerlist.c ***************************/
 
 /** Represents information about a single trusted or fallback directory

+ 9 - 0
src/or/rendcache.c

@@ -0,0 +1,9 @@
+/* Copyright (c) 2015, The Tor Project, Inc. */
+/* See LICENSE for licensing information */
+
+/**
+ * \file rendcache.c
+ * \brief Hidden service desriptor cache.
+ **/
+
+#include "rendcache.h"

+ 23 - 0
src/or/rendcache.h

@@ -0,0 +1,23 @@
+/* Copyright (c) 2015, The Tor Project, Inc. */
+/* See LICENSE for licensing information */
+
+/**
+ * \file rendcache.h
+ * \brief Header file for rendcache.c
+ **/
+
+#ifndef TOR_RENDCACHE_H
+#define TOR_RENDCACHE_H
+
+#include "or.h"
+
+/** A cached rendezvous descriptor. */
+typedef struct rend_cache_entry_t {
+  size_t len; /**< Length of <b>desc</b> */
+  time_t last_served; /**< When did we last write this one to somebody?
+                       * (HSDir only) */
+  char *desc; /**< Service descriptor */
+  rend_service_descriptor_t *parsed; /**< Parsed value of 'desc' */
+} rend_cache_entry_t;
+
+#endif /* TOR_RENDCACHE_H */

+ 2 - 0
src/or/rendclient.h

@@ -12,6 +12,8 @@
 #ifndef TOR_RENDCLIENT_H
 #define TOR_RENDCLIENT_H
 
+#include "rendcache.h"
+
 void rend_client_purge_state(void);
 
 void rend_client_introcirc_has_opened(origin_circuit_t *circ);

+ 2 - 0
src/or/rendcommon.h

@@ -12,6 +12,8 @@
 #ifndef TOR_RENDCOMMON_H
 #define TOR_RENDCOMMON_H
 
+#include "rendcache.h"
+
 /** Free all storage associated with <b>data</b> */
 static INLINE void
 rend_data_free(rend_data_t *data)