|
@@ -194,6 +194,8 @@ static int _config_nftset_setvalue(struct dns_nftset_names *nftsets, const char
|
|
|
static int _config_client_rule_flag_set(const char *ip_cidr, unsigned int flag, unsigned int is_clear);
|
|
|
static int _config_client_rule_group_add(const char *client, const char *group_name);
|
|
|
|
|
|
+#define group_member(m) ((void *)offsetof(struct dns_conf_group, m))
|
|
|
+
|
|
|
static __attribute__((unused)) int _dns_conf_group_int(int value, int *data)
|
|
|
{
|
|
|
struct dns_conf_group *conf_group = _config_current_rule_group();
|
|
@@ -5926,12 +5928,10 @@ static struct config_item _config_item[] = {
|
|
|
CONF_CUSTOM("srv-record", _config_srv_record, NULL),
|
|
|
CONF_CUSTOM("https-record", _config_https_record, NULL),
|
|
|
CONF_CUSTOM("proxy-server", _config_proxy_server, NULL),
|
|
|
- CONF_YESNO_FUNC("ipset-timeout", _dns_conf_group_yesno,
|
|
|
- (void *)offsetof(struct dns_conf_group, ipset_nftset.ipset_timeout_enable)),
|
|
|
+ CONF_YESNO_FUNC("ipset-timeout", _dns_conf_group_yesno, group_member(ipset_nftset.ipset_timeout_enable)),
|
|
|
CONF_CUSTOM("ipset", _config_ipset, NULL),
|
|
|
CONF_CUSTOM("ipset-no-speed", _config_ipset_no_speed, NULL),
|
|
|
- CONF_YESNO_FUNC("nftset-timeout", _dns_conf_group_yesno,
|
|
|
- (void *)offsetof(struct dns_conf_group, ipset_nftset.nftset_timeout_enable)),
|
|
|
+ CONF_YESNO_FUNC("nftset-timeout", _dns_conf_group_yesno, group_member(ipset_nftset.nftset_timeout_enable)),
|
|
|
CONF_YESNO("nftset-debug", &dns_conf_nftset_debug_enable),
|
|
|
CONF_CUSTOM("nftset", _config_nftset, NULL),
|
|
|
CONF_CUSTOM("nftset-no-speed", _config_nftset_no_speed, NULL),
|
|
@@ -5942,20 +5942,18 @@ static struct config_item _config_item[] = {
|
|
|
CONF_CUSTOM("cache-file", _config_option_parser_filepath, (char *)&dns_conf_cache_file),
|
|
|
CONF_YESNO("cache-persist", &dns_conf_cache_persist),
|
|
|
CONF_INT("cache-checkpoint-time", &dns_conf_cache_checkpoint_time, 0, 3600 * 24 * 7),
|
|
|
- CONF_YESNO_FUNC("prefetch-domain", _dns_conf_group_yesno, (void *)offsetof(struct dns_conf_group, dns_prefetch)),
|
|
|
- CONF_YESNO_FUNC("serve-expired", _dns_conf_group_yesno, (void *)offsetof(struct dns_conf_group, dns_serve_expired)),
|
|
|
- CONF_INT_FUNC("serve-expired-ttl", _dns_conf_group_int,
|
|
|
- (void *)offsetof(struct dns_conf_group, dns_serve_expired_ttl), 0, CONF_INT_MAX),
|
|
|
- CONF_INT_FUNC("serve-expired-reply-ttl", _dns_conf_group_int,
|
|
|
- (void *)offsetof(struct dns_conf_group, dns_serve_expired_reply_ttl), 0, CONF_INT_MAX),
|
|
|
- CONF_INT_FUNC("serve-expired-prefetch-time", _dns_conf_group_int,
|
|
|
- (void *)offsetof(struct dns_conf_group, dns_serve_expired_prefetch_time), 0, CONF_INT_MAX),
|
|
|
- CONF_YESNO_FUNC("dualstack-ip-selection", _dns_conf_group_yesno,
|
|
|
- (void *)offsetof(struct dns_conf_group, dualstack_ip_selection)),
|
|
|
+ CONF_YESNO_FUNC("prefetch-domain", _dns_conf_group_yesno, group_member(dns_prefetch)),
|
|
|
+ CONF_YESNO_FUNC("serve-expired", _dns_conf_group_yesno, group_member(dns_serve_expired)),
|
|
|
+ CONF_INT_FUNC("serve-expired-ttl", _dns_conf_group_int, group_member(dns_serve_expired_ttl), 0, CONF_INT_MAX),
|
|
|
+ CONF_INT_FUNC("serve-expired-reply-ttl", _dns_conf_group_int, group_member(dns_serve_expired_reply_ttl), 0,
|
|
|
+ CONF_INT_MAX),
|
|
|
+ CONF_INT_FUNC("serve-expired-prefetch-time", _dns_conf_group_int, group_member(dns_serve_expired_prefetch_time), 0,
|
|
|
+ CONF_INT_MAX),
|
|
|
+ CONF_YESNO_FUNC("dualstack-ip-selection", _dns_conf_group_yesno, group_member(dualstack_ip_selection)),
|
|
|
CONF_YESNO_FUNC("dualstack-ip-allow-force-AAAA", _dns_conf_group_yesno,
|
|
|
- (void *)offsetof(struct dns_conf_group, dns_dualstack_ip_allow_force_AAAA)),
|
|
|
+ group_member(dns_dualstack_ip_allow_force_AAAA)),
|
|
|
CONF_INT_FUNC("dualstack-ip-selection-threshold", _dns_conf_group_int,
|
|
|
- (void *)offsetof(struct dns_conf_group, dns_dualstack_ip_selection_threshold), 0, 1000),
|
|
|
+ group_member(dns_dualstack_ip_selection_threshold), 0, 1000),
|
|
|
CONF_CUSTOM("dns64", _config_dns64, NULL),
|
|
|
CONF_CUSTOM("log-level", _config_log_level, NULL),
|
|
|
CONF_CUSTOM("log-file", _config_option_parser_filepath, (char *)dns_conf_log_file),
|
|
@@ -5973,23 +5971,17 @@ static struct config_item _config_item[] = {
|
|
|
CONF_YESNO("audit-console", &dns_conf_audit_console),
|
|
|
CONF_YESNO("audit-syslog", &dns_conf_audit_syslog),
|
|
|
CONF_YESNO("acl-enable", &dns_conf_acl_enable),
|
|
|
- CONF_INT_FUNC("rr-ttl", _dns_conf_group_int, (void *)offsetof(struct dns_conf_group, dns_rr_ttl), 0, CONF_INT_MAX),
|
|
|
- CONF_INT_FUNC("rr-ttl-min", _dns_conf_group_int, (void *)offsetof(struct dns_conf_group, dns_rr_ttl_min), 0,
|
|
|
- CONF_INT_MAX),
|
|
|
- CONF_INT_FUNC("rr-ttl-max", _dns_conf_group_int, (void *)offsetof(struct dns_conf_group, dns_rr_ttl_max), 0,
|
|
|
- CONF_INT_MAX),
|
|
|
- CONF_INT_FUNC("rr-ttl-reply-max", _dns_conf_group_int,
|
|
|
- (void *)offsetof(struct dns_conf_group, dns_rr_ttl_reply_max), 0, CONF_INT_MAX),
|
|
|
- CONF_INT_FUNC("local-ttl", _dns_conf_group_int, (void *)offsetof(struct dns_conf_group, dns_local_ttl), 0,
|
|
|
- CONF_INT_MAX),
|
|
|
- CONF_INT_FUNC("max-reply-ip-num", _dns_conf_group_int,
|
|
|
- (void *)offsetof(struct dns_conf_group, dns_max_reply_ip_num), 1, CONF_INT_MAX),
|
|
|
+ CONF_INT_FUNC("rr-ttl", _dns_conf_group_int, group_member(dns_rr_ttl), 0, CONF_INT_MAX),
|
|
|
+ CONF_INT_FUNC("rr-ttl-min", _dns_conf_group_int, group_member(dns_rr_ttl_min), 0, CONF_INT_MAX),
|
|
|
+ CONF_INT_FUNC("rr-ttl-max", _dns_conf_group_int, group_member(dns_rr_ttl_max), 0, CONF_INT_MAX),
|
|
|
+ CONF_INT_FUNC("rr-ttl-reply-max", _dns_conf_group_int, group_member(dns_rr_ttl_reply_max), 0, CONF_INT_MAX),
|
|
|
+ CONF_INT_FUNC("local-ttl", _dns_conf_group_int, group_member(dns_local_ttl), 0, CONF_INT_MAX),
|
|
|
+ CONF_INT_FUNC("max-reply-ip-num", _dns_conf_group_int, group_member(dns_max_reply_ip_num), 1, CONF_INT_MAX),
|
|
|
CONF_INT("max-query-limit", &dns_conf_max_query_limit, 0, CONF_INT_MAX),
|
|
|
- CONF_ENUM_FUNC("response-mode", _dns_conf_group_enum, (void *)offsetof(struct dns_conf_group, dns_response_mode),
|
|
|
+ CONF_ENUM_FUNC("response-mode", _dns_conf_group_enum, group_member(dns_response_mode),
|
|
|
&dns_conf_response_mode_enum),
|
|
|
- CONF_YESNO_FUNC("force-AAAA-SOA", _dns_conf_group_yesno, (void *)offsetof(struct dns_conf_group, force_AAAA_SOA)),
|
|
|
- CONF_YESNO_FUNC("force-no-CNAME", _dns_conf_group_yesno,
|
|
|
- (void *)offsetof(struct dns_conf_group, dns_force_no_cname)),
|
|
|
+ CONF_YESNO_FUNC("force-AAAA-SOA", _dns_conf_group_yesno, group_member(force_AAAA_SOA)),
|
|
|
+ CONF_YESNO_FUNC("force-no-CNAME", _dns_conf_group_yesno, group_member(dns_force_no_cname)),
|
|
|
CONF_CUSTOM("force-qtype-SOA", _config_qtype_soa, NULL),
|
|
|
CONF_CUSTOM("blacklist-ip", _config_blacklist_ip, NULL),
|
|
|
CONF_CUSTOM("whitelist-ip", _conf_whitelist_ip, NULL),
|