Commit 1418d22b2f for bind
commit 1418d22b2f4a03e2cce607b2f0fc896a84ca745d
Author: Alessio Podda <alessio@isc.org>
Date: Fri Sep 25 14:37:39 2026 +0200
Simplify towire_name
The trailing TOWIRE_NAME_REST and suffix len handling was redundant.
This change is not a pure cleanup since we are removing an
assertion on trailing length.
diff --git a/lib/dns/rdata/towire.c b/lib/dns/rdata/towire.c
index 5162a89121..6687a20e4f 100644
--- a/lib/dns/rdata/towire.c
+++ b/lib/dns/rdata/towire.c
@@ -46,11 +46,8 @@ mem_tobuffer(isc_buffer_t *target, void *base, unsigned int length) {
#define ARGS_TOWIRE \
dns_rdata_t *rdata, dns_compress_t *cctx, isc_buffer_t *target
-#define TOWIRE_NAME_REST ((unsigned int)-1)
-
static isc_result_t
-towire_name(ARGS_TOWIRE, bool compress, unsigned int prefix_len,
- unsigned int suffix_len) {
+towire_name(ARGS_TOWIRE, bool compress, unsigned int prefix_len) {
dns_name_t name;
isc_region_t region;
@@ -68,12 +65,7 @@ towire_name(ARGS_TOWIRE, bool compress, unsigned int prefix_len,
isc_region_consume(®ion, name_length(&name));
RETERR(dns_name_towire(&name, cctx, target));
- if (suffix_len == TOWIRE_NAME_REST) {
- suffix_len = region.length;
- } else {
- REQUIRE(region.length >= suffix_len);
- }
- return mem_tobuffer(target, region.base, suffix_len);
+ return mem_tobuffer(target, region.base, region.length);
}
static isc_result_t
@@ -304,105 +296,97 @@ dns_rdata_towire(dns_rdata_t *rdata, dns_compress_t *cctx,
switch (RDATA_KEY(rdata->rdclass, rdata->type)) {
case RDATA_KEY(dns_rdataclass_in, dns_rdatatype_ns):
- result = towire_name(rdata, cctx, target, true, 0, 0);
+ result = towire_name(rdata, cctx, target, true, 0);
break;
case RDATA_KEY(dns_rdataclass_in, dns_rdatatype_md):
- result = towire_name(rdata, cctx, target, true, 0, 0);
+ result = towire_name(rdata, cctx, target, true, 0);
break;
case RDATA_KEY(dns_rdataclass_in, dns_rdatatype_mf):
- result = towire_name(rdata, cctx, target, true, 0, 0);
+ result = towire_name(rdata, cctx, target, true, 0);
break;
case RDATA_KEY(dns_rdataclass_in, dns_rdatatype_cname):
- result = towire_name(rdata, cctx, target, true, 0, 0);
+ result = towire_name(rdata, cctx, target, true, 0);
break;
case RDATA_KEY(dns_rdataclass_in, dns_rdatatype_soa):
result = towire_soa(rdata, cctx, target);
break;
case RDATA_KEY(dns_rdataclass_in, dns_rdatatype_mb):
- result = towire_name(rdata, cctx, target, true, 0, 0);
+ result = towire_name(rdata, cctx, target, true, 0);
break;
case RDATA_KEY(dns_rdataclass_in, dns_rdatatype_mg):
- result = towire_name(rdata, cctx, target, true, 0, 0);
+ result = towire_name(rdata, cctx, target, true, 0);
break;
case RDATA_KEY(dns_rdataclass_in, dns_rdatatype_mr):
- result = towire_name(rdata, cctx, target, true, 0, 0);
+ result = towire_name(rdata, cctx, target, true, 0);
break;
case RDATA_KEY(dns_rdataclass_in, dns_rdatatype_ptr):
- result = towire_name(rdata, cctx, target, true, 0, 0);
+ result = towire_name(rdata, cctx, target, true, 0);
break;
case RDATA_KEY(dns_rdataclass_in, dns_rdatatype_minfo):
result = towire_minfo(rdata, cctx, target);
break;
case RDATA_KEY(dns_rdataclass_in, dns_rdatatype_mx):
- result = towire_name(rdata, cctx, target, true, 2, 0);
+ result = towire_name(rdata, cctx, target, true, 2);
break;
case RDATA_KEY(dns_rdataclass_in, dns_rdatatype_rp):
result = towire_rp(rdata, cctx, target);
break;
case RDATA_KEY(dns_rdataclass_in, dns_rdatatype_afsdb):
- result = towire_name(rdata, cctx, target, false, 2, 0);
+ result = towire_name(rdata, cctx, target, false, 2);
break;
case RDATA_KEY(dns_rdataclass_in, dns_rdatatype_rt):
- result = towire_name(rdata, cctx, target, false, 2, 0);
+ result = towire_name(rdata, cctx, target, false, 2);
break;
case RDATA_KEY(dns_rdataclass_in, dns_rdatatype_nsap_ptr):
- result = towire_name(rdata, cctx, target, false, 0, 0);
+ result = towire_name(rdata, cctx, target, false, 0);
break;
case RDATA_KEY(dns_rdataclass_in, dns_rdatatype_sig):
- result = towire_name(rdata, cctx, target, false, 18,
- TOWIRE_NAME_REST);
+ result = towire_name(rdata, cctx, target, false, 18);
break;
case RDATA_KEY(dns_rdataclass_in, dns_rdatatype_px):
result = towire_in_px(rdata, cctx, target);
break;
case RDATA_KEY(dns_rdataclass_in, dns_rdatatype_nxt):
- result = towire_name(rdata, cctx, target, false, 0,
- TOWIRE_NAME_REST);
+ result = towire_name(rdata, cctx, target, false, 0);
break;
case RDATA_KEY(dns_rdataclass_in, dns_rdatatype_srv):
- result = towire_name(rdata, cctx, target, false, 6, 0);
+ result = towire_name(rdata, cctx, target, false, 6);
break;
case RDATA_KEY(dns_rdataclass_in, dns_rdatatype_naptr):
result = towire_naptr(rdata, cctx, target);
break;
case RDATA_KEY(dns_rdataclass_in, dns_rdatatype_kx):
- result = towire_name(rdata, cctx, target, false, 2, 0);
+ result = towire_name(rdata, cctx, target, false, 2);
break;
case RDATA_KEY(dns_rdataclass_in, dns_rdatatype_a6):
result = towire_in_a6(rdata, cctx, target);
break;
case RDATA_KEY(dns_rdataclass_in, dns_rdatatype_dname):
- result = towire_name(rdata, cctx, target, false, 0, 0);
+ result = towire_name(rdata, cctx, target, false, 0);
break;
case RDATA_KEY(dns_rdataclass_in, dns_rdatatype_rrsig):
- result = towire_name(rdata, cctx, target, false, 18,
- TOWIRE_NAME_REST);
+ result = towire_name(rdata, cctx, target, false, 18);
break;
case RDATA_KEY(dns_rdataclass_in, dns_rdatatype_nsec):
- result = towire_name(rdata, cctx, target, false, 0,
- TOWIRE_NAME_REST);
+ result = towire_name(rdata, cctx, target, false, 0);
break;
case RDATA_KEY(dns_rdataclass_in, dns_rdatatype_talink):
result = towire_talink(rdata, cctx, target);
break;
case RDATA_KEY(dns_rdataclass_in, dns_rdatatype_svcb):
- result = towire_name(rdata, cctx, target, false, 2,
- TOWIRE_NAME_REST);
+ result = towire_name(rdata, cctx, target, false, 2);
break;
case RDATA_KEY(dns_rdataclass_in, dns_rdatatype_https):
- result = towire_name(rdata, cctx, target, false, 2,
- TOWIRE_NAME_REST);
+ result = towire_name(rdata, cctx, target, false, 2);
break;
case RDATA_KEY(dns_rdataclass_in, dns_rdatatype_dsync):
- result = towire_name(rdata, cctx, target, false, 5, 0);
+ result = towire_name(rdata, cctx, target, false, 5);
break;
case RDATA_KEY(dns_rdataclass_in, dns_rdatatype_tkey):
- result = towire_name(rdata, cctx, target, false, 0,
- TOWIRE_NAME_REST);
+ result = towire_name(rdata, cctx, target, false, 0);
break;
case RDATA_KEY(dns_rdataclass_any, dns_rdatatype_tsig):
- result = towire_name(rdata, cctx, target, false, 0,
- TOWIRE_NAME_REST);
+ result = towire_name(rdata, cctx, target, false, 0);
break;
default:
result = mem_tobuffer(target, rdata->data, rdata->length);