dns-server: fix rr-ttl-* priority issue

This commit is contained in:
Nick Peng
2023-03-01 19:53:22 +08:00
parent 6827554def
commit 95f843dc43

View File

@@ -335,12 +335,19 @@ static int _dns_server_get_conf_ttl(struct dns_request *request, int ttl)
rr_ttl = ttl_rule->ttl;
}
/* make domain rule ttl high priority */
if (ttl_rule->ttl_min > 0) {
rr_ttl_min = ttl_rule->ttl_min;
if (dns_conf_rr_ttl_max <= rr_ttl_min) {
rr_ttl_max = rr_ttl_min;
}
}
if (ttl_rule->ttl_max > 0) {
rr_ttl_max = ttl_rule->ttl_max;
if (dns_conf_rr_ttl_min >= rr_ttl_max) {
rr_ttl_min = rr_ttl_max;
}
}
}
@@ -348,6 +355,11 @@ static int _dns_server_get_conf_ttl(struct dns_request *request, int ttl)
return rr_ttl;
}
/* make rr_ttl_min first priority */
if (rr_ttl_max < rr_ttl_min) {
rr_ttl_max = rr_ttl_min;
}
if (rr_ttl_max > 0 && ttl >= rr_ttl_max) {
ttl = rr_ttl_max;
} else if (rr_ttl_min > 0 && ttl <= rr_ttl_min) {