@ -3403,27 +3403,33 @@ size_t dns_txt_print(void *dst_, size_t lim, struct dns_txt *txt) {
} /* dns_txt_print() */
typedef int ( * dns_parse_fn ) ( union dns_any * , struct dns_rr * , struct dns_packet * ) ;
typedef int ( * dns_push_fn ) ( struct dns_packet * , union dns_any * ) ;
typedef int ( * dns_cmp_fn ) ( const union dns_any * , const union dns_any * ) ;
typedef size_t ( * dns_print_fn ) ( void * , size_t , union dns_any * ) ;
typedef size_t ( * dns_cname_fn ) ( void * , size_t , union dns_any * ) ;
static const struct {
enum dns_type type ;
const char * name ;
int ( * parse ) ( ) ;
int ( * push ) ( ) ;
int ( * cmp ) ( ) ;
size_t ( * print ) ( ) ;
size_t ( * cname ) ( ) ;
dns_parse_fn parse ;
dns_push_fn push ;
dns_cmp_fn cmp ;
dns_print_fn print ;
dns_cname_fn cname ;
} dns_rrtypes [ ] = {
{ DNS_T_A , " A " , & dns_a_parse , & dns_a_push , & dns_a_cmp , & dns_a_print , 0 } ,
{ DNS_T_AAAA , " AAAA " , & dns_aaaa_parse , & dns_aaaa_push , & dns_aaaa_cmp , & dns_aaaa_print , 0 } ,
{ DNS_T_MX , " MX " , & dns_mx_parse , & dns_mx_push , & dns_mx_cmp , & dns_mx_print , & dns_mx_cname } ,
{ DNS_T_NS , " NS " , & dns_ns_parse , & dns_ns_push , & dns_ns_cmp , & dns_ns_print , & dns_ns_cname } ,
{ DNS_T_CNAME , " CNAME " , & dns_cname_parse , & dns_cname_push , & dns_cname_cmp , & dns_cname_print , & dns_cname_cname } ,
{ DNS_T_SOA , " SOA " , & dns_soa_parse , & dns_soa_push , & dns_soa_cmp , & dns_soa_print , 0 } ,
{ DNS_T_SRV , " SRV " , & dns_srv_parse , & dns_srv_push , & dns_srv_cmp , & dns_srv_print , & dns_srv_cname } ,
{ DNS_T_OPT , " OPT " , & dns_opt_parse , & dns_opt_push , & dns_opt_cmp , & dns_opt_print , 0 } ,
{ DNS_T_PTR , " PTR " , & dns_ptr_parse , & dns_ptr_push , & dns_ptr_cmp , & dns_ptr_print , & dns_ptr_cname } ,
{ DNS_T_TXT , " TXT " , & dns_txt_parse , & dns_txt_push , & dns_txt_cmp , & dns_txt_print , 0 } ,
{ DNS_T_SPF , " SPF " , & dns_txt_parse , & dns_txt_push , & dns_txt_cmp , & dns_txt_print , 0 } ,
{ DNS_T_SSHFP , " SSHFP " , & dns_sshfp_parse , & dns_sshfp_push , & dns_sshfp_cmp , & dns_sshfp_print , 0 } ,
{ DNS_T_A , " A " , ( dns_parse_fn ) & dns_a_parse , ( dns_push_fn ) & dns_a_push , ( dns_cmp_fn ) & dns_a_cmp , ( dns_print_fn ) & dns_a_print , 0 } ,
{ DNS_T_AAAA , " AAAA " , ( dns_parse_fn ) & dns_aaaa_parse , ( dns_push_fn ) & dns_aaaa_push , ( dns_cmp_fn ) & dns_aaaa_cmp , ( dns_print_fn ) & dns_aaaa_print , 0 } ,
{ DNS_T_MX , " MX " , ( dns_parse_fn ) & dns_mx_parse , ( dns_push_fn ) & dns_mx_push , ( dns_cmp_fn ) & dns_mx_cmp , ( dns_print_fn ) & dns_mx_print , ( dns_cname_fn ) & dns_mx_cname } ,
{ DNS_T_NS , " NS " , ( dns_parse_fn ) & dns_ns_parse , ( dns_push_fn ) & dns_ns_push , ( dns_cmp_fn ) & dns_ns_cmp , ( dns_print_fn ) & dns_ns_print , ( dns_cname_fn ) & dns_ns_cname } ,
{ DNS_T_CNAME , " CNAME " , ( dns_parse_fn ) & dns_cname_parse , ( dns_push_fn ) & dns_cname_push , ( dns_cmp_fn ) & dns_cname_cmp , ( dns_print_fn ) & dns_cname_print , ( dns_cname_fn ) & dns_cname_cname } ,
{ DNS_T_SOA , " SOA " , ( dns_parse_fn ) & dns_soa_parse , ( dns_push_fn ) & dns_soa_push , ( dns_cmp_fn ) & dns_soa_cmp , ( dns_print_fn ) & dns_soa_print , 0 } ,
{ DNS_T_SRV , " SRV " , ( dns_parse_fn ) & dns_srv_parse , ( dns_push_fn ) & dns_srv_push , ( dns_cmp_fn ) & dns_srv_cmp , ( dns_print_fn ) & dns_srv_print , ( dns_cname_fn ) & dns_srv_cname } ,
{ DNS_T_OPT , " OPT " , ( dns_parse_fn ) & dns_opt_parse , ( dns_push_fn ) & dns_opt_push , ( dns_cmp_fn ) & dns_opt_cmp , ( dns_print_fn ) & dns_opt_print , 0 } ,
{ DNS_T_PTR , " PTR " , ( dns_parse_fn ) & dns_ptr_parse , ( dns_push_fn ) & dns_ptr_push , ( dns_cmp_fn ) & dns_ptr_cmp , ( dns_print_fn ) & dns_ptr_print , ( dns_cname_fn ) & dns_ptr_cname } ,
{ DNS_T_TXT , " TXT " , ( dns_parse_fn ) & dns_txt_parse , ( dns_push_fn ) & dns_txt_push , ( dns_cmp_fn ) & dns_txt_cmp , ( dns_print_fn ) & dns_txt_print , 0 } ,
{ DNS_T_SPF , " SPF " , ( dns_parse_fn ) & dns_txt_parse , ( dns_push_fn ) & dns_txt_push , ( dns_cmp_fn ) & dns_txt_cmp , ( dns_print_fn ) & dns_txt_print , 0 } ,
{ DNS_T_SSHFP , " SSHFP " , ( dns_parse_fn ) & dns_sshfp_parse , ( dns_push_fn ) & dns_sshfp_push , ( dns_cmp_fn ) & dns_sshfp_cmp , ( dns_print_fn ) & dns_sshfp_print , 0 } ,
} ; /* dns_rrtypes[] */