summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominik Derigs <dl6er@dl6er.de>2023-03-03 18:05:26 +0100
committerSimon Kelley <simon@thekelleys.org.uk>2023-03-06 17:32:18 +0000
commit997982f78bd3f8c311b9557e1ef825555e7290bb (patch)
tree17bc1e64df7310519c87f7093586be256402d39e
parent7d6b68c5d7016aca5372f12e9f0c25f0a108644d (diff)
downloaddnsmasq-997982f78bd3f8c311b9557e1ef825555e7290bb.tar.gz
Fix --rev-server option. It was broken in 1db9943c6879c160a5fbef885d5ceadd3668b74d when resolving upstream servers by name was extended to --rev-server without accounting for the fact that re-using one and the same upstream server for each of the x.y.z.in-addr.arpa is actually a wanted feature
Signed-off-by: DL6ER <dl6er@dl6er.de>
-rw-r--r--src/option.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/option.c b/src/option.c
index 1090bca..2e208ba 100644
--- a/src/option.c
+++ b/src/option.c
@@ -1159,6 +1159,9 @@ static char *domain_rev4(int from_file, char *server, struct in_addr *addr4, int
}
else
{
+ /* Always reset server as valid here, so we can add the same upstream
+ server address multiple times for each x.y.z.in-addr.arpa */
+ sdetails.valid = 1;
while (parse_server_next(&sdetails))
{
if ((string = parse_server_addr(&sdetails)))
@@ -1244,6 +1247,9 @@ static char *domain_rev6(int from_file, char *server, struct in6_addr *addr6, in
}
else
{
+ /* Always reset server as valid here, so we can add the same upstream
+ server address multiple times for each x.y.z.ip6.arpa */
+ sdetails.valid = 1;
while (parse_server_next(&sdetails))
{
if ((string = parse_server_addr(&sdetails)))