djbdnscurve6 51
djbdnscurve6
Loading...
Searching...
No Matches
serverok.c
Go to the documentation of this file.
1#include <sys/types.h>
2#include <sys/stat.h>
3#include "byte.h"
4#include "stralloc.h"
5#include "serverok.h"
6#include "ip.h"
7#include "query.h"
8
9static char fnserver[4 + IPFMT];
10static char fncurve[4 + IPFMT];
11static char fnedns0[4 + IPFMT];
12
13
14/* -1 no curve server
15 1 omitt server */
16
17int serverok(char ip[16])
18{
19 struct stat st;
20
21 fnserver[0] = fncurve[0] = 'i';
22 fnserver[1] = fncurve[1] = 'p';
23 fnserver[2] = fncurve[2] = '/';
24 fnserver[3] = '%';
25 fncurve[3] = '-';
26 fnedns0[3] = '+';
27
28 if (byte_equal(ip,12,V4mappedprefix)) {
29 fnserver[4 + ip4_fmt(fnserver + 4,ip + 12)] = 0;
30 fncurve[4 + ip4_fmt(fncurve + 4,ip + 12)] = 0;
31 fnedns0[4 + ip4_fmt(fnedns0 + 4,ip + 12)] = 0;
32 } else {
33 fnserver[4 + ip6_fmt(fnserver + 4,ip)] = 0;
34 fncurve[4 + ip6_fmt(fncurve + 4,ip)] = 0;
35 fnedns0[4 + ip6_fmt(fnedns0 + 4,ip)] = 0;
36 }
37
38 if (stat(fnserver,&st) == 0) return 1;
39 if (stat(fncurve,&st) == 0) return -1;
40 if (stat(fnedns0,&st) == 0) flagdnsoptrr = 1;
41
42 return 0;
43}
char ip[16]
Definition: axfrdns.c:125
int flagdnsoptrr
Definition: curvedns.c:20
int serverok(char ip[16])
Definition: serverok.c:17