addressmap.h 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  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-2013, The Tor Project, Inc. */
  5. /* See LICENSE for licensing information */
  6. #ifndef TOR_ADDRESSMAP_H
  7. #define TOR_ADDRESSMAP_H
  8. void addressmap_init(void);
  9. void addressmap_clear_excluded_trackexithosts(const or_options_t *options);
  10. void addressmap_clear_invalid_automaps(const or_options_t *options);
  11. void addressmap_clean(time_t now);
  12. void addressmap_clear_configured(void);
  13. void addressmap_clear_transient(void);
  14. void addressmap_free_all(void);
  15. #define AMR_FLAG_USE_IPV4_DNS (1u<<0)
  16. #define AMR_FLAG_USE_IPV6_DNS (1u<<1)
  17. int addressmap_rewrite(char *address, size_t maxlen, unsigned flags,
  18. time_t *expires_out,
  19. addressmap_entry_source_t *exit_source_out);
  20. int addressmap_rewrite_reverse(char *address, size_t maxlen, unsigned flags,
  21. time_t *expires_out);
  22. int addressmap_have_mapping(const char *address, int update_timeout);
  23. void addressmap_register(const char *address, char *new_address,
  24. time_t expires, addressmap_entry_source_t source,
  25. const int address_wildcard,
  26. const int new_address_wildcard);
  27. int parse_virtual_addr_network(const char *val,
  28. sa_family_t family, int validate_only,
  29. char **msg);
  30. int client_dns_incr_failures(const char *address);
  31. void client_dns_clear_failures(const char *address);
  32. void client_dns_set_addressmap(entry_connection_t *for_conn,
  33. const char *address, const tor_addr_t *val,
  34. const char *exitname, int ttl);
  35. const char *addressmap_register_virtual_address(int type, char *new_address);
  36. void addressmap_get_mappings(smartlist_t *sl, time_t min_expires,
  37. time_t max_expires, int want_expiry);
  38. int address_is_in_virtual_range(const char *addr);
  39. void clear_trackexithost_mappings(const char *exitname);
  40. void client_dns_set_reverse_addressmap(entry_connection_t *for_conn,
  41. const char *address, const char *v,
  42. const char *exitname, int ttl);
  43. int addressmap_address_should_automap(const char *address,
  44. const or_options_t *options);
  45. #ifdef ADDRESSMAP_PRIVATE
  46. typedef struct virtual_addr_conf_t {
  47. tor_addr_t addr;
  48. maskbits_t bits;
  49. } virtual_addr_conf_t;
  50. void get_random_virtual_addr(const virtual_addr_conf_t *conf,
  51. tor_addr_t *addr_out);
  52. #endif
  53. #endif