@@ -194,6 +194,8 @@ static int _config_nftset_setvalue(struct dns_nftset_names *nftsets, const char
194194static int _config_client_rule_flag_set (const char * ip_cidr , unsigned int flag , unsigned int is_clear );
195195static int _config_client_rule_group_add (const char * client , const char * group_name );
196196
197+ #define group_member (m ) ((void *)offsetof(struct dns_conf_group, m))
198+
197199static __attribute__((unused )) int _dns_conf_group_int (int value , int * data )
198200{
199201 struct dns_conf_group * conf_group = _config_current_rule_group ();
@@ -5926,12 +5928,10 @@ static struct config_item _config_item[] = {
59265928 CONF_CUSTOM ("srv-record" , _config_srv_record , NULL ),
59275929 CONF_CUSTOM ("https-record" , _config_https_record , NULL ),
59285930 CONF_CUSTOM ("proxy-server" , _config_proxy_server , NULL ),
5929- CONF_YESNO_FUNC ("ipset-timeout" , _dns_conf_group_yesno ,
5930- (void * )offsetof(struct dns_conf_group , ipset_nftset .ipset_timeout_enable )),
5931+ CONF_YESNO_FUNC ("ipset-timeout" , _dns_conf_group_yesno , group_member (ipset_nftset .ipset_timeout_enable )),
59315932 CONF_CUSTOM ("ipset" , _config_ipset , NULL ),
59325933 CONF_CUSTOM ("ipset-no-speed" , _config_ipset_no_speed , NULL ),
5933- CONF_YESNO_FUNC ("nftset-timeout" , _dns_conf_group_yesno ,
5934- (void * )offsetof(struct dns_conf_group , ipset_nftset .nftset_timeout_enable )),
5934+ CONF_YESNO_FUNC ("nftset-timeout" , _dns_conf_group_yesno , group_member (ipset_nftset .nftset_timeout_enable )),
59355935 CONF_YESNO ("nftset-debug" , & dns_conf_nftset_debug_enable ),
59365936 CONF_CUSTOM ("nftset" , _config_nftset , NULL ),
59375937 CONF_CUSTOM ("nftset-no-speed" , _config_nftset_no_speed , NULL ),
@@ -5942,20 +5942,18 @@ static struct config_item _config_item[] = {
59425942 CONF_CUSTOM ("cache-file" , _config_option_parser_filepath , (char * )& dns_conf_cache_file ),
59435943 CONF_YESNO ("cache-persist" , & dns_conf_cache_persist ),
59445944 CONF_INT ("cache-checkpoint-time" , & dns_conf_cache_checkpoint_time , 0 , 3600 * 24 * 7 ),
5945- CONF_YESNO_FUNC ("prefetch-domain" , _dns_conf_group_yesno , (void * )offsetof(struct dns_conf_group , dns_prefetch )),
5946- CONF_YESNO_FUNC ("serve-expired" , _dns_conf_group_yesno , (void * )offsetof(struct dns_conf_group , dns_serve_expired )),
5947- CONF_INT_FUNC ("serve-expired-ttl" , _dns_conf_group_int ,
5948- (void * )offsetof(struct dns_conf_group , dns_serve_expired_ttl ), 0 , CONF_INT_MAX ),
5949- CONF_INT_FUNC ("serve-expired-reply-ttl" , _dns_conf_group_int ,
5950- (void * )offsetof(struct dns_conf_group , dns_serve_expired_reply_ttl ), 0 , CONF_INT_MAX ),
5951- CONF_INT_FUNC ("serve-expired-prefetch-time" , _dns_conf_group_int ,
5952- (void * )offsetof(struct dns_conf_group , dns_serve_expired_prefetch_time ), 0 , CONF_INT_MAX ),
5953- CONF_YESNO_FUNC ("dualstack-ip-selection" , _dns_conf_group_yesno ,
5954- (void * )offsetof(struct dns_conf_group , dualstack_ip_selection )),
5945+ CONF_YESNO_FUNC ("prefetch-domain" , _dns_conf_group_yesno , group_member (dns_prefetch )),
5946+ CONF_YESNO_FUNC ("serve-expired" , _dns_conf_group_yesno , group_member (dns_serve_expired )),
5947+ CONF_INT_FUNC ("serve-expired-ttl" , _dns_conf_group_int , group_member (dns_serve_expired_ttl ), 0 , CONF_INT_MAX ),
5948+ CONF_INT_FUNC ("serve-expired-reply-ttl" , _dns_conf_group_int , group_member (dns_serve_expired_reply_ttl ), 0 ,
5949+ CONF_INT_MAX ),
5950+ CONF_INT_FUNC ("serve-expired-prefetch-time" , _dns_conf_group_int , group_member (dns_serve_expired_prefetch_time ), 0 ,
5951+ CONF_INT_MAX ),
5952+ CONF_YESNO_FUNC ("dualstack-ip-selection" , _dns_conf_group_yesno , group_member (dualstack_ip_selection )),
59555953 CONF_YESNO_FUNC ("dualstack-ip-allow-force-AAAA" , _dns_conf_group_yesno ,
5956- ( void * )offsetof( struct dns_conf_group , dns_dualstack_ip_allow_force_AAAA )),
5954+ group_member ( dns_dualstack_ip_allow_force_AAAA )),
59575955 CONF_INT_FUNC ("dualstack-ip-selection-threshold" , _dns_conf_group_int ,
5958- ( void * )offsetof( struct dns_conf_group , dns_dualstack_ip_selection_threshold ), 0 , 1000 ),
5956+ group_member ( dns_dualstack_ip_selection_threshold ), 0 , 1000 ),
59595957 CONF_CUSTOM ("dns64" , _config_dns64 , NULL ),
59605958 CONF_CUSTOM ("log-level" , _config_log_level , NULL ),
59615959 CONF_CUSTOM ("log-file" , _config_option_parser_filepath , (char * )dns_conf_log_file ),
@@ -5973,23 +5971,17 @@ static struct config_item _config_item[] = {
59735971 CONF_YESNO ("audit-console" , & dns_conf_audit_console ),
59745972 CONF_YESNO ("audit-syslog" , & dns_conf_audit_syslog ),
59755973 CONF_YESNO ("acl-enable" , & dns_conf_acl_enable ),
5976- CONF_INT_FUNC ("rr-ttl" , _dns_conf_group_int , (void * )offsetof(struct dns_conf_group , dns_rr_ttl ), 0 , CONF_INT_MAX ),
5977- CONF_INT_FUNC ("rr-ttl-min" , _dns_conf_group_int , (void * )offsetof(struct dns_conf_group , dns_rr_ttl_min ), 0 ,
5978- CONF_INT_MAX ),
5979- CONF_INT_FUNC ("rr-ttl-max" , _dns_conf_group_int , (void * )offsetof(struct dns_conf_group , dns_rr_ttl_max ), 0 ,
5980- CONF_INT_MAX ),
5981- CONF_INT_FUNC ("rr-ttl-reply-max" , _dns_conf_group_int ,
5982- (void * )offsetof(struct dns_conf_group , dns_rr_ttl_reply_max ), 0 , CONF_INT_MAX ),
5983- CONF_INT_FUNC ("local-ttl" , _dns_conf_group_int , (void * )offsetof(struct dns_conf_group , dns_local_ttl ), 0 ,
5984- CONF_INT_MAX ),
5985- CONF_INT_FUNC ("max-reply-ip-num" , _dns_conf_group_int ,
5986- (void * )offsetof(struct dns_conf_group , dns_max_reply_ip_num ), 1 , CONF_INT_MAX ),
5974+ CONF_INT_FUNC ("rr-ttl" , _dns_conf_group_int , group_member (dns_rr_ttl ), 0 , CONF_INT_MAX ),
5975+ CONF_INT_FUNC ("rr-ttl-min" , _dns_conf_group_int , group_member (dns_rr_ttl_min ), 0 , CONF_INT_MAX ),
5976+ CONF_INT_FUNC ("rr-ttl-max" , _dns_conf_group_int , group_member (dns_rr_ttl_max ), 0 , CONF_INT_MAX ),
5977+ CONF_INT_FUNC ("rr-ttl-reply-max" , _dns_conf_group_int , group_member (dns_rr_ttl_reply_max ), 0 , CONF_INT_MAX ),
5978+ CONF_INT_FUNC ("local-ttl" , _dns_conf_group_int , group_member (dns_local_ttl ), 0 , CONF_INT_MAX ),
5979+ CONF_INT_FUNC ("max-reply-ip-num" , _dns_conf_group_int , group_member (dns_max_reply_ip_num ), 1 , CONF_INT_MAX ),
59875980 CONF_INT ("max-query-limit" , & dns_conf_max_query_limit , 0 , CONF_INT_MAX ),
5988- CONF_ENUM_FUNC ("response-mode" , _dns_conf_group_enum , ( void * )offsetof( struct dns_conf_group , dns_response_mode ),
5981+ CONF_ENUM_FUNC ("response-mode" , _dns_conf_group_enum , group_member ( dns_response_mode ),
59895982 & dns_conf_response_mode_enum ),
5990- CONF_YESNO_FUNC ("force-AAAA-SOA" , _dns_conf_group_yesno , (void * )offsetof(struct dns_conf_group , force_AAAA_SOA )),
5991- CONF_YESNO_FUNC ("force-no-CNAME" , _dns_conf_group_yesno ,
5992- (void * )offsetof(struct dns_conf_group , dns_force_no_cname )),
5983+ CONF_YESNO_FUNC ("force-AAAA-SOA" , _dns_conf_group_yesno , group_member (force_AAAA_SOA )),
5984+ CONF_YESNO_FUNC ("force-no-CNAME" , _dns_conf_group_yesno , group_member (dns_force_no_cname )),
59935985 CONF_CUSTOM ("force-qtype-SOA" , _config_qtype_soa , NULL ),
59945986 CONF_CUSTOM ("blacklist-ip" , _config_blacklist_ip , NULL ),
59955987 CONF_CUSTOM ("whitelist-ip" , _conf_whitelist_ip , NULL ),
0 commit comments