|
|
ad9a1ef |
From 7b174c250df2bc97b503fd03b9e473998676b1a6 Mon Sep 17 00:00:00 2001
|
|
|
ad9a1ef |
From: Simon Kelley <simon@thekelleys.org.uk>
|
|
|
ad9a1ef |
Date: Mon, 28 Oct 2013 13:14:03 +0000
|
|
|
ad9a1ef |
Subject: [PATCH] Fix check for local domains in CNAME case. Fixes
|
|
|
ad9a1ef |
d56a604a9600c08d4a863527d549713c07f0186d
|
|
|
ad9a1ef |
|
|
|
ad9a1ef |
---
|
|
|
ad9a1ef |
src/cache.c | 2 +-
|
|
|
ad9a1ef |
src/rfc1035.c | 4 ++--
|
|
|
ad9a1ef |
2 files changed, 3 insertions(+), 3 deletions(-)
|
|
|
ad9a1ef |
|
|
|
ad9a1ef |
diff --git a/src/cache.c b/src/cache.c
|
|
|
ad9a1ef |
index d99aba6..6c5f601 100644
|
|
|
ad9a1ef |
--- a/src/cache.c
|
|
|
ad9a1ef |
+++ b/src/cache.c
|
|
|
ad9a1ef |
@@ -330,7 +330,7 @@ static int cache_scan_free(char *name, struct all_addr *addr, time_t now, unsign
|
|
|
ad9a1ef |
((flags & crecp->flags & F_TYPE) || ((crecp->flags | flags) & F_CNAME)) &&
|
|
|
ad9a1ef |
hostname_isequal(cache_get_name(crecp), name))
|
|
|
ad9a1ef |
{
|
|
|
ad9a1ef |
- if (crecp->flags & (F_HOSTS | F_DHCP))
|
|
|
ad9a1ef |
+ if (crecp->flags & (F_HOSTS | F_DHCP | F_CONFIG))
|
|
|
ad9a1ef |
return 0;
|
|
|
ad9a1ef |
*up = crecp->hash_next;
|
|
|
ad9a1ef |
cache_unlink(crecp);
|
|
|
ad9a1ef |
diff --git a/src/rfc1035.c b/src/rfc1035.c
|
|
|
ad9a1ef |
index fc6d09c..ff97576 100644
|
|
|
ad9a1ef |
--- a/src/rfc1035.c
|
|
|
ad9a1ef |
+++ b/src/rfc1035.c
|
|
|
ad9a1ef |
@@ -1221,7 +1221,7 @@ int check_for_local_domain(char *name, time_t now)
|
|
|
ad9a1ef |
struct naptr *naptr;
|
|
|
ad9a1ef |
|
|
|
ad9a1ef |
if ((crecp = cache_find_by_name(NULL, name, now, F_IPV4 | F_IPV6 | F_CNAME)) &&
|
|
|
ad9a1ef |
- (crecp->flags & (F_HOSTS | F_DHCP)))
|
|
|
ad9a1ef |
+ (crecp->flags & (F_HOSTS | F_DHCP | F_CONFIG)))
|
|
|
ad9a1ef |
return 1;
|
|
|
ad9a1ef |
|
|
|
ad9a1ef |
for (naptr = daemon->naptr; naptr; naptr = naptr->next)
|
|
|
ad9a1ef |
@@ -1861,7 +1861,7 @@ size_t answer_request(struct dns_header *header, char *limit, size_t qlen,
|
|
|
ad9a1ef |
if (qtype == T_CNAME || qtype == T_ANY)
|
|
|
ad9a1ef |
{
|
|
|
ad9a1ef |
if ((crecp = cache_find_by_name(NULL, name, now, F_CNAME)) &&
|
|
|
ad9a1ef |
- (qtype == T_CNAME || (crecp->flags & (F_HOSTS | F_DHCP))))
|
|
|
ad9a1ef |
+ (qtype == T_CNAME || (crecp->flags & (F_HOSTS | F_DHCP | F_CONFIG))))
|
|
|
ad9a1ef |
{
|
|
|
ad9a1ef |
ans = 1;
|
|
|
ad9a1ef |
if (!dryrun)
|
|
|
ad9a1ef |
--
|
|
|
ad9a1ef |
1.8.3.1
|
|
|
ad9a1ef |
|