6 const char *fatal
= "walldns: fatal: ";
7 const char *starting
= "starting walldns\n";
14 int respond(char *q
,char qtype
[2])
21 flaga
= byte_equal(qtype
,2,DNS_T_A
);
22 flagptr
= byte_equal(qtype
,2,DNS_T_PTR
);
23 if (byte_equal(qtype
,2,DNS_T_ANY
)) flaga
= flagptr
= 1;
25 if (flaga
|| flagptr
) {
26 if (dd(q
,"",ip
) == 4) {
28 if (!response_rstart(q
,DNS_T_A
,655360)) return 0;
29 if (!response_addbytes(ip
,4)) return 0;
30 response_rfinish(RESPONSE_ANSWER
);
34 j
= dd(q
,"\7in-addr\4arpa",ip
);
36 if (flaga
&& (j
== 4)) {
37 if (!response_rstart(q
,DNS_T_A
,655360)) return 0;
38 if (!response_addbytes(ip
+ 3,1)) return 0;
39 if (!response_addbytes(ip
+ 2,1)) return 0;
40 if (!response_addbytes(ip
+ 1,1)) return 0;
41 if (!response_addbytes(ip
+ 0,1)) return 0;
42 response_rfinish(RESPONSE_ANSWER
);
45 if (!response_rstart(q
,DNS_T_PTR
,655360)) return 0;
46 if (!response_addname(q
)) return 0;
47 response_rfinish(RESPONSE_ANSWER
);