dirlist.h 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. /* Copyright (c) 2001-2004, Roger Dingledine.
  2. * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
  3. * Copyright (c) 2007-2018, The Tor Project, Inc. */
  4. /* See LICENSE for licensing information */
  5. /**
  6. * \file dirlist.h
  7. * \brief Header file for dirlist.c
  8. **/
  9. #ifndef TOR_DIRLIST_H
  10. #define TOR_DIRLIST_H
  11. int get_n_authorities(dirinfo_type_t type);
  12. const smartlist_t *router_get_trusted_dir_servers(void);
  13. const smartlist_t *router_get_fallback_dir_servers(void);
  14. smartlist_t *router_get_trusted_dir_servers_mutable(void);
  15. smartlist_t *router_get_fallback_dir_servers_mutable(void);
  16. void mark_all_dirservers_up(smartlist_t *server_list);
  17. dir_server_t *router_get_trusteddirserver_by_digest(const char *d);
  18. dir_server_t *router_get_fallback_dirserver_by_digest(
  19. const char *digest);
  20. int router_digest_is_fallback_dir(const char *digest);
  21. MOCK_DECL(dir_server_t *, trusteddirserver_get_by_v3_auth_digest,
  22. (const char *d));
  23. int router_digest_is_trusted_dir_type(const char *digest,
  24. dirinfo_type_t type);
  25. #define router_digest_is_trusted_dir(d) \
  26. router_digest_is_trusted_dir_type((d), NO_DIRINFO)
  27. dir_server_t *trusted_dir_server_new(const char *nickname, const char *address,
  28. uint16_t dir_port, uint16_t or_port,
  29. const tor_addr_port_t *addrport_ipv6,
  30. const char *digest, const char *v3_auth_digest,
  31. dirinfo_type_t type, double weight);
  32. dir_server_t *fallback_dir_server_new(const tor_addr_t *addr,
  33. uint16_t dir_port, uint16_t or_port,
  34. const tor_addr_port_t *addrport_ipv6,
  35. const char *id_digest, double weight);
  36. void dir_server_add(dir_server_t *ent);
  37. void clear_dir_servers(void);
  38. void dirlist_free_all(void);
  39. #endif