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>
This commit is contained in:
David Goulet
2015-06-18 11:00:10 -04:00
parent 583a387c1e
commit 33b1a33c33
6 changed files with 38 additions and 9 deletions
+2
View File
@@ -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 \
-9
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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)