From: Ondřej Surý Date: Fri, 21 Feb 2025 11:09:46 +0000 (+0100) Subject: Simplify name initializers X-Git-Tag: ondrej/lock-free-qpzone-reads-v1~30^2~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1c22ab2ef730fd454d62eea0d52209fa6eab10e3;p=thirdparty%2Fbind9.git Simplify name initializers We no longer need to pass labels to DNS_NAME_INITABSOLUTE and DNS_NAME_INITNONABSOLUTE. --- diff --git a/bin/dig/dig.c b/bin/dig/dig.c index 065643417f9..b7a1a24cd6e 100644 --- a/bin/dig/dig.c +++ b/bin/dig/dig.c @@ -635,9 +635,7 @@ static bool isdotlocal(dns_message_t *msg) { isc_result_t result; static unsigned char local_ndata[] = { "\005local" }; - static unsigned char local_offsets[] = { 0, 6 }; - static dns_name_t local = DNS_NAME_INITABSOLUTE(local_ndata, - local_offsets); + static dns_name_t local = DNS_NAME_INITABSOLUTE(local_ndata); for (result = dns_message_firstname(msg, DNS_SECTION_QUESTION); result == ISC_R_SUCCESS; diff --git a/lib/dns/include/dns/name.h b/lib/dns/include/dns/name.h index d5f0a80e06a..ff4d3c4e088 100644 --- a/lib/dns/include/dns/name.h +++ b/lib/dns/include/dns/name.h @@ -151,24 +151,24 @@ extern const dns_name_t *dns_wildcardname; * * Typical usage: * unsigned char data[] = "\005value"; - * dns_name_t value = DNS_NAME_INITNONABSOLUTE(data, 1); + * dns_name_t value = DNS_NAME_INITNONABSOLUTE(data); * * unsigned char data[] = "\005value"; - * dns_name_t value = DNS_NAME_INITABSOLUTE(data, 1); + * dns_name_t value = DNS_NAME_INITABSOLUTE(data); */ -#define DNS_NAME_INITNONABSOLUTE(__ndata, __labels) \ - { \ - .magic = 0 ? sizeof(__labels) : DNS_NAME_MAGIC, \ - .ndata = (__ndata), \ - .length = (sizeof(__ndata) - 1), \ - .attributes = { .readonly = true }, \ - .link = ISC_LINK_INITIALIZER, \ - .list = ISC_LIST_INITIALIZER, \ +#define DNS_NAME_INITNONABSOLUTE(__ndata) \ + { \ + .magic = DNS_NAME_MAGIC, \ + .ndata = (__ndata), \ + .length = (sizeof(__ndata) - 1), \ + .attributes = { .readonly = true }, \ + .link = ISC_LINK_INITIALIZER, \ + .list = ISC_LIST_INITIALIZER, \ } -#define DNS_NAME_INITABSOLUTE(__ndata, __labels) \ +#define DNS_NAME_INITABSOLUTE(__ndata) \ { \ - .magic = 0 ? sizeof(__labels) : DNS_NAME_MAGIC, \ + .magic = DNS_NAME_MAGIC, \ .ndata = (__ndata), \ .length = sizeof(__ndata), \ .attributes = { .readonly = true, .absolute = true }, \ diff --git a/lib/dns/master.c b/lib/dns/master.c index 5b12fe65527..08b3a49046d 100644 --- a/lib/dns/master.c +++ b/lib/dns/master.c @@ -324,14 +324,13 @@ loadctx_destroy(dns_loadctx_t *lctx); source, line, isc_result_totext(result)) static unsigned char in_addr_arpa_data[] = "\007IN-ADDR\004ARPA"; -static dns_name_t const in_addr_arpa = DNS_NAME_INITABSOLUTE(in_addr_arpa_data, - NULL); +static dns_name_t const in_addr_arpa = DNS_NAME_INITABSOLUTE(in_addr_arpa_data); static unsigned char ip6_int_data[] = "\003IP6\003INT"; -static dns_name_t const ip6_int = DNS_NAME_INITABSOLUTE(ip6_int_data, NULL); +static dns_name_t const ip6_int = DNS_NAME_INITABSOLUTE(ip6_int_data); static unsigned char ip6_arpa_data[] = "\003IP6\004ARPA"; -static dns_name_t const ip6_arpa = DNS_NAME_INITABSOLUTE(ip6_arpa_data, NULL); +static dns_name_t const ip6_arpa = DNS_NAME_INITABSOLUTE(ip6_arpa_data); static bool dns_master_isprimary(dns_loadctx_t *lctx) { diff --git a/lib/dns/name.c b/lib/dns/name.c index 43a2f9a605c..2e584b29d4a 100644 --- a/lib/dns/name.c +++ b/lib/dns/name.c @@ -74,12 +74,12 @@ typedef enum { * the const attribute of a string. */ static unsigned char root_ndata[] = { "" }; -static dns_name_t root = DNS_NAME_INITABSOLUTE(root_ndata, NULL); +static dns_name_t root = DNS_NAME_INITABSOLUTE(root_ndata); const dns_name_t *dns_rootname = &root; static unsigned char wild_ndata[] = { "\001*" }; -static dns_name_t const wild = DNS_NAME_INITNONABSOLUTE(wild_ndata, NULL); +static dns_name_t const wild = DNS_NAME_INITNONABSOLUTE(wild_ndata); const dns_name_t *dns_wildcardname = &wild; /* @@ -1952,11 +1952,11 @@ static unsigned char dr_dns_sd_udp_data[] = "\002dr\007_dns-sd\004_udp"; static unsigned char lb_dns_sd_udp_data[] = "\002lb\007_dns-sd\004_udp"; static dns_name_t const dns_sd[] = { - DNS_NAME_INITNONABSOLUTE(b_dns_sd_udp_data, NULL), - DNS_NAME_INITNONABSOLUTE(db_dns_sd_udp_data, NULL), - DNS_NAME_INITNONABSOLUTE(r_dns_sd_udp_data, NULL), - DNS_NAME_INITNONABSOLUTE(dr_dns_sd_udp_data, NULL), - DNS_NAME_INITNONABSOLUTE(lb_dns_sd_udp_data, NULL) + DNS_NAME_INITNONABSOLUTE(b_dns_sd_udp_data), + DNS_NAME_INITNONABSOLUTE(db_dns_sd_udp_data), + DNS_NAME_INITNONABSOLUTE(r_dns_sd_udp_data), + DNS_NAME_INITNONABSOLUTE(dr_dns_sd_udp_data), + DNS_NAME_INITNONABSOLUTE(lb_dns_sd_udp_data) }; bool @@ -1999,24 +1999,15 @@ static unsigned char inaddr31172[] = "\00231\003172\007IN-ADDR\004ARPA"; static unsigned char inaddr168192[] = "\003168\003192\007IN-ADDR\004ARPA"; static dns_name_t const rfc1918names[] = { - DNS_NAME_INITABSOLUTE(inaddr10, NULL), - DNS_NAME_INITABSOLUTE(inaddr16172, NULL), - DNS_NAME_INITABSOLUTE(inaddr17172, NULL), - DNS_NAME_INITABSOLUTE(inaddr18172, NULL), - DNS_NAME_INITABSOLUTE(inaddr19172, NULL), - DNS_NAME_INITABSOLUTE(inaddr20172, NULL), - DNS_NAME_INITABSOLUTE(inaddr21172, NULL), - DNS_NAME_INITABSOLUTE(inaddr22172, NULL), - DNS_NAME_INITABSOLUTE(inaddr23172, NULL), - DNS_NAME_INITABSOLUTE(inaddr24172, NULL), - DNS_NAME_INITABSOLUTE(inaddr25172, NULL), - DNS_NAME_INITABSOLUTE(inaddr26172, NULL), - DNS_NAME_INITABSOLUTE(inaddr27172, NULL), - DNS_NAME_INITABSOLUTE(inaddr28172, NULL), - DNS_NAME_INITABSOLUTE(inaddr29172, NULL), - DNS_NAME_INITABSOLUTE(inaddr30172, NULL), - DNS_NAME_INITABSOLUTE(inaddr31172, NULL), - DNS_NAME_INITABSOLUTE(inaddr168192, NULL) + DNS_NAME_INITABSOLUTE(inaddr10), DNS_NAME_INITABSOLUTE(inaddr16172), + DNS_NAME_INITABSOLUTE(inaddr17172), DNS_NAME_INITABSOLUTE(inaddr18172), + DNS_NAME_INITABSOLUTE(inaddr19172), DNS_NAME_INITABSOLUTE(inaddr20172), + DNS_NAME_INITABSOLUTE(inaddr21172), DNS_NAME_INITABSOLUTE(inaddr22172), + DNS_NAME_INITABSOLUTE(inaddr23172), DNS_NAME_INITABSOLUTE(inaddr24172), + DNS_NAME_INITABSOLUTE(inaddr25172), DNS_NAME_INITABSOLUTE(inaddr26172), + DNS_NAME_INITABSOLUTE(inaddr27172), DNS_NAME_INITABSOLUTE(inaddr28172), + DNS_NAME_INITABSOLUTE(inaddr29172), DNS_NAME_INITABSOLUTE(inaddr30172), + DNS_NAME_INITABSOLUTE(inaddr31172), DNS_NAME_INITABSOLUTE(inaddr168192) }; bool @@ -2031,14 +2022,11 @@ dns_name_isrfc1918(const dns_name_t *name) { return false; } -static unsigned char - __attribute((__unused__)) ulaoffsets[] = { 0, 2, 4, 8, 13 }; static unsigned char ip6fc[] = "\001c\001f\003ip6\004ARPA"; static unsigned char ip6fd[] = "\001d\001f\003ip6\004ARPA"; -static dns_name_t const ulanames[] = { DNS_NAME_INITABSOLUTE(ip6fc, ulaoffsets), - DNS_NAME_INITABSOLUTE(ip6fd, - ulaoffsets) }; +static dns_name_t const ulanames[] = { DNS_NAME_INITABSOLUTE(ip6fc), + DNS_NAME_INITABSOLUTE(ip6fd) }; bool dns_name_isula(const dns_name_t *name) { diff --git a/lib/dns/rdata.c b/lib/dns/rdata.c index 558ea00b034..748ae8ca0d0 100644 --- a/lib/dns/rdata.c +++ b/lib/dns/rdata.c @@ -344,8 +344,7 @@ generic_rdata_in_svcb_current(dns_rdata_in_svcb_t *, isc_region_t *); */ static unsigned char gc_msdcs_data[] = "\002gc\006_msdcs"; -static dns_name_t const gc_msdcs = DNS_NAME_INITNONABSOLUTE(gc_msdcs_data, - NULL); +static dns_name_t const gc_msdcs = DNS_NAME_INITNONABSOLUTE(gc_msdcs_data); /*% * convert presentation level address to network order binary form. diff --git a/lib/dns/rdata/generic/mx_15.c b/lib/dns/rdata/generic/mx_15.c index 6e4b37cca6d..50464d71b65 100644 --- a/lib/dns/rdata/generic/mx_15.c +++ b/lib/dns/rdata/generic/mx_15.c @@ -261,7 +261,7 @@ freestruct_mx(ARGS_FREESTRUCT) { } static unsigned char port25_ndata[] = "\003_25\004_tcp"; -static dns_name_t port25 = DNS_NAME_INITNONABSOLUTE(port25_ndata, NULL); +static dns_name_t port25 = DNS_NAME_INITNONABSOLUTE(port25_ndata); static isc_result_t additionaldata_mx(ARGS_ADDLDATA) { diff --git a/lib/dns/rdata/generic/ptr_12.c b/lib/dns/rdata/generic/ptr_12.c index 72af20fdaaa..b24178c9677 100644 --- a/lib/dns/rdata/generic/ptr_12.c +++ b/lib/dns/rdata/generic/ptr_12.c @@ -225,14 +225,13 @@ checkowner_ptr(ARGS_CHECKOWNER) { } static unsigned char ip6_arpa_data[] = "\003IP6\004ARPA"; -static const dns_name_t ip6_arpa = DNS_NAME_INITABSOLUTE(ip6_arpa_data, NULL); +static const dns_name_t ip6_arpa = DNS_NAME_INITABSOLUTE(ip6_arpa_data); static unsigned char ip6_int_data[] = "\003IP6\003INT"; -static const dns_name_t ip6_int = DNS_NAME_INITABSOLUTE(ip6_int_data, NULL); +static const dns_name_t ip6_int = DNS_NAME_INITABSOLUTE(ip6_int_data); static unsigned char in_addr_arpa_data[] = "\007IN-ADDR\004ARPA"; -static const dns_name_t in_addr_arpa = DNS_NAME_INITABSOLUTE(in_addr_arpa_data, - NULL); +static const dns_name_t in_addr_arpa = DNS_NAME_INITABSOLUTE(in_addr_arpa_data); static bool checknames_ptr(ARGS_CHECKNAMES) { diff --git a/lib/dns/resolver.c b/lib/dns/resolver.c index 6a25c4b2107..7712f790b74 100644 --- a/lib/dns/resolver.c +++ b/lib/dns/resolver.c @@ -632,7 +632,7 @@ dns_resolver_setfuzzing(void) { #endif /* ifdef ENABLE_AFL */ static unsigned char ip6_arpa_data[] = "\003IP6\004ARPA"; -static const dns_name_t ip6_arpa = DNS_NAME_INITABSOLUTE(ip6_arpa_data, NULL); +static const dns_name_t ip6_arpa = DNS_NAME_INITABSOLUTE(ip6_arpa_data); static void dns_resolver__destroy(dns_resolver_t *res); diff --git a/lib/dns/rootns.c b/lib/dns/rootns.c index 17442a10391..84c47fa0fb3 100644 --- a/lib/dns/rootns.c +++ b/lib/dns/rootns.c @@ -89,12 +89,12 @@ static struct upcoming { dns_rdatatype_t type; isc_stdtime_t time; } upcoming[] = { { - .name = DNS_NAME_INITABSOLUTE(b_data, NULL), + .name = DNS_NAME_INITABSOLUTE(b_data), .type = dns_rdatatype_a, .time = 1701086400 /* November 27 2023, 12:00 UTC */ }, { - .name = DNS_NAME_INITABSOLUTE(b_data, NULL), + .name = DNS_NAME_INITABSOLUTE(b_data), .type = dns_rdatatype_aaaa, .time = 1701086400 /* November 27 2023, 12:00 UTC */ } }; diff --git a/lib/dns/tsig.c b/lib/dns/tsig.c index 56591587a17..f365ae93ee9 100644 --- a/lib/dns/tsig.c +++ b/lib/dns/tsig.c @@ -51,35 +51,31 @@ static unsigned char hmacmd5_ndata[] = "\010hmac-md5\007sig-alg\003reg\003int"; -static dns_name_t const hmacmd5 = DNS_NAME_INITABSOLUTE(hmacmd5_ndata, NULL); +static dns_name_t const hmacmd5 = DNS_NAME_INITABSOLUTE(hmacmd5_ndata); const dns_name_t *dns_tsig_hmacmd5_name = &hmacmd5; static unsigned char gsstsig_ndata[] = "\010gss-tsig"; -static dns_name_t const gsstsig = DNS_NAME_INITABSOLUTE(gsstsig_ndata, NULL); +static dns_name_t const gsstsig = DNS_NAME_INITABSOLUTE(gsstsig_ndata); const dns_name_t *dns_tsig_gssapi_name = &gsstsig; static unsigned char hmacsha1_ndata[] = "\011hmac-sha1"; -static dns_name_t const hmacsha1 = DNS_NAME_INITABSOLUTE(hmacsha1_ndata, NULL); +static dns_name_t const hmacsha1 = DNS_NAME_INITABSOLUTE(hmacsha1_ndata); const dns_name_t *dns_tsig_hmacsha1_name = &hmacsha1; static unsigned char hmacsha224_ndata[] = "\013hmac-sha224"; -static dns_name_t const hmacsha224 = DNS_NAME_INITABSOLUTE(hmacsha224_ndata, - NULL); +static dns_name_t const hmacsha224 = DNS_NAME_INITABSOLUTE(hmacsha224_ndata); const dns_name_t *dns_tsig_hmacsha224_name = &hmacsha224; static unsigned char hmacsha256_ndata[] = "\013hmac-sha256"; -static dns_name_t const hmacsha256 = DNS_NAME_INITABSOLUTE(hmacsha256_ndata, - NULL); +static dns_name_t const hmacsha256 = DNS_NAME_INITABSOLUTE(hmacsha256_ndata); const dns_name_t *dns_tsig_hmacsha256_name = &hmacsha256; static unsigned char hmacsha384_ndata[] = "\013hmac-sha384"; -static dns_name_t const hmacsha384 = DNS_NAME_INITABSOLUTE(hmacsha384_ndata, - NULL); +static dns_name_t const hmacsha384 = DNS_NAME_INITABSOLUTE(hmacsha384_ndata); const dns_name_t *dns_tsig_hmacsha384_name = &hmacsha384; static unsigned char hmacsha512_ndata[] = "\013hmac-sha512"; -static dns_name_t const hmacsha512 = DNS_NAME_INITABSOLUTE(hmacsha512_ndata, - NULL); +static dns_name_t const hmacsha512 = DNS_NAME_INITABSOLUTE(hmacsha512_ndata); const dns_name_t *dns_tsig_hmacsha512_name = &hmacsha512; static const struct { diff --git a/lib/dns/zone.c b/lib/dns/zone.c index 99db1a18a75..119de7ed681 100644 --- a/lib/dns/zone.c +++ b/lib/dns/zone.c @@ -4859,7 +4859,7 @@ process_zone_setnsec3param(dns_zone_t *zone) { } static unsigned char er_ndata[] = "\001*\003_er"; -static dns_name_t er = DNS_NAME_INITNONABSOLUTE(er_ndata, NULL); +static dns_name_t er = DNS_NAME_INITNONABSOLUTE(er_ndata); static isc_result_t check_reportchannel(dns_zone_t *zone, dns_db_t *db) { diff --git a/lib/ns/query.c b/lib/ns/query.c index 60f11d43626..b9d33f11425 100644 --- a/lib/ns/query.c +++ b/lib/ns/query.c @@ -4424,33 +4424,24 @@ static unsigned char inaddr31172[] = "\00231\003172\007IN-ADDR\004ARPA"; static unsigned char inaddr168192[] = "\003168\003192\007IN-ADDR\004ARPA"; -static dns_name_t rfc1918names[] = { DNS_NAME_INITABSOLUTE(inaddr10, NULL), - DNS_NAME_INITABSOLUTE(inaddr16172, NULL), - DNS_NAME_INITABSOLUTE(inaddr17172, NULL), - DNS_NAME_INITABSOLUTE(inaddr18172, NULL), - DNS_NAME_INITABSOLUTE(inaddr19172, NULL), - DNS_NAME_INITABSOLUTE(inaddr20172, NULL), - DNS_NAME_INITABSOLUTE(inaddr21172, NULL), - DNS_NAME_INITABSOLUTE(inaddr22172, NULL), - DNS_NAME_INITABSOLUTE(inaddr23172, NULL), - DNS_NAME_INITABSOLUTE(inaddr24172, NULL), - DNS_NAME_INITABSOLUTE(inaddr25172, NULL), - DNS_NAME_INITABSOLUTE(inaddr26172, NULL), - DNS_NAME_INITABSOLUTE(inaddr27172, NULL), - DNS_NAME_INITABSOLUTE(inaddr28172, NULL), - DNS_NAME_INITABSOLUTE(inaddr29172, NULL), - DNS_NAME_INITABSOLUTE(inaddr30172, NULL), - DNS_NAME_INITABSOLUTE(inaddr31172, NULL), - DNS_NAME_INITABSOLUTE(inaddr168192, - NULL) }; +static dns_name_t rfc1918names[] = { + DNS_NAME_INITABSOLUTE(inaddr10), DNS_NAME_INITABSOLUTE(inaddr16172), + DNS_NAME_INITABSOLUTE(inaddr17172), DNS_NAME_INITABSOLUTE(inaddr18172), + DNS_NAME_INITABSOLUTE(inaddr19172), DNS_NAME_INITABSOLUTE(inaddr20172), + DNS_NAME_INITABSOLUTE(inaddr21172), DNS_NAME_INITABSOLUTE(inaddr22172), + DNS_NAME_INITABSOLUTE(inaddr23172), DNS_NAME_INITABSOLUTE(inaddr24172), + DNS_NAME_INITABSOLUTE(inaddr25172), DNS_NAME_INITABSOLUTE(inaddr26172), + DNS_NAME_INITABSOLUTE(inaddr27172), DNS_NAME_INITABSOLUTE(inaddr28172), + DNS_NAME_INITABSOLUTE(inaddr29172), DNS_NAME_INITABSOLUTE(inaddr30172), + DNS_NAME_INITABSOLUTE(inaddr31172), DNS_NAME_INITABSOLUTE(inaddr168192) +}; static unsigned char prisoner_data[] = "\010prisoner\004iana\003org"; static unsigned char hostmaster_data[] = "\012hostmaster\014root-" "servers\003org"; -static dns_name_t const prisoner = DNS_NAME_INITABSOLUTE(prisoner_data, NULL); -static dns_name_t const hostmaster = DNS_NAME_INITABSOLUTE(hostmaster_data, - NULL); +static dns_name_t const prisoner = DNS_NAME_INITABSOLUTE(prisoner_data); +static dns_name_t const hostmaster = DNS_NAME_INITABSOLUTE(hostmaster_data); static void warn_rfc1918(ns_client_t *client, dns_name_t *fname, dns_rdataset_t *rdataset) { diff --git a/tests/dns/diff_test.c b/tests/dns/diff_test.c index d7c4b24d06d..59d32f74a2c 100644 --- a/tests/dns/diff_test.c +++ b/tests/dns/diff_test.c @@ -32,19 +32,19 @@ #include unsigned char data_1[] = "\006name_1"; -dns_name_t name_1 = DNS_NAME_INITABSOLUTE(data_1, NULL); +dns_name_t name_1 = DNS_NAME_INITABSOLUTE(data_1); unsigned char data_2[] = "\006name_2"; -dns_name_t name_2 = DNS_NAME_INITABSOLUTE(data_2, NULL); +dns_name_t name_2 = DNS_NAME_INITABSOLUTE(data_2); unsigned char data_3[] = "\006name_3"; -dns_name_t name_3 = DNS_NAME_INITABSOLUTE(data_3, NULL); +dns_name_t name_3 = DNS_NAME_INITABSOLUTE(data_3); unsigned char data_dup[] = "\006name_1"; -dns_name_t name_dup = DNS_NAME_INITABSOLUTE(data_dup, NULL); +dns_name_t name_dup = DNS_NAME_INITABSOLUTE(data_dup); unsigned char data_nodup[] = "\006name_1"; -dns_name_t name_nodup = DNS_NAME_INITABSOLUTE(data_nodup, NULL); +dns_name_t name_nodup = DNS_NAME_INITABSOLUTE(data_nodup); static size_t count_elements(const dns_diff_t *diff) {