10 #include "readclose.h"
12 #include "socket_if.h"
16 static stralloc
ifname = {0};
18 static int roots_find(
char *q)
24 while (i <
data.len) {
33 static int roots_search(
char *q)
50 if (r == -1)
return 0;
57 return roots_search(q) == roots_search(q2);
60 static int init2(DIR *
dir)
83 if (
d->d_name[0] !=
'.') {
84 if (openreadclose(
d->d_name,&text,
QUERY_MAXNS) != 1)
return 0;
85 if (!stralloc_append(&text,
"\n"))
return 0;
88 if (str_equal(fqdn,
"@")) fqdn =
".";
93 for (i = k = 0; i < text.len; ++i)
94 if (text.s[i] ==
'\n') {
110 static int init1(
void)
115 if (chdir(
"servers") == -1)
return 0;
128 if (!stralloc_copys(&
data,
""))
return 0;
130 fddir = open_read(
".");
131 if (fddir == -1)
return 0;
133 if (fchdir(fddir) == -1) r = 0;
int dns_domain_equal(const char *, const char *)
int dns_domain_fromdot(char **, const char *, unsigned int)
unsigned int dns_domain_length(const char *)
uint32 scope_ids[QUERY_MAXNS]
char servers[QUERY_MAXIPLEN]
void d(const char *home, const char *subdir, int uid, int gid, int mode)
int roots_same(char *q, char *q2)
int roots(char servers[QUERY_MAXIPLEN], char *q)