bind-option: support force aaaa soa bind option, secondary DNS support Force-AAAA-SOA options
This commit is contained in:
@@ -853,6 +853,7 @@ static int _config_bind_ip(int argc, char *argv[], DNS_BIND_TYPE type)
|
||||
{"no-speed-check", no_argument, NULL, 'S'},
|
||||
{"no-cache", no_argument, NULL, 'C'},
|
||||
{"no-dualstack-selection", no_argument, NULL, 'D'},
|
||||
{"force-aaaa-soa", no_argument, NULL, 'F'},
|
||||
{NULL, no_argument, NULL, 0}
|
||||
};
|
||||
/* clang-format on */
|
||||
@@ -918,6 +919,10 @@ static int _config_bind_ip(int argc, char *argv[], DNS_BIND_TYPE type)
|
||||
server_flag |= BIND_FLAG_NO_DUALSTACK_SELECTION;
|
||||
break;
|
||||
}
|
||||
case 'F': {
|
||||
server_flag |= BIND_FLAG_FORCE_AAAA_SOA;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -90,6 +90,7 @@ typedef enum {
|
||||
#define BIND_FLAG_NO_SPEED_CHECK (1 << 5)
|
||||
#define BIND_FLAG_NO_CACHE (1 << 6)
|
||||
#define BIND_FLAG_NO_DUALSTACK_SELECTION (1 << 7)
|
||||
#define BIND_FLAG_FORCE_AAAA_SOA (1 << 8)
|
||||
|
||||
struct dns_rule_flags {
|
||||
unsigned int flags;
|
||||
|
||||
@@ -261,8 +261,10 @@ static int _dns_server_is_return_soa(struct dns_request *request)
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (dns_conf_force_AAAA_SOA == 1 && request->qtype == DNS_T_AAAA) {
|
||||
return 1;
|
||||
if (request->qtype == DNS_T_AAAA) {
|
||||
if (_dns_server_has_bind_flag(request, BIND_FLAG_FORCE_AAAA_SOA) == 0 || dns_conf_force_AAAA_SOA == 1) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
rule_flag = request->domain_rule.rules[DOMAIN_RULE_FLAGS];
|
||||
|
||||
Reference in New Issue
Block a user