ucspi-ssl  0.99e
TLS encryption for IPv6 communication
dns.h
Go to the documentation of this file.
1 #ifndef DNS_H
2 #define DNS_H
3 
4 #include "stralloc.h"
5 #include "iopause.h"
6 #include "taia.h"
7 
8 #define DNS_C_IN "\0\1"
9 #define DNS_C_ANY "\0\377"
10 
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"
25 
26 struct dns_transmit {
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 */
32  int tcpstate;
33  unsigned int udploop;
34  unsigned int curserver;
35  struct taia deadline;
36  unsigned int pos;
37  const char *servers;
38  char localip[16];
39  unsigned int scope_id;
40  char qtype[2];
41 } ;
42 
43 extern void dns_random_init(const char *);
44 extern unsigned int dns_random(unsigned int);
45 
46 extern void dns_sortip(char *,unsigned int);
47 extern void dns_sortip6(char *,unsigned int);
48 
49 extern void dns_domain_free(char **);
50 extern int dns_domain_copy(char **,const char *);
51 extern unsigned int dns_domain_length(const char *);
52 extern int dns_domain_equal(const char *,const char *);
53 extern int dns_domain_suffix(const char *,const char *);
54 extern unsigned int dns_domain_suffixpos(const char *,const char *);
55 extern int dns_domain_fromdot(char **,const char *,unsigned int);
56 extern int dns_domain_todot_cat(stralloc *,const char *);
57 
58 extern unsigned int dns_packet_copy(const char *,unsigned int,unsigned int,char *,unsigned int);
59 extern unsigned int dns_packet_getname(const char *,unsigned int,unsigned int,char **);
60 extern unsigned int dns_packet_skipname(const char *,unsigned int,unsigned int);
61 
62 extern int dns_transmit_start(struct dns_transmit *,const char *,int,const char *,const char *,const unsigned char *);
63 extern void dns_transmit_free(struct dns_transmit *);
64 extern void dns_transmit_io(struct dns_transmit *,iopause_fd *,struct taia *);
65 extern int dns_transmit_get(struct dns_transmit *,const iopause_fd *,const struct taia *);
66 
67 extern int dns_resolvconfip(char *);
68 extern int dns_resolve(const char *,const char *);
69 extern struct dns_transmit dns_resolve_tx;
70 
71 extern int dns_ip4_packet(stralloc *,const char *,unsigned int);
72 extern int dns_ip4(stralloc *,const stralloc *);
73 extern int dns_ip6_packet(stralloc *,const char *,unsigned int);
74 extern int dns_ip6(stralloc *,stralloc *);
75 extern int dns_name_packet(stralloc *,const char *,unsigned int);
76 extern void dns_name4_domain(char *,const char *);
77 #define DNS_NAME4_DOMAIN 31
78 extern int dns_name4(stralloc *,const char *);
79 extern int dns_txt_packet(stralloc *,const char *,unsigned int);
80 extern int dns_txt(stralloc *,const stralloc *);
81 extern int dns_mx_packet(stralloc *,const char *,unsigned int);
82 extern int dns_mx(stralloc *,const stralloc *);
83 
84 extern int dns_resolvconfrewrite(stralloc *);
85 extern int dns_ip4_qualify_rules(stralloc *,stralloc *,const stralloc *,const stralloc *);
86 extern int dns_ip4_qualify(stralloc *,stralloc *,const stralloc *);
87 extern int dns_ip6_qualify_rules(stralloc *,stralloc *,const stralloc *,const stralloc *);
88 extern int dns_ip6_qualify(stralloc *,stralloc *,const stralloc *);
89 
90 extern int dns_name6(stralloc *,char ip[16]);
91 extern int dns_name6_domain(char *,char *);
92 #define DNS_NAME6_DOMAIN (4*16+11)
93 
94 #endif
int dns_ip4_qualify_rules(stralloc *, stralloc *, const stralloc *, const stralloc *)
Definition: dns_ipq.c:33
unsigned int dns_domain_suffixpos(const char *, const char *)
Definition: dns_domain.c:63
void dns_transmit_free(struct dns_transmit *)
Definition: dns_transmit.c:79
Definition: taia.h:8
const char * servers
Definition: dns.h:37
int dns_domain_suffix(const char *, const char *)
Definition: dns_domain.c:51
int dns_name4(stralloc *, const char *)
char localip[16]
Definition: dns.h:38
void dns_sortip(char *, unsigned int)
Definition: dns_sortip.c:7
void dns_domain_free(char **)
Definition: dns_domain.c:18
void dns_transmit_io(struct dns_transmit *, iopause_fd *, struct taia *)
Definition: dns_transmit.c:227
int dns_ip6_packet(stralloc *, const char *, unsigned int)
Definition: dns_ip6.c:44
int dns_ip6(stralloc *, stralloc *)
Definition: dns_ip6.c:51
int dns_name_packet(stralloc *, const char *, unsigned int)
Definition: dns_name.c:9
int dns_domain_fromdot(char **, const char *, unsigned int)
Definition: dns_dfd.c:6
struct taia deadline
Definition: dns.h:35
char * query
Definition: dns.h:27
int dns_transmit_start(struct dns_transmit *, const char *, int, const char *, const char *, const unsigned char *)
int s1
Definition: dns.h:31
int dns_ip4(stralloc *, const stralloc *)
Definition: dns_ip.c:39
int dns_ip6_qualify_rules(stralloc *, stralloc *, const stralloc *, const stralloc *)
Definition: dns_ipq6.c:34
int dns_mx_packet(stralloc *, const char *, unsigned int)
int tcpstate
Definition: dns.h:32
unsigned int udploop
Definition: dns.h:33
int dns_mx(stralloc *, const stralloc *)
int dns_txt(stralloc *, const stralloc *)
Definition: dns_txt.c:51
unsigned int curserver
Definition: dns.h:34
unsigned int pos
Definition: dns.h:36
int dns_ip4_qualify(stralloc *, stralloc *, const stralloc *)
Definition: dns_ipq.c:66
int dns_transmit_get(struct dns_transmit *, const iopause_fd *, const struct taia *)
Definition: dns_transmit.c:244
unsigned int scope_id
Definition: dns.h:39
unsigned int packetlen
Definition: dns.h:30
void dns_sortip6(char *, unsigned int)
Definition: dns_sortip6.c:7
struct dns_transmit dns_resolve_tx
Definition: dns_resolve.c:7
void dns_name4_domain(char *, const char *)
unsigned int dns_random(unsigned int)
Definition: dns_random.c:52
unsigned int dns_packet_skipname(const char *, unsigned int, unsigned int)
Definition: dns_packet.c:18
int dns_domain_copy(char **, const char *)
Definition: dns_domain.c:26
int dns_domain_equal(const char *, const char *)
Definition: dns_domain.c:40
char qtype[2]
Definition: dns.h:40
int dns_txt_packet(stralloc *, const char *, unsigned int)
Definition: dns_txt.c:6
void dns_random_init(const char *)
unsigned int dns_packet_copy(const char *, unsigned int, unsigned int, char *, unsigned int)
Definition: dns_packet.c:8
int dns_resolvconfip(char *)
int dns_name6(stralloc *, char ip[16])
Definition: dns_name.c:51
unsigned int querylen
Definition: dns.h:28
unsigned int dns_domain_length(const char *)
Definition: dns_domain.c:7
int dns_name6_domain(char *, char *)
char * packet
Definition: dns.h:29
int dns_ip6_qualify(stralloc *, stralloc *, const stralloc *)
Definition: dns_ipq6.c:67
unsigned int dns_packet_getname(const char *, unsigned int, unsigned int, char **)
Definition: dns_packet.c:35
int dns_resolvconfrewrite(stralloc *)
Definition: dns_rcrw.c:112
int dns_resolve(const char *, const char *)
int dns_ip4_packet(stralloc *, const char *, unsigned int)
Definition: dns_ip.c:6
int dns_domain_todot_cat(stralloc *, const char *)
Definition: dns_dtda.c:4