tor  master
dns.h
Go to the documentation of this file.
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-2017, The Tor Project, Inc. */
5 /* See LICENSE for licensing information */
6 
12 #ifndef TOR_DNS_H
13 #define TOR_DNS_H
14 
16 #define MIN_DNS_TTL_AT_EXIT (5*60)
17 
18 #define MAX_DNS_TTL_AT_EXIT (60*60)
19 
22 #define MAX_DNS_ENTRY_AGE (3*60*60)
23 
25 #define DEFAULT_DNS_TTL (30*60)
26 
27 int dns_init(void);
28 int has_dns_init_failed(void);
29 void dns_free_all(void);
30 uint32_t dns_clip_ttl(uint32_t ttl);
31 int dns_reset(void);
35 MOCK_DECL(void,dns_cancel_pending_resolve,(const char *question));
36 int dns_resolve(edge_connection_t *exitconn);
38 int dns_seems_to_be_broken(void);
41 void dump_dns_mem_usage(int severity);
42 
43 #ifdef DNS_PRIVATE
44 #include "dns_structs.h"
45 
46 MOCK_DECL(STATIC int,dns_resolve_impl,(edge_connection_t *exitconn,
47 int is_resolve,or_circuit_t *oncirc, char **hostname_out,
48 int *made_connection_pending_out, cached_resolve_t **resolve_out));
49 
50 MOCK_DECL(STATIC void,send_resolved_cell,(edge_connection_t *conn,
51 uint8_t answer_type,const cached_resolve_t *resolved));
52 
53 MOCK_DECL(STATIC void,send_resolved_hostname_cell,(edge_connection_t *conn,
54 const char *hostname));
55 
56 cached_resolve_t *dns_get_cache_entry(cached_resolve_t *query);
57 void dns_insert_cache_entry(cached_resolve_t *new_entry);
58 
59 MOCK_DECL(STATIC int,
60 set_exitconn_info_from_resolve,(edge_connection_t *exitconn,
61  const cached_resolve_t *resolve,
62  char **hostname_out));
63 
64 MOCK_DECL(STATIC int,
65 launch_resolve,(cached_resolve_t *resolve));
66 
67 #endif /* defined(DNS_PRIVATE) */
68 
69 #endif /* !defined(TOR_DNS_H) */
70 
Definition: or.h:3476
void dns_launch_correctness_checks(void)
Definition: dns.c:1972
MOCK_DECL(int, router_have_minimum_dir_info,(void))
int dns_reset(void)
Definition: dns.c:226
Structures used in dns.c. Exposed to dns.c, and to the unit tests that declare DNS_PRIVATE.
int dns_init(void)
Definition: dns.c:212
void connection_dns_remove(edge_connection_t *conn)
Definition: dns.c:997
int dns_seems_to_be_broken_for_ipv6(void)
Definition: dns.c:2001
void dump_dns_mem_usage(int severity)
Definition: dns.c:2072
void dns_free_all(void)
Definition: dns.c:388
void dns_reset_correctness_checks(void)
Definition: dns.c:2008
int dns_resolve(edge_connection_t *exitconn)
Definition: dns.c:619
uint32_t dns_clip_ttl(uint32_t ttl)
Definition: dns.c:263
int dns_seems_to_be_broken(void)
Definition: dns.c:1994
void assert_connection_edge_not_dns_pending(edge_connection_t *conn)
Definition: dns.c:951
int has_dns_init_failed(void)
Definition: dns.c:254
Definition: dns_structs.h:60
Definition: or.h:1687
void assert_all_pending_dns_resolves_ok(void)
Definition: dns.c:978