diff options
Diffstat (limited to 'src/rfc1035.c')
-rw-r--r-- | src/rfc1035.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/rfc1035.c b/src/rfc1035.c index 15b4261..3f13369 100644 --- a/src/rfc1035.c +++ b/src/rfc1035.c @@ -917,8 +917,8 @@ int extract_addresses(struct dns_header *header, size_t qlen, char *name, time_t searched_soa = 1; ttl = find_soa(header, qlen, name, doctored); #ifdef HAVE_DNSSEC - if (*doctored) - secure = 0; + if (*doctored && secure) + return 0; #endif } @@ -988,9 +988,8 @@ int extract_addresses(struct dns_header *header, size_t qlen, char *name, time_t if (aqtype == T_CNAME) { - if (!cname_count--) - return 0; /* looped CNAMES */ - secflag = 0; /* no longer DNSSEC */ + if (!cname_count-- || secure) + return 0; /* looped CNAMES, or DNSSEC, which we can't cache. */ goto cname_loop; } |