Fix spurious AD flags in some DNS replies from local config.

This commit is contained in:
Simon Kelley
2018-10-23 23:54:44 +01:00
parent cbb5b17ad8
commit 6f7812d97b

View File

@@ -1330,7 +1330,7 @@ size_t answer_request(struct dns_header *header, char *limit, size_t qlen,
{ {
if (t->class == qclass && hostname_isequal(name, t->name)) if (t->class == qclass && hostname_isequal(name, t->name))
{ {
ans = 1; ans = 1, sec_data = 0;
if (!dryrun) if (!dryrun)
{ {
unsigned long ttl = daemon->local_ttl; unsigned long ttl = daemon->local_ttl;
@@ -1370,7 +1370,7 @@ size_t answer_request(struct dns_header *header, char *limit, size_t qlen,
addr.addr.rcode.rcode = NOTIMP; addr.addr.rcode.rcode = NOTIMP;
log_query(F_CONFIG | F_RCODE, name, &addr, NULL); log_query(F_CONFIG | F_RCODE, name, &addr, NULL);
} }
ans = 1; ans = 1, sec_data = 0;
} }
} }
} }
@@ -1725,7 +1725,7 @@ size_t answer_request(struct dns_header *header, char *limit, size_t qlen,
} }
else if (is_name_synthetic(flag, name, &addr)) else if (is_name_synthetic(flag, name, &addr))
{ {
ans = 1; ans = 1, sec_data = 0;
if (!dryrun) if (!dryrun)
{ {
log_query(F_FORWARD | F_CONFIG | flag, name, &addr, NULL); log_query(F_FORWARD | F_CONFIG | flag, name, &addr, NULL);
@@ -1764,6 +1764,7 @@ size_t answer_request(struct dns_header *header, char *limit, size_t qlen,
if (!rec->issrv && hostname_isequal(name, rec->name)) if (!rec->issrv && hostname_isequal(name, rec->name))
{ {
ans = found = 1; ans = found = 1;
sec_data = 0;
if (!dryrun) if (!dryrun)
{ {
int offset; int offset;
@@ -1782,6 +1783,7 @@ size_t answer_request(struct dns_header *header, char *limit, size_t qlen,
cache_find_by_name(NULL, name, now, F_HOSTS | F_DHCP | F_NO_RR)) cache_find_by_name(NULL, name, now, F_HOSTS | F_DHCP | F_NO_RR))
{ {
ans = 1; ans = 1;
sec_data = 0;
if (!dryrun) if (!dryrun)
{ {
log_query(F_CONFIG | F_RRNAME, name, NULL, "<MX>"); log_query(F_CONFIG | F_RRNAME, name, NULL, "<MX>");
@@ -1802,6 +1804,7 @@ size_t answer_request(struct dns_header *header, char *limit, size_t qlen,
if (rec->issrv && hostname_isequal(name, rec->name)) if (rec->issrv && hostname_isequal(name, rec->name))
{ {
found = ans = 1; found = ans = 1;
sec_data = 0;
if (!dryrun) if (!dryrun)
{ {
int offset; int offset;
@@ -1838,6 +1841,7 @@ size_t answer_request(struct dns_header *header, char *limit, size_t qlen,
if (!found && option_bool(OPT_FILTER) && (qtype == T_SRV || (qtype == T_ANY && strchr(name, '_')))) if (!found && option_bool(OPT_FILTER) && (qtype == T_SRV || (qtype == T_ANY && strchr(name, '_'))))
{ {
ans = 1; ans = 1;
sec_data = 0;
if (!dryrun) if (!dryrun)
log_query(F_CONFIG | F_NEG, name, NULL, NULL); log_query(F_CONFIG | F_NEG, name, NULL, NULL);
} }
@@ -1850,6 +1854,7 @@ size_t answer_request(struct dns_header *header, char *limit, size_t qlen,
if (hostname_isequal(name, na->name)) if (hostname_isequal(name, na->name))
{ {
ans = 1; ans = 1;
sec_data = 0;
if (!dryrun) if (!dryrun)
{ {
log_query(F_CONFIG | F_RRNAME, name, NULL, "<NAPTR>"); log_query(F_CONFIG | F_RRNAME, name, NULL, "<NAPTR>");
@@ -1862,11 +1867,12 @@ size_t answer_request(struct dns_header *header, char *limit, size_t qlen,
} }
if (qtype == T_MAILB) if (qtype == T_MAILB)
ans = 1, nxdomain = 1; ans = 1, nxdomain = 1, sec_data = 0;
if (qtype == T_SOA && option_bool(OPT_FILTER)) if (qtype == T_SOA && option_bool(OPT_FILTER))
{ {
ans = 1; ans = 1;
sec_data = 0;
if (!dryrun) if (!dryrun)
log_query(F_CONFIG | F_NEG, name, &addr, NULL); log_query(F_CONFIG | F_NEG, name, &addr, NULL);
} }