routerlist_st.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. /* Copyright (c) 2001 Matej Pfajfar.
  2. * Copyright (c) 2001-2004, Roger Dingledine.
  3. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
  4. * Copyright (c) 2007-2018, The Tor Project, Inc. */
  5. /* See LICENSE for licensing information */
  6. #ifndef ROUTERLIST_ST_H
  7. #define ROUTERLIST_ST_H
  8. #include "feature/nodelist/desc_store_st.h"
  9. /** Contents of a directory of onion routers. */
  10. struct routerlist_t {
  11. /** Map from server identity digest to a member of routers. */
  12. struct digest_ri_map_t *identity_map;
  13. /** Map from server descriptor digest to a signed_descriptor_t from
  14. * routers or old_routers. */
  15. struct digest_sd_map_t *desc_digest_map;
  16. /** Map from extra-info digest to an extrainfo_t. Only exists for
  17. * routers in routers or old_routers. */
  18. struct digest_ei_map_t *extra_info_map;
  19. /** Map from extra-info digests to a signed_descriptor_t for a router
  20. * descriptor having that extra-info digest. Only exists for
  21. * routers in routers or old_routers. */
  22. struct digest_sd_map_t *desc_by_eid_map;
  23. /** List of routerinfo_t for all currently live routers we know. */
  24. smartlist_t *routers;
  25. /** List of signed_descriptor_t for older router descriptors we're
  26. * caching. */
  27. smartlist_t *old_routers;
  28. /** Store holding server descriptors. If present, any router whose
  29. * cache_info.saved_location == SAVED_IN_CACHE is stored in this file
  30. * starting at cache_info.saved_offset */
  31. desc_store_t desc_store;
  32. /** Store holding extra-info documents. */
  33. desc_store_t extrainfo_store;
  34. };
  35. #endif