2018-06-15 20:07:17 +02:00
|
|
|
/* Copyright (c) 2001 Matej Pfajfar.
|
|
|
|
* Copyright (c) 2001-2004, Roger Dingledine.
|
|
|
|
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
|
2019-01-16 18:33:22 +01:00
|
|
|
* Copyright (c) 2007-2019, The Tor Project, Inc. */
|
2018-06-15 20:07:17 +02:00
|
|
|
/* See LICENSE for licensing information */
|
|
|
|
|
|
|
|
#ifndef ROUTERLIST_ST_H
|
|
|
|
#define ROUTERLIST_ST_H
|
|
|
|
|
2018-07-05 22:34:59 +02:00
|
|
|
#include "feature/nodelist/desc_store_st.h"
|
2018-06-15 20:07:17 +02:00
|
|
|
|
|
|
|
/** Contents of a directory of onion routers. */
|
|
|
|
struct routerlist_t {
|
|
|
|
/** Map from server identity digest to a member of routers. */
|
|
|
|
struct digest_ri_map_t *identity_map;
|
|
|
|
/** Map from server descriptor digest to a signed_descriptor_t from
|
|
|
|
* routers or old_routers. */
|
|
|
|
struct digest_sd_map_t *desc_digest_map;
|
|
|
|
/** Map from extra-info digest to an extrainfo_t. Only exists for
|
|
|
|
* routers in routers or old_routers. */
|
|
|
|
struct digest_ei_map_t *extra_info_map;
|
|
|
|
/** Map from extra-info digests to a signed_descriptor_t for a router
|
|
|
|
* descriptor having that extra-info digest. Only exists for
|
|
|
|
* routers in routers or old_routers. */
|
|
|
|
struct digest_sd_map_t *desc_by_eid_map;
|
|
|
|
/** List of routerinfo_t for all currently live routers we know. */
|
|
|
|
smartlist_t *routers;
|
|
|
|
/** List of signed_descriptor_t for older router descriptors we're
|
|
|
|
* caching. */
|
|
|
|
smartlist_t *old_routers;
|
|
|
|
/** Store holding server descriptors. If present, any router whose
|
|
|
|
* cache_info.saved_location == SAVED_IN_CACHE is stored in this file
|
|
|
|
* starting at cache_info.saved_offset */
|
|
|
|
desc_store_t desc_store;
|
|
|
|
/** Store holding extra-info documents. */
|
|
|
|
desc_store_t extrainfo_store;
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|