From 83c8105312c10d0c4f518bf517da24e5d4360861 Mon Sep 17 00:00:00 2001 From: Nick Peng Date: Wed, 24 Aug 2022 20:05:35 +0800 Subject: [PATCH] dns_server: fix only cache on ip address result issue --- src/dns_conf.c | 9 +++++++++ src/dns_server.c | 4 ++++ 2 files changed, 13 insertions(+) diff --git a/src/dns_conf.c b/src/dns_conf.c index 75b3e3a..7dba2e2 100644 --- a/src/dns_conf.c +++ b/src/dns_conf.c @@ -2093,6 +2093,15 @@ static int _dns_conf_load_post(void) dns_conf_response_mode_enum[dns_conf_response_mode].name); } + + if ((dns_conf_rr_ttl_min > dns_conf_rr_ttl_max) && dns_conf_rr_ttl_max > 0) { + dns_conf_rr_ttl_min = dns_conf_rr_ttl_max; + } + + if ((dns_conf_rr_ttl_max < dns_conf_rr_ttl_min) && dns_conf_rr_ttl_max > 0) { + dns_conf_rr_ttl_max = dns_conf_rr_ttl_min; + } + if (dns_conf_local_ttl == 0) { dns_conf_local_ttl = dns_conf_rr_ttl_min; } diff --git a/src/dns_server.c b/src/dns_server.c index d8a44ea..a3c968d 100644 --- a/src/dns_server.c +++ b/src/dns_server.c @@ -1824,6 +1824,10 @@ static void _dns_server_complete_with_multi_ipaddress(struct dns_request *reques _dns_server_force_dualstack(request); } + if (request->passthrough && do_reply == 0) { + return; + } + _dns_server_post_context_init(&context, request); context.do_cache = 1; context.do_ipset = 1;