8 #define DNS_C_IN "\0\1"
9 #define DNS_C_ANY "\0\377"
11 #define DNS_T_A "\0\1"
12 #define DNS_T_NS "\0\2"
13 #define DNS_T_CNAME "\0\5"
14 #define DNS_T_SOA "\0\6"
15 #define DNS_T_PTR "\0\14"
16 #define DNS_T_HINFO "\0\15"
17 #define DNS_T_MX "\0\17"
18 #define DNS_T_TXT "\0\20"
19 #define DNS_T_RP "\0\21"
20 #define DNS_T_SIG "\0\30"
21 #define DNS_T_KEY "\0\31"
22 #define DNS_T_AAAA "\0\34"
23 #define DNS_T_AXFR "\0\374"
24 #define DNS_T_ANY "\0\377"
27 char *query
; /* 0, or dynamically allocated */
28 unsigned int querylen
;
29 char *packet
; /* 0, or dynamically allocated */
30 unsigned int packetlen
;
31 int s1
; /* 0, or 1 + an open file descriptor */
34 unsigned int curserver
;
42 extern void dns_random_init(const char *);
43 extern unsigned int dns_random(unsigned int);
45 extern void dns_sortip(char *,unsigned int);
47 extern void dns_domain_free(char **);
48 extern int dns_domain_copy(char **,const char *);
49 extern unsigned int dns_domain_length(const char *);
50 extern int dns_domain_equal(const char *,const char *);
51 extern int dns_domain_suffix(const char *,const char *);
52 extern unsigned int dns_domain_suffixpos(const char *,const char *);
53 extern int dns_domain_fromdot(char **,const char *,unsigned int);
54 extern int dns_domain_todot_cat(stralloc
*,const char *);
56 extern unsigned int dns_packet_copy(const char *,unsigned int,unsigned int,char *,unsigned int);
57 extern unsigned int dns_packet_getname(const char *,unsigned int,unsigned int,char **);
58 extern unsigned int dns_packet_skipname(const char *,unsigned int,unsigned int);
60 extern int dns_transmit_start(struct dns_transmit
*,const char *,int,const char *,const char *,const char *);
61 extern void dns_transmit_free(struct dns_transmit
*);
62 extern void dns_transmit_io(struct dns_transmit
*,iopause_fd
*,struct taia
*);
63 extern int dns_transmit_get(struct dns_transmit
*,const iopause_fd
*,const struct taia
*);
65 extern int dns_resolvconfip(char *);
66 extern int dns_resolve(const char *,const char *);
67 extern struct dns_transmit dns_resolve_tx
;
69 extern int dns_ip4_packet(stralloc
*,const char *,unsigned int);
70 extern int dns_ip4(stralloc
*,const stralloc
*);
71 extern int dns_name_packet(stralloc
*,const char *,unsigned int);
72 extern void dns_name4_domain(char *,const char *);
73 #define DNS_NAME4_DOMAIN 31
74 extern int dns_name4(stralloc
*,const char *);
75 extern int dns_txt_packet(stralloc
*,const char *,unsigned int);
76 extern int dns_txt(stralloc
*,const stralloc
*);
77 extern int dns_mx_packet(stralloc
*,const char *,unsigned int);
78 extern int dns_mx(stralloc
*,const stralloc
*);
80 extern int dns_resolvconfrewrite(stralloc
*);
81 extern int dns_ip4_qualify_rules(stralloc
*,stralloc
*,const stralloc
*,const stralloc
*);
82 extern int dns_ip4_qualify(stralloc
*,stralloc
*,const stralloc
*);