djbdnscurve6 53
djbdnscurve6
Loading...
Searching...
No Matches
dns_resolve.c
Go to the documentation of this file.
1#include "iopause.h"
2#include "taia.h"
3#include "byte.h"
4#include "ip.h"
5#include "dns.h"
6#include "curvedns.h"
7
8extern unsigned int flagedns0;
10
11int dns_resolve(const char *q,const char qtype[2])
12{
13 struct taia stamp;
14 struct taia deadline;
16 uint32 scopes[QUERY_MAXNS];
17 iopause_fd x[1];
18 int r;
19 char qflags[2] = { 1, flagedns0 };
20
22 return DNS_INT;
23
24 if (dns_transmit_start6(&dns_resolve_tx,servers,qflags,q,qtype,(const char *)V6localnet,scopes) < 0)
25 return DNS_COM;
26
27 for (;;) {
28 taia_now(&stamp);
29 taia_uint(&deadline,120);
30 taia_add(&deadline,&deadline,&stamp);
32 iopause(x,1,&deadline,&stamp);
34 if (r < 0) return DNS_COM;
35 if (r == 1) return 0;
36 }
37}
#define QUERY_MAXIPLEN
Definition: dns.h:55
#define DNS_INT
Definition: dns.h:43
#define QUERY_MAXNS
Definition: dns.h:54
#define DNS_COM
Definition: dns.h:42
int dns_resolvconfip(char s[QUERY_MAXIPLEN], uint32 scope[QUERY_MAXNS])
Definition: dns_rcip.c:88
unsigned int flagedns0
Definition: axfrdns.c:28
int dns_resolve(const char *q, const char qtype[2])
Definition: dns_resolve.c:11
struct dns_transmit dns_resolve_tx
Definition: dns_resolve.c:9
void dns_transmit_io(struct dns_transmit *d, iopause_fd *x, struct taia *deadline)
Definition: dns_transmit.c:285
int dns_transmit_start6(struct dns_transmit *d, const char servers[QUERY_MAXIPLEN], char qflags[2], const char *q, const char qtype[2], const char localip[16], const uint32 scopes[QUERY_MAXNS])
Definition: dns_transmit.c:276
int dns_transmit_get(struct dns_transmit *d, const iopause_fd *x, const struct taia *when)
Definition: dns_transmit.c:302
char servers[QUERY_MAXIPLEN]
Definition: dnsfilter.c:54
struct line * x
uint32 scopes[QUERY_MAXNS]
Definition: dnsfilter.c:55
char qtype[2]
Definition: dns.h:126