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;