Commit 6b03908d19 for bind

commit 6b03908d19601ca458f8f5bbd250486a119da64b
Author: Evan Hunt <each@isc.org>
Date:   Wed Aug 5 12:41:22 2026 -0700

    use dns_name() to convert dns_fixedname to name

    Replace uses of dns_linkedname_name() with dns_name().

diff --git a/bin/dig/dighost.c b/bin/dig/dighost.c
index d8d80c2656..030a88e9a9 100644
--- a/bin/dig/dighost.c
+++ b/bin/dig/dighost.c
@@ -797,7 +797,7 @@ clone_lookup(dig_lookup_t *lookold, bool servers) {
 			sizeof(*looknew->ecs_addr));
 	}

-	dns_name_copy(&lookold->fdomain, dns_fixedname_name(&looknew->fdomain));
+	dns_name_copy(&lookold->fdomain, dns_name(&looknew->fdomain));

 	if (servers) {
 		if (lookold->tls_ctx_cache != NULL) {
@@ -1815,7 +1815,7 @@ followup_lookup(dns_message_t *msg, dig_query_t *query, dns_section_t section) {
 			unsigned int nlabels;
 			int order;

-			domain = dns_fixedname_name(&query->lookup->fdomain);
+			domain = dns_name(&query->lookup->fdomain);
 			namereln = dns_name_fullcompare(name, domain, &order,
 							&nlabels);
 			if (namereln == dns_namereln_equal) {
@@ -1872,7 +1872,7 @@ followup_lookup(dns_message_t *msg, dig_query_t *query, dns_section_t section) {
 				if (lookup->ns_search_only) {
 					lookup->recurse = false;
 				}
-				domain = dns_fixedname_name(&lookup->fdomain);
+				domain = dns_name(&lookup->fdomain);
 				dns_name_copy(name, domain);
 				lookup->edns = lookup->original_edns;
 			}
diff --git a/bin/dnssec/dnssec-signzone.c b/bin/dnssec/dnssec-signzone.c
index b353cdf117..db8199765d 100644
--- a/bin/dnssec/dnssec-signzone.c
+++ b/bin/dnssec/dnssec-signzone.c
@@ -430,7 +430,7 @@ expecttofindkey(dns_name_t *name) {

 	dns_fixedname_init(&fname);
 	result = dns_db_find(gdb, name, gversion, dns_rdatatype_dnskey, options,
-			     0, dns_fixedname_name(&fname), NULL, NULL);
+			     0, dns_name(&fname), NULL, NULL);
 	switch (result) {
 	case ISC_R_SUCCESS:
 	case DNS_R_NXDOMAIN:
@@ -1684,12 +1684,12 @@ assignwork(void *arg) {

 	UNLOCK(&namelock);

-	signname(node, false, dns_fixedname_name(&fname));
+	signname(node, false, dns_name(&fname));

 	/*%
 	 * Write a node to the output file, and restart the worker task.
 	 */
-	lock_and_dumpnode(dns_fixedname_name(&fname), node);
+	lock_and_dumpnode(dns_name(&fname), node);
 	dns_db_detachnode(&node);

 	isc_async_current(assignwork, NULL);
diff --git a/bin/named/config.c b/bin/named/config.c
index d1c822c15c..3380f12635 100644
--- a/bin/named/config.c
+++ b/bin/named/config.c
@@ -289,8 +289,7 @@ named_config_getname(isc_mem_t *mctx, const cfg_obj_t *obj,
 	isc_buffer_constinit(&b, objstr, strlen(objstr));
 	isc_buffer_add(&b, strlen(objstr));
 	dns_fixedname_init(&fname);
-	result = dns_name_fromtext(dns_fixedname_name(&fname), &b, dns_rootname,
-				   0);
+	result = dns_name_fromtext(dns_name(&fname), &b, dns_rootname, 0);
 	if (result != ISC_R_SUCCESS) {
 		isc_mem_put(mctx, *namep, sizeof(**namep));
 		return result;
diff --git a/bin/named/nzd.c b/bin/named/nzd.c
index 19ec6792d1..ec2c352406 100644
--- a/bin/named/nzd.c
+++ b/bin/named/nzd.c
@@ -33,7 +33,7 @@ nzd_setkey(MDB_val *key, dns_name_t *name, char *namebuf, size_t buflen) {
 	dns_fixedname_t fixed;

 	dns_fixedname_init(&fixed);
-	dns_name_downcase(name, dns_fixedname_name(&fixed));
+	dns_name_downcase(name, dns_name(&fixed));
 	dns_name_format(&fixed, namebuf, buflen);

 	key->mv_data = namebuf;
diff --git a/bin/named/server.c b/bin/named/server.c
index 73413a4e2e..8e53d71e85 100644
--- a/bin/named/server.c
+++ b/bin/named/server.c
@@ -1286,8 +1286,7 @@ configure_order(dns_order_t *order, const cfg_obj_t *ent) {
 	isc_buffer_constinit(&b, str, strlen(str));
 	isc_buffer_add(&b, strlen(str));
 	dns_fixedname_init(&fixed);
-	RETERR(dns_name_fromtext(dns_fixedname_name(&fixed), &b, dns_rootname,
-				 0));
+	RETERR(dns_name_fromtext(dns_name(&fixed), &b, dns_rootname, 0));

 	obj = cfg_tuple_get(ent, "ordering");
 	INSIST(cfg_obj_isstring(obj));
@@ -1314,7 +1313,7 @@ configure_order(dns_order_t *order, const cfg_obj_t *ent) {
 		dns_order_add(order, dns_rootname, rdtype, rdclass, mode);
 	}

-	dns_order_add(order, dns_fixedname_name(&fixed), rdtype, rdclass, mode);
+	dns_order_add(order, dns_name(&fixed), rdtype, rdclass, mode);

 	return ISC_R_SUCCESS;
 }
@@ -5403,7 +5402,7 @@ configure_view(dns_view_t *view, dns_viewlist_t *viewlist, cfg_obj_t *config,
 	obj = NULL;
 	result = named_config_get(maps, "nxdomain-redirect", &obj);
 	if (result == ISC_R_SUCCESS) {
-		dns_name_t *name = dns_fixedname_name(&view->redirectfixed);
+		dns_name_t *name = dns_name(&view->redirectfixed);
 		CHECK(dns_name_fromstring(name, cfg_obj_asstring(obj),
 					  dns_rootname, 0, NULL));
 		view->redirectzone = name;
@@ -5979,9 +5978,9 @@ configure_zone(const cfg_obj_t *config, const cfg_obj_t *zconfig,
 	isc_buffer_constinit(&buffer, zname, strlen(zname));
 	isc_buffer_add(&buffer, strlen(zname));
 	dns_fixedname_init(&fixorigin);
-	CHECK(dns_name_fromtext(dns_fixedname_name(&fixorigin), &buffer,
-				dns_rootname, 0));
-	origin = dns_fixedname_name(&fixorigin);
+	CHECK(dns_name_fromtext(dns_name(&fixorigin), &buffer, dns_rootname,
+				0));
+	origin = dns_name(&fixorigin);

 	CHECK(named_config_getclass(cfg_tuple_get(zconfig, "class"),
 				    view->rdclass, &zclass));
@@ -6604,8 +6603,8 @@ tat_send(void *arg) {
 	dns_name_t *keyname = NULL;
 	dns_name_t *tatname = NULL;

-	keyname = dns_fixedname_name(&tat->keyname);
-	tatname = dns_fixedname_name(&tat->tatname);
+	keyname = dns_name(&tat->keyname);
+	tatname = dns_name(&tat->tatname);

 	dns_name_format(tatname, namebuf, sizeof(namebuf));
 	isc_log_write(NAMED_LOGCATEGORY_GENERAL, NAMED_LOGMODULE_SERVER,
diff --git a/bin/named/zoneconf.c b/bin/named/zoneconf.c
index 4509a0137d..fec189da03 100644
--- a/bin/named/zoneconf.c
+++ b/bin/named/zoneconf.c
@@ -256,8 +256,8 @@ configure_zone_ssutable(const cfg_obj_t *zconfig, const cfg_obj_t *tconfig,
 		str = cfg_obj_asstring(identity);
 		isc_buffer_constinit(&b, str, strlen(str));
 		isc_buffer_add(&b, strlen(str));
-		result = dns_name_fromtext(dns_fixedname_name(&fident), &b,
-					   dns_rootname, 0);
+		result = dns_name_fromtext(dns_name(&fident), &b, dns_rootname,
+					   0);
 		if (result != ISC_R_SUCCESS) {
 			cfg_obj_log(identity, ISC_LOG_ERROR,
 				    "'%s' is not a valid name", str);
@@ -280,13 +280,13 @@ configure_zone_ssutable(const cfg_obj_t *zconfig, const cfg_obj_t *tconfig,
 		dns_fixedname_init(&fname);
 		if (usezone) {
 			dns_name_copy(dns_zone_getorigin(zone),
-				      dns_fixedname_name(&fname));
+				      dns_name(&fname));
 		} else {
 			str = cfg_obj_asstring(dname);
 			isc_buffer_constinit(&b, str, strlen(str));
 			isc_buffer_add(&b, strlen(str));
-			result = dns_name_fromtext(dns_fixedname_name(&fname),
-						   &b, dns_rootname, 0);
+			result = dns_name_fromtext(dns_name(&fname), &b,
+						   dns_rootname, 0);
 			if (result != ISC_R_SUCCESS) {
 				cfg_obj_log(identity, ISC_LOG_ERROR,
 					    "'%s' is not a valid name", str);
@@ -351,9 +351,9 @@ configure_zone_ssutable(const cfg_obj_t *zconfig, const cfg_obj_t *tconfig,
 		INSIST(i == n);

 		isc_buffer_putuint8(&dbuf, '\0');
-		dns_ssutable_addrule(table, grant, dns_fixedname_name(&fident),
-				     mtype, dns_fixedname_name(&fname), n,
-				     types, isc_buffer_base(&dbuf));
+		dns_ssutable_addrule(table, grant, dns_name(&fident), mtype,
+				     dns_name(&fname), n, types,
+				     isc_buffer_base(&dbuf));
 		if (types != NULL) {
 			isc_mem_cput(mctx, types, n, sizeof(*types));
 		}
diff --git a/bin/tests/system/dyndb/driver/syncptr.c b/bin/tests/system/dyndb/driver/syncptr.c
index 4921328bbe..5f5566b316 100644
--- a/bin/tests/system/dyndb/driver/syncptr.c
+++ b/bin/tests/system/dyndb/driver/syncptr.c
@@ -228,8 +228,8 @@ syncptr(sample_instance_t *inst, dns_name_t *name, dns_rdata_t *addr_rdata,
 	dns_fixedname_init(&syncptr->ptr_target_name);

 	/* Check if reverse zone is managed by this driver */
-	result = syncptr_find_zone(inst, addr_rdata,
-				   dns_fixedname_name(&ptr_name), &ptr_zone);
+	result = syncptr_find_zone(inst, addr_rdata, dns_name(&ptr_name),
+				   &ptr_zone);
 	if (result != ISC_R_SUCCESS) {
 		log_error_r("PTR record synchronization skipped: reverse zone "
 			    "is not managed by driver instance '%s'",
@@ -239,7 +239,7 @@ syncptr(sample_instance_t *inst, dns_name_t *name, dns_rdata_t *addr_rdata,

 	/* Reverse zone is managed by this driver, prepare PTR record */
 	dns_zone_attach(ptr_zone, &syncptr->zone);
-	dns_name_copy(name, dns_fixedname_name(&syncptr->ptr_target_name));
+	dns_name_copy(name, dns_name(&syncptr->ptr_target_name));
 	dns_name_clone(&syncptr->ptr_target_name, &ptr_struct.ptr);
 	dns_diff_init(inst->mctx, &syncptr->diff);
 	result = dns_rdata_fromstruct(&ptr_rdata, dns_rdataclass_in,
@@ -253,8 +253,8 @@ syncptr(sample_instance_t *inst, dns_name_t *name, dns_rdata_t *addr_rdata,
 	}

 	/* Create diff */
-	dns_difftuple_create(mctx, op, dns_fixedname_name(&ptr_name), ttl,
-			     &ptr_rdata, &tp);
+	dns_difftuple_create(mctx, op, dns_name(&ptr_name), ttl, &ptr_rdata,
+			     &tp);
 	dns_diff_append(&syncptr->diff, &tp);

 	/*
diff --git a/bin/tools/mdig.c b/bin/tools/mdig.c
index a7b1cdef8b..f566a289a9 100644
--- a/bin/tools/mdig.c
+++ b/bin/tools/mdig.c
@@ -546,8 +546,7 @@ sendquery(struct query *query) {
 	dns_fixedname_init(&queryname);
 	isc_buffer_init(&buf, query->textname, strlen(query->textname));
 	isc_buffer_add(&buf, strlen(query->textname));
-	result = dns_name_fromtext(dns_fixedname_name(&queryname), &buf,
-				   dns_rootname, 0);
+	result = dns_name_fromtext(dns_name(&queryname), &buf, dns_rootname, 0);
 	CHECKM("dns_name_fromtext", result);

 	dns_message_create(isc_g_mctx, NULL, NULL, DNS_MESSAGE_INTENTRENDER,
diff --git a/fuzz/dns_name_fromtext_target.c b/fuzz/dns_name_fromtext_target.c
index cdf6e47993..84bffbd45a 100644
--- a/fuzz/dns_name_fromtext_target.c
+++ b/fuzz/dns_name_fromtext_target.c
@@ -41,8 +41,7 @@ LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
 	isc_buffer_add(&buf, size);
 	isc_buffer_setactive(&buf, size);

-	result = dns_name_fromtext(dns_fixedname_name(&origin), &buf,
-				   dns_rootname, 0);
+	result = dns_name_fromtext(dns_name(&origin), &buf, dns_rootname, 0);
 	if (debug) {
 		fprintf(stderr, "dns_name_fromtext: %s\n",
 			isc_result_totext(result));
diff --git a/lib/dns/client.c b/lib/dns/client.c
index 8a90de7e9a..672344fce9 100644
--- a/lib/dns/client.c
+++ b/lib/dns/client.c
@@ -440,10 +440,10 @@ start_fetch(resctx_t *rctx) {
 	}

 	result = dns_resolver_createfetch(
-		rctx->view->resolver, dns_fixedname_name(&rctx->name),
-		rctx->type, NULL, NULL, NULL, NULL, 0, fopts, 0, NULL, rctx->qc,
-		NULL, rctx->client->loop, fetch_done, rctx, NULL,
-		rctx->rdataset, rctx->sigrdataset, &rctx->fetch);
+		rctx->view->resolver, dns_name(&rctx->name), rctx->type, NULL,
+		NULL, NULL, NULL, 0, fopts, 0, NULL, rctx->qc, NULL,
+		rctx->client->loop, fetch_done, rctx, NULL, rctx->rdataset,
+		rctx->sigrdataset, &rctx->fetch);

 	return result;
 }
@@ -451,7 +451,7 @@ start_fetch(resctx_t *rctx) {
 static isc_result_t
 view_find(resctx_t *rctx, dns_db_t **dbp, dns_name_t *foundname) {
 	isc_result_t result;
-	dns_name_t *name = dns_fixedname_name(&rctx->name);
+	dns_name_t *name = dns_name(&rctx->name);
 	dns_rdatatype_t type;

 	if (rctx->type == dns_rdatatype_rrsig) {
@@ -487,7 +487,7 @@ client_resfind(resctx_t *rctx, dns_fetchresponse_t *resp) {

 	mctx = rctx->view->mctx;

-	name = dns_fixedname_name(&rctx->name);
+	name = dns_name(&rctx->name);

 	do {
 		dns_name_t *fname = dns_fixedname_initname(&foundname);
@@ -539,7 +539,7 @@ client_resfind(resctx_t *rctx, dns_fetchresponse_t *resp) {
 		 * Get some resource for copying the
 		 * result.
 		 */
-		dns_name_t *aname = dns_fixedname_name(&rctx->name);
+		dns_name_t *aname = dns_name(&rctx->name);

 		ansname = isc_mem_get(mctx, sizeof(*ansname));
 		dns_linkedname_init(ansname);
@@ -908,7 +908,7 @@ startresolve(dns_client_t *client, const dns_name_t *name,
 	rctx->sigrdataset = sigrdataset;

 	dns_fixedname_init(&rctx->name);
-	dns_name_copy(name, dns_fixedname_name(&rctx->name));
+	dns_name_copy(name, dns_name(&rctx->name));

 	dns_view_attach(client->view, &rctx->view);

diff --git a/lib/dns/dlz.c b/lib/dns/dlz.c
index c758de7c4f..5adc697794 100644
--- a/lib/dns/dlz.c
+++ b/lib/dns/dlz.c
@@ -400,9 +400,9 @@ dns_dlz_writeablezone(dns_view_t *view, dns_dlzdb_t *dlzdb,
 	isc_buffer_constinit(&buffer, zone_name, strlen(zone_name));
 	isc_buffer_add(&buffer, strlen(zone_name));
 	dns_fixedname_init(&fixorigin);
-	CHECK(dns_name_fromtext(dns_fixedname_name(&fixorigin), &buffer,
-				dns_rootname, 0));
-	origin = dns_fixedname_name(&fixorigin);
+	CHECK(dns_name_fromtext(dns_name(&fixorigin), &buffer, dns_rootname,
+				0));
+	origin = dns_name(&fixorigin);

 	if (!dlzdb->search) {
 		isc_log_write(DNS_LOGCATEGORY_DATABASE, DNS_LOGMODULE_DLZ,
diff --git a/lib/dns/dnssec.c b/lib/dns/dnssec.c
index 70dbb06e8e..9f30ad8692 100644
--- a/lib/dns/dnssec.c
+++ b/lib/dns/dnssec.c
@@ -191,7 +191,7 @@ digest_sig(dst_context_t *ctx, bool downcase, dns_rdata_t *sigrdata,
 		dns_fixedname_init(&fname);

 		RUNTIME_CHECK(dns_name_downcase(dns_name(&rrsig->signer),
-						dns_fixedname_name(&fname)) ==
+						dns_name(&fname)) ==
 			      ISC_R_SUCCESS);
 		dns_name_toregion(&fname, &r);
 	} else {
@@ -243,8 +243,7 @@ dns_dnssec_sign(const dns_name_t *name, dns_rdataset_t *set, dst_key_t *key,
 	dns_name_init(dns_name(&sig.signer));
 	dns_fixedname_init(&fsigner);
 	RUNTIME_CHECK(dns_name_downcase(dst_key_name(key),
-					dns_fixedname_name(&fsigner)) ==
-		      ISC_R_SUCCESS);
+					dns_name(&fsigner)) == ISC_R_SUCCESS);
 	dns_name_clone(&fsigner, dns_name(&sig.signer));

 	sig.covered = set->type;
@@ -289,7 +288,7 @@ dns_dnssec_sign(const dns_name_t *name, dns_rdataset_t *set, dst_key_t *key,
 	}

 	dns_fixedname_init(&fnewname);
-	RUNTIME_CHECK(dns_name_downcase(name, dns_fixedname_name(&fnewname)) ==
+	RUNTIME_CHECK(dns_name_downcase(name, dns_name(&fnewname)) ==
 		      ISC_R_SUCCESS);
 	dns_name_toregion(&fnewname, &r);

@@ -516,11 +515,11 @@ again:
 	 * If the name is an expanded wildcard, use the wildcard name.
 	 */
 	dns_fixedname_init(&fnewname);
-	RUNTIME_CHECK(dns_name_downcase(name, dns_fixedname_name(&fnewname)) ==
+	RUNTIME_CHECK(dns_name_downcase(name, dns_name(&fnewname)) ==
 		      ISC_R_SUCCESS);
 	if (labels > siglabels) {
-		dns_name_split(dns_fixedname_name(&fnewname), siglabels, NULL,
-			       dns_fixedname_name(&fnewname));
+		dns_name_split(dns_name(&fnewname), siglabels, NULL,
+			       dns_name(&fnewname));
 	}

 	dns_name_toregion(&fnewname, &r);
@@ -624,10 +623,10 @@ cleanup:

 	if (result == ISC_R_SUCCESS && labels > siglabels) {
 		if (wild != NULL) {
-			RUNTIME_CHECK(dns_name_concatenate(
-					      dns_wildcardname,
-					      dns_fixedname_name(&fnewname),
-					      wild) == ISC_R_SUCCESS);
+			RUNTIME_CHECK(dns_name_concatenate(dns_wildcardname,
+							   dns_name(&fnewname),
+							   wild) ==
+				      ISC_R_SUCCESS);
 		}
 		if (wildsigner != NULL) {
 			dns_name_copy(dns_name(&sig.signer), wildsigner);
diff --git a/lib/dns/dst_api.c b/lib/dns/dst_api.c
index cb2ee1fd30..d497be8be5 100644
--- a/lib/dns/dst_api.c
+++ b/lib/dns/dst_api.c
@@ -1485,8 +1485,7 @@ dst_key_read_public(const char *filename, int type, isc_mem_t *mctx,
 	dns_fixedname_init(&name);
 	isc_buffer_init(&b, DST_AS_STR(token), strlen(DST_AS_STR(token)));
 	isc_buffer_add(&b, strlen(DST_AS_STR(token)));
-	CHECK(dns_name_fromtext(dns_fixedname_name(&name), &b, dns_rootname,
-				0));
+	CHECK(dns_name_fromtext(dns_name(&name), &b, dns_rootname, 0));

 	/* Read the next word: either TTL, class, or 'KEY' */
 	NEXTTOKEN(lex, opt, &token);
@@ -1533,8 +1532,7 @@ dst_key_read_public(const char *filename, int type, isc_mem_t *mctx,
 	CHECK(dns_rdata_fromtext(&rdata, rdclass, keytype, lex, NULL, false,
 				 mctx, &b, NULL));

-	CHECK(dst_key_fromdns(dns_fixedname_name(&name), rdclass, &b, mctx,
-			      keyp));
+	CHECK(dst_key_fromdns(dns_name(&name), rdclass, &b, mctx, keyp));

 	dst_key_setttl(*keyp, ttl);

diff --git a/lib/dns/journal.c b/lib/dns/journal.c
index 7eea2d13a6..ce2ce4a09c 100644
--- a/lib/dns/journal.c
+++ b/lib/dns/journal.c
@@ -2246,12 +2246,11 @@ diff_namespace(dns_db_t *dba, dns_dbversion_t *dbvera, dns_db_t *dbb,
 	for (;;) {
 		for (i = 0; i < 2; i++) {
 			if (!have[i] && itresult[i] == ISC_R_SUCCESS) {
-				CHECK(get_name_diff(
-					db[i], ver[i], 0, dbit[i],
-					dns_fixedname_name(&fixname[i]),
-					i == 0 ? DNS_DIFFOP_ADD
-					       : DNS_DIFFOP_DEL,
-					&diff[i]));
+				CHECK(get_name_diff(db[i], ver[i], 0, dbit[i],
+						    dns_name(&fixname[i]),
+						    i == 0 ? DNS_DIFFOP_ADD
+							   : DNS_DIFFOP_DEL,
+						    &diff[i]));
 				itresult[i] = dns_dbiterator_next(dbit[i]);
 				have[i] = true;
 			}
diff --git a/lib/dns/master.c b/lib/dns/master.c
index 25b6b9c4c1..88a3e26f30 100644
--- a/lib/dns/master.c
+++ b/lib/dns/master.c
@@ -454,7 +454,7 @@ incctx_create(isc_mem_t *mctx, dns_name_t *origin, dns_incctx_t **ictxp) {
 	}

 	ictx->origin_in_use = 0;
-	ictx->origin = dns_fixedname_name(&ictx->fixed[ictx->origin_in_use]);
+	ictx->origin = dns_name(&ictx->fixed[ictx->origin_in_use]);
 	ictx->in_use[ictx->origin_in_use] = true;
 	dns_name_toregion(origin, &r);
 	dns_name_fromregion(ictx->origin, &r);
@@ -2138,8 +2138,8 @@ pushfile(const char *master_file, dns_name_t *origin, dns_loadctx_t *lctx) {
 	/* Set current domain. */
 	if (ictx->glue != NULL || ictx->current != NULL) {
 		newctx->current_in_use = find_free_name(newctx);
-		newctx->current = dns_fixedname_name(
-			&newctx->fixed[newctx->current_in_use]);
+		newctx->current =
+			dns_name(&newctx->fixed[newctx->current_in_use]);
 		newctx->in_use[newctx->current_in_use] = true;
 		dns_name_toregion(
 			(ictx->glue != NULL) ? ictx->glue : ictx->current, &r);
diff --git a/lib/dns/masterdump.c b/lib/dns/masterdump.c
index c16f082bfc..aee73dd4b4 100644
--- a/lib/dns/masterdump.c
+++ b/lib/dns/masterdump.c
@@ -1679,7 +1679,7 @@ dumptostream(dns_dumpctx_t *dctx) {
 		}
 		if (result == DNS_R_NEWORIGIN) {
 			dns_name_t *origin =
-				dns_fixedname_name(&dctx->tctx.origin_fixname);
+				dns_name(&dctx->tctx.origin_fixname);
 			result = dns_dbiterator_origin(dctx->dbiter, origin);
 			RUNTIME_CHECK(result == ISC_R_SUCCESS);
 			if ((dctx->tctx.style.flags & DNS_STYLEFLAG_REL_DATA) !=
diff --git a/lib/dns/nsec3.c b/lib/dns/nsec3.c
index 11ce22a0a6..7cdcd6e68f 100644
--- a/lib/dns/nsec3.c
+++ b/lib/dns/nsec3.c
@@ -1244,8 +1244,8 @@ deleteit(dns_db_t *db, dns_dbversion_t *ver, const dns_name_t *name,

 	result = dns_db_find(db, name, ver, dns_rdatatype_any,
 			     DNS_DBFIND_GLUEOK | DNS_DBFIND_NOWILD,
-			     (isc_stdtime_t)0, dns_fixedname_name(&foundname),
-			     NULL, NULL);
+			     (isc_stdtime_t)0, dns_name(&foundname), NULL,
+			     NULL);
 	if (result == DNS_R_EMPTYNAME || result == ISC_R_SUCCESS ||
 	    result == DNS_R_ZONECUT)
 	{
diff --git a/lib/dns/order.c b/lib/dns/order.c
index da7bc18397..e4f886baad 100644
--- a/lib/dns/order.c
+++ b/lib/dns/order.c
@@ -80,7 +80,7 @@ dns_order_add(dns_order_t *order, const dns_name_t *name,
 	};

 	dns_fixedname_init(&ent->name);
-	dns_name_copy(name, dns_fixedname_name(&ent->name));
+	dns_name_copy(name, dns_name(&ent->name));

 	ISC_LIST_INITANDAPPEND(order->ents, ent, link);
 }
@@ -107,7 +107,7 @@ dns_order_find(dns_order_t *order, const dns_name_t *name,
 		{
 			continue;
 		}
-		if (match(name, dns_fixedname_name(&ent->name))) {
+		if (match(name, dns_name(&ent->name))) {
 			return ent->mode;
 		}
 	}
diff --git a/lib/dns/peer.c b/lib/dns/peer.c
index c1744fee6c..da340fd72c 100644
--- a/lib/dns/peer.c
+++ b/lib/dns/peer.c
@@ -485,8 +485,7 @@ dns_peer_setkeybycharp(dns_peer_t *peer, const char *keyval) {
 	dns_fixedname_init(&fname);
 	isc_buffer_constinit(&b, keyval, strlen(keyval));
 	isc_buffer_add(&b, strlen(keyval));
-	RETERR(dns_name_fromtext(dns_fixedname_name(&fname), &b, dns_rootname,
-				 0));
+	RETERR(dns_name_fromtext(dns_name(&fname), &b, dns_rootname, 0));

 	name = isc_mem_get(peer->mem, sizeof(dns_name_t));

diff --git a/lib/dns/qpzone.c b/lib/dns/qpzone.c
index cd3028af13..d6310420fe 100644
--- a/lib/dns/qpzone.c
+++ b/lib/dns/qpzone.c
@@ -2802,7 +2802,7 @@ qpzone_setup_delegation(qpz_search_t *search, dns_name_t *foundname,
 	 * we have trouble.
 	 */
 	if (foundname != NULL && search->copy_name) {
-		zcname = dns_fixedname_name(&search->zonecut_name);
+		zcname = dns_name(&search->zonecut_name);
 		dns_name_copy(zcname, foundname);
 	}
 	if (rdataset != NULL) {
@@ -3482,7 +3482,7 @@ qpzone_check_zonecut(qpznode_t *node, void *arg DNS__DB_FLARG) {
 			 * This may or may not be the best match.  In case it
 			 * is, we need to remember the node name.
 			 */
-			zcname = dns_fixedname_name(&search->zonecut_name);
+			zcname = dns_name(&search->zonecut_name);
 			dns_name_copy(&node->name, zcname);
 			search->copy_name = true;
 		}
diff --git a/lib/dns/rdata/generic/mx_15.c b/lib/dns/rdata/generic/mx_15.c
index 47bbc971b5..2a7b069b25 100644
--- a/lib/dns/rdata/generic/mx_15.c
+++ b/lib/dns/rdata/generic/mx_15.c
@@ -269,13 +269,12 @@ additionaldata_mx(ARGS_ADDLDATA) {
 	RETERR((add)(arg, &name, dns_rdatatype_a, NULL DNS__DB_FILELINE));

 	dns_fixedname_init(&fixed);
-	result = dns_name_concatenate(&port25, &name,
-				      dns_fixedname_name(&fixed));
+	result = dns_name_concatenate(&port25, &name, dns_name(&fixed));
 	if (result != ISC_R_SUCCESS) {
 		return ISC_R_SUCCESS;
 	}

-	return (add)(arg, dns_fixedname_name(&fixed), dns_rdatatype_tlsa,
+	return (add)(arg, dns_name(&fixed), dns_rdatatype_tlsa,
 		     NULL DNS__DB_FILELINE);
 }

diff --git a/lib/dns/rdata/in_1/srv_33.c b/lib/dns/rdata/in_1/srv_33.c
index 95be2bd19d..4332768d08 100644
--- a/lib/dns/rdata/in_1/srv_33.c
+++ b/lib/dns/rdata/in_1/srv_33.c
@@ -319,19 +319,18 @@ additionaldata_in_srv(ARGS_ADDLDATA) {

 	dns_fixedname_init(&fixed);
 	snprintf(buf, sizeof(buf), "_%u._tcp", port);
-	result = dns_name_fromstring(dns_fixedname_name(&fixed), buf, NULL, 0,
-				     NULL);
+	result = dns_name_fromstring(dns_name(&fixed), buf, NULL, 0, NULL);
 	if (result != ISC_R_SUCCESS) {
 		return ISC_R_SUCCESS;
 	}

-	result = dns_name_concatenate(dns_fixedname_name(&fixed), &name,
-				      dns_fixedname_name(&fixed));
+	result = dns_name_concatenate(dns_name(&fixed), &name,
+				      dns_name(&fixed));
 	if (result != ISC_R_SUCCESS) {
 		return ISC_R_SUCCESS;
 	}

-	return (add)(arg, dns_fixedname_name(&fixed), dns_rdatatype_tlsa,
+	return (add)(arg, dns_name(&fixed), dns_rdatatype_tlsa,
 		     NULL DNS__DB_FILELINE);
 }

diff --git a/lib/dns/resolver.c b/lib/dns/resolver.c
index 76cc9bf03e..3e86873722 100644
--- a/lib/dns/resolver.c
+++ b/lib/dns/resolver.c
@@ -5960,9 +5960,8 @@ answer_response:
 	    gettrust(val->rdataset) == dns_trust_secure &&
 	    gettrust(val->sigrdataset) == dns_trust_secure)
 	{
-		cache_rrset(fctx, now, dns_fixedname_name(&val->wild),
-			    val->rdataset, val->sigrdataset, NULL, NULL, NULL,
-			    true);
+		cache_rrset(fctx, now, dns_name(&val->wild), val->rdataset,
+			    val->sigrdataset, NULL, NULL, NULL, true);
 	}

 	/*
diff --git a/lib/dns/rriterator.c b/lib/dns/rriterator.c
index ef7d350542..48de8369d7 100644
--- a/lib/dns/rriterator.c
+++ b/lib/dns/rriterator.c
@@ -71,9 +71,8 @@ dns_rriterator_first(dns_rriterator_t *it) {
 	 * Walk the tree to find the first node with data.
 	 */
 	while (it->result == ISC_R_SUCCESS) {
-		it->result = dns_dbiterator_current(
-			it->dbit, &it->node,
-			dns_fixedname_name(&it->fixedname));
+		it->result = dns_dbiterator_current(it->dbit, &it->node,
+						    dns_name(&it->fixedname));
 		if (it->result != ISC_R_SUCCESS) {
 			return it->result;
 		}
@@ -96,7 +95,7 @@ dns_rriterator_first(dns_rriterator_t *it) {
 		}
 		dns_rdatasetiter_current(it->rdatasetit, &it->rdataset);
 		dns_rdataset_getownercase(&it->rdataset,
-					  dns_fixedname_name(&it->fixedname));
+					  dns_name(&it->fixedname));
 		it->result = dns_rdataset_first(&it->rdataset);
 		return it->result;
 	}
@@ -123,9 +122,8 @@ dns_rriterator_nextrrset(dns_rriterator_t *it) {
 		if (it->result != ISC_R_SUCCESS) {
 			return it->result;
 		}
-		it->result = dns_dbiterator_current(
-			it->dbit, &it->node,
-			dns_fixedname_name(&it->fixedname));
+		it->result = dns_dbiterator_current(it->dbit, &it->node,
+						    dns_name(&it->fixedname));
 		if (it->result != ISC_R_SUCCESS) {
 			return it->result;
 		}
@@ -140,8 +138,7 @@ dns_rriterator_nextrrset(dns_rriterator_t *it) {
 		return it->result;
 	}
 	dns_rdatasetiter_current(it->rdatasetit, &it->rdataset);
-	dns_rdataset_getownercase(&it->rdataset,
-				  dns_fixedname_name(&it->fixedname));
+	dns_rdataset_getownercase(&it->rdataset, dns_name(&it->fixedname));
 	it->result = dns_rdataset_first(&it->rdataset);
 	return it->result;
 }
@@ -192,7 +189,7 @@ dns_rriterator_current(dns_rriterator_t *it, dns_name_t **name, uint32_t *ttl,
 	REQUIRE(rdataset == NULL || *rdataset == NULL);
 	REQUIRE(rdata == NULL || *rdata == NULL);

-	*name = dns_fixedname_name(&it->fixedname);
+	*name = dns_name(&it->fixedname);
 	*ttl = it->rdataset.ttl;

 	dns_rdata_reset(&it->rdata);
diff --git a/lib/dns/rrl.c b/lib/dns/rrl.c
index 665ee4e208..a2074eea7d 100644
--- a/lib/dns/rrl.c
+++ b/lib/dns/rrl.c
@@ -930,12 +930,11 @@ make_log_buf(dns_rrl_t *rrl, dns_rrl_entry_t *e, const char *str1,
 				e->log_qname = qbuf->index;
 				qbuf->e = e;
 				dns_fixedname_init(&qbuf->qname);
-				dns_name_copy(qname,
-					      dns_fixedname_name(&qbuf->qname));
+				dns_name_copy(qname, dns_name(&qbuf->qname));
 			}
 		}
 		if (qbuf != NULL) {
-			qname = dns_fixedname_name(&qbuf->qname);
+			qname = dns_name(&qbuf->qname);
 		}
 		if (qname != NULL) {
 			ADD_LOG_CSTR(&lb, " for ");
diff --git a/lib/dns/sdlz.c b/lib/dns/sdlz.c
index 92e59e554a..e1c2b78eda 100644
--- a/lib/dns/sdlz.c
+++ b/lib/dns/sdlz.c
@@ -555,7 +555,7 @@ getnodedata(dns_db_t *db, const dns_name_t *name, bool create,
 				wild = dns_wildcardname;
 			} else {
 				dns_name_t *fname;
-				fname = dns_fixedname_name(&fixed);
+				fname = dns_name(&fixed);
 				dns_name_getlabelsequence(
 					name, i + 1, dlabels - i - 1, fname);
 				result = dns_name_concatenate(dns_wildcardname,
diff --git a/lib/dns/update.c b/lib/dns/update.c
index 73eb66d19f..96617ede86 100644
--- a/lib/dns/update.c
+++ b/lib/dns/update.c
@@ -377,8 +377,7 @@ rrset_visible(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *name,

 	dns_fixedname_init(&fixed);
 	result = dns_db_find(db, name, ver, type, DNS_DBFIND_NOWILD,
-			     (isc_stdtime_t)0, dns_fixedname_name(&fixed), NULL,
-			     NULL);
+			     (isc_stdtime_t)0, dns_name(&fixed), NULL, NULL);
 	switch (result) {
 	case ISC_R_SUCCESS:
 		*visible = true;
@@ -661,8 +660,8 @@ is_active(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *name, bool *flag,
 	dns_fixedname_init(&foundname);
 	result = dns_db_find(db, name, ver, dns_rdatatype_any,
 			     DNS_DBFIND_GLUEOK | DNS_DBFIND_NOWILD,
-			     (isc_stdtime_t)0, dns_fixedname_name(&foundname),
-			     NULL, NULL);
+			     (isc_stdtime_t)0, dns_name(&foundname), NULL,
+			     NULL);
 	if (result == ISC_R_SUCCESS || result == DNS_R_EMPTYNAME) {
 		*flag = true;
 		*cut = false;
@@ -677,9 +676,8 @@ is_active(dns_db_t *db, dns_dbversion_t *ver, dns_name_t *name, bool *flag,
 			 * is a DS RRset.
 			 */
 			if (dns_db_find(db, name, ver, dns_rdatatype_ds, 0,
-					(isc_stdtime_t)0,
-					dns_fixedname_name(&foundname), NULL,
-					NULL) == DNS_R_NXRRSET)
+					(isc_stdtime_t)0, dns_name(&foundname),
+					NULL, NULL) == DNS_R_NXRRSET)
 			{
 				*unsecure = true;
 			} else {
diff --git a/lib/dns/validator.c b/lib/dns/validator.c
index 6c592a4702..4e1cd0df51 100644
--- a/lib/dns/validator.c
+++ b/lib/dns/validator.c
@@ -451,8 +451,8 @@ trynsec3:
 	 * Iterate over the ncache entry.
 	 */
 	dns_fixedname_init(&fixed);
-	dns_name_downcase(name, dns_fixedname_name(&fixed));
-	name = dns_fixedname_name(&fixed);
+	dns_name_downcase(name, dns_name(&fixed));
+	name = dns_name(&fixed);
 	unsigned int nlabels = dns_name_countlabels(name);

 	DNS_RDATASET_FOREACH(rdataset) {
@@ -996,7 +996,7 @@ validator_callback_ds(void *arg) {
 	case ISC_R_SUCCESS: {
 		bool have_dsset = !NEGATIVE(&val->frdataset) &&
 				  val->frdataset.type == dns_rdatatype_ds;
-		dns_name_t *name = dns_fixedname_name(&val->fname);
+		dns_name_t *name = dns_name(&val->fname);

 		validator_log(val, ISC_LOG_DEBUG(3), "%s with trust %s",
 			      have_dsset ? "dsset" : "ds non-existence",
@@ -1143,7 +1143,7 @@ validator_callback_nsec(void *arg) {
 	switch (result) {
 	case ISC_R_SUCCESS: {
 		dns_linkedname_t **proofs = val->proofs;
-		dns_name_t *wild = dns_fixedname_name(&val->wild);
+		dns_name_t *wild = dns_name(&val->wild);

 		if (rdataset->type == dns_rdatatype_nsec &&
 		    rdataset->trust == dns_trust_secure &&
@@ -1175,7 +1175,7 @@ validator_callback_nsec(void *arg) {
 							&val->nseczone));
 				}

-				closest = dns_fixedname_name(&val->closest);
+				closest = dns_name(&val->closest);
 				clabels = dns_name_countlabels(closest);
 				/*
 				 * If we are validating a wildcard response
@@ -1891,7 +1891,7 @@ again:
 	}
 	if (result == DNS_R_FROMWILDCARD) {
 		if (!dns_name_equal(val->name, wild)) {
-			dns_name_t *closest = dns_fixedname_name(&val->closest);
+			dns_name_t *closest = dns_name(&val->closest);

 			/*
 			 * Compute the closest encloser in case we need it
@@ -1901,8 +1901,7 @@ again:
 			dns_name_getlabelsequence(
 				closest, 1, dns_name_countlabels(closest) - 1,
 				closest);
-			dns_name_copy(wildsigner,
-				      dns_fixedname_name(&val->wildsigner));
+			dns_name_copy(wildsigner, dns_name(&val->wildsigner));
 			val->attributes |= VALATTR_NEEDNOQNAME;
 		}
 		result = ISC_R_SUCCESS;
@@ -2994,7 +2993,7 @@ checkwildcard(dns_validator_t *val, dns_rdatatype_t type,
 	      dns_name_t *zonename) {
 	dns_linkedname_t *name;
 	dns_linkedname_t tname_wl = DNS_LINKEDNAME_INITEMPTY;
-	dns_name_t *wild = dns_fixedname_name(&val->wild);
+	dns_name_t *wild = dns_name(&val->wild);
 	isc_result_t result;
 	bool exists, data;
 	char namebuf[DNS_NAME_FORMATSIZE];
@@ -3212,7 +3211,7 @@ findnsec3proofs(dns_validator_t *val) {
 	 * have a valid closest encloser.  Otherwise we could still be looking
 	 * at proofs from the parent zone.
 	 */
-	dns_name_t *wildsigner = dns_fixedname_name(&val->wildsigner);
+	dns_name_t *wildsigner = dns_name(&val->wildsigner);
 	if (!dns_name_empty(closest) &&
 	    dns_name_countlabels(nearest) ==
 		    dns_name_countlabels(closest) + 1 &&
@@ -3222,7 +3221,7 @@ findnsec3proofs(dns_validator_t *val) {
 	{
 		val->attributes |= VALATTR_FOUNDCLOSEST;
 		result = dns_name_concatenate(dns_wildcardname, closest,
-					      dns_fixedname_name(&val->wild));
+					      dns_name(&val->wild));
 		RUNTIME_CHECK(result == ISC_R_SUCCESS);
 	} else {
 		val->attributes &= ~VALATTR_FOUNDNOQNAME;
@@ -3980,7 +3979,7 @@ proveunsecure(dns_validator_t *val, bool have_ds, bool have_dnskey,
 		    (have_ds && val->frdataset.trust >= dns_trust_secure))
 		{
 			dns_rdataset_t *dssetp = NULL, *keysetp = NULL;
-			dns_name_t *fname = dns_fixedname_name(&val->fname);
+			dns_name_t *fname = dns_name(&val->fname);
 			if (have_dnskey) {
 				dssetp = &val->dsrdataset;
 				keysetp = &val->frdataset;
diff --git a/lib/dns/view.c b/lib/dns/view.c
index ea43c5d87a..5d0f1735db 100644
--- a/lib/dns/view.c
+++ b/lib/dns/view.c
@@ -899,8 +899,7 @@ dns_view_simplefind(dns_view_t *view, const dns_name_t *name,

 	dns_fixedname_init(&foundname);
 	result = dns_view_find(view, name, type, now, options, false, NULL,
-			       dns_fixedname_name(&foundname), rdataset,
-			       sigrdataset);
+			       dns_name(&foundname), rdataset, sigrdataset);
 	if (result == DNS_R_NXDOMAIN) {
 		/*
 		 * The rdataset and sigrdataset of the relevant NSEC record
diff --git a/lib/dns/zone.c b/lib/dns/zone.c
index 3e2ccd9a53..5685e329ac 100644
--- a/lib/dns/zone.c
+++ b/lib/dns/zone.c
@@ -3169,7 +3169,7 @@ dns__zone_set_resigntime(dns_zone_t *zone) {
 		return;
 	}

-	result = dns_db_getsigningtime(db, &resign, dns_fixedname_name(&fixed),
+	result = dns_db_getsigningtime(db, &resign, dns_name(&fixed),
 				       &typepair);
 	if (result != ISC_R_SUCCESS) {
 		isc_time_settoepoch(&zone->resigntime);
@@ -3732,8 +3732,8 @@ addifmissing(dns_keytable_t *keytable, dns_keynode_t *keynode,
 	 */
 	dns_fixedname_init(&fname);
 	result = dns_db_find(db, keyname, ver, dns_rdatatype_keydata,
-			     DNS_DBFIND_NOWILD, 0, dns_fixedname_name(&fname),
-			     NULL, NULL);
+			     DNS_DBFIND_NOWILD, 0, dns_name(&fname), NULL,
+			     NULL);
 	if (result == ISC_R_SUCCESS) {
 		return;
 	}
@@ -8816,7 +8816,7 @@ minimal_update(dns_zonefetch_t *fetch, dns_dbversion_t *ver, dns_diff_t *diff) {

 	now = isc_stdtime_now();
 	zone = fetch->zone;
-	name = dns_fixedname_name(&fetch->name);
+	name = dns_name(&fetch->name);
 	kfetch = &fetch->fetchdata.keyfetch;

 	DNS_RDATASET_FOREACH(&kfetch->keydataset) {
@@ -8873,7 +8873,7 @@ revocable(dns_zonefetch_t *fetch, dns_rdata_keydata_t *keydata) {
 	REQUIRE(fetch->fetchtype == ZONEFETCHTYPE_KEY);
 	REQUIRE(dns_rdataset_isassociated(&fetch->sigset));

-	keyname = dns_fixedname_name(&fetch->name);
+	keyname = dns_name(&fetch->name);
 	mctx = fetch->zone->view->mctx;

 	/* Generate a key from keydata */
@@ -8930,7 +8930,7 @@ static isc_result_t
 keyfetch_start(dns_zonefetch_t *fetch) {
 	REQUIRE(fetch->fetchtype == ZONEFETCHTYPE_KEY);

-	fetch->qname = dns_fixedname_name(&fetch->name);
+	fetch->qname = dns_name(&fetch->name);
 	fetch->qtype = dns_rdatatype_dnskey;

 	return ISC_R_SUCCESS;
@@ -9034,7 +9034,7 @@ keyfetch_done(dns_zonefetch_t *fetch, isc_result_t eresult) {
 	kfetch = &fetch->fetchdata.keyfetch;
 	zone = fetch->zone;
 	mctx = fetch->mctx;
-	keyname = dns_fixedname_name(&fetch->name);
+	keyname = dns_name(&fetch->name);
 	dnskeys = &fetch->rrset;
 	dnskeysigs = &fetch->sigset;

@@ -18053,8 +18053,7 @@ dsyncfetch_start(dns_zonefetch_t *fetch) {

 	nlabels = dns_name_countlabels(&dsyncfetch->pname);
 	dns_name_init(&prefix);
-	dns_name_split(dns_fixedname_name(&fetch->name), nlabels, &prefix,
-		       NULL);
+	dns_name_split(dns_name(&fetch->name), nlabels, &prefix, NULL);

 	result = dns_name_concatenate(&prefix, &_dsync, dsyncname);
 	if (result != ISC_R_SUCCESS) {
@@ -18154,7 +18153,7 @@ dsyncfetch_done(dns_zonefetch_t *fetch, isc_result_t eresult) {
 	dsyncfetch = &fetch->fetchdata.dsyncfetch;
 	zone = fetch->zone;
 	rrset = &fetch->rrset;
-	dsyncname = dns_fixedname_name(&dsyncfetch->dsyncname);
+	dsyncname = dns_name(&dsyncfetch->dsyncname);

 	zone->fetchcount[ZONEFETCHTYPE_DSYNC]--;

diff --git a/lib/dns/zonefetch.c b/lib/dns/zonefetch.c
index 475ee19ffc..c522ad1aaa 100644
--- a/lib/dns/zonefetch.c
+++ b/lib/dns/zonefetch.c
@@ -96,7 +96,7 @@ cancel:
 	 */
 	dns__zone_lock(zone);

-	dns_name_t *zname = dns_fixedname_name(&fetch->name);
+	dns_name_t *zname = dns_name(&fetch->name);
 	isc_mem_t *mctx = dns_zone_getmctx(zone);
 	bool free_needed;

@@ -136,7 +136,7 @@ dns_zonefetch_done(void *arg) {

 	mctx = fetch->mctx;
 	zone = fetch->zone;
-	zname = dns_fixedname_name(&fetch->name);
+	zname = dns_name(&fetch->name);
 	rrset = &fetch->rrset;
 	sigset = &fetch->sigset;
 	view = dns_zone_getview(zone);
diff --git a/lib/dns/zoneproperties.c b/lib/dns/zoneproperties.c
index 19b1c12fe4..292adbf28f 100644
--- a/lib/dns/zoneproperties.c
+++ b/lib/dns/zoneproperties.c
@@ -1999,7 +1999,7 @@ dns_zone_getrad(dns_zone_t *zone, dns_name_t *name) {
 	rcu_read_lock();
 	dns_rad_t *rad = rcu_dereference(zone->rad);
 	if (rad != NULL) {
-		dns_name_t *inner = dns_fixedname_name(&rad->fname);
+		dns_name_t *inner = dns_name(&rad->fname);
 		dns_name_copy(inner, name);
 		result = ISC_R_SUCCESS;
 	}
@@ -2021,7 +2021,7 @@ dns_zone_setrad(dns_zone_t *zone, dns_name_t *name) {
 		dns_fixedname_init(&new_rad->fname);

 		isc_mem_attach(zone->mctx, &new_rad->mctx);
-		dns_name_copy(name, dns_fixedname_name(&new_rad->fname));
+		dns_name_copy(name, dns_name(&new_rad->fname));
 	}
 	dns_rad_t *xchg_rad = rcu_xchg_pointer(&zone->rad, new_rad);

diff --git a/lib/dns/zoneverify.c b/lib/dns/zoneverify.c
index 6969cd2b3e..2ea7175cef 100644
--- a/lib/dns/zoneverify.c
+++ b/lib/dns/zoneverify.c
@@ -1720,11 +1720,11 @@ verify_nodes(vctx_t *vctx, isc_result_t *vresult) {
 			continue;
 		}
 		if (is_delegation(vctx, name, node, NULL)) {
-			zonecut = dns_fixedname_name(&fzonecut);
+			zonecut = dns_name(&fzonecut);
 			dns_name_copy(name, zonecut);
 			isdelegation = true;
 		} else if (has_dname(vctx, node)) {
-			zonecut = dns_fixedname_name(&fzonecut);
+			zonecut = dns_name(&fzonecut);
 			dns_name_copy(name, zonecut);
 		}
 		nextnode = NULL;
@@ -1800,7 +1800,7 @@ verify_nodes(vctx_t *vctx, isc_result_t *vresult) {
 				goto done;
 			}
 		} else {
-			prevname = dns_fixedname_name(&fprevname);
+			prevname = dns_name(&fprevname);
 		}
 		dns_name_copy(name, prevname);
 		if (*vresult == ISC_R_SUCCESS) {
diff --git a/lib/isccfg/aclconf.c b/lib/isccfg/aclconf.c
index 006af491c4..5010a017b5 100644
--- a/lib/isccfg/aclconf.c
+++ b/lib/isccfg/aclconf.c
@@ -153,8 +153,7 @@ convert_keyname(const cfg_obj_t *keyobj, isc_mem_t *mctx, dns_name_t *dnsname) {
 	isc_buffer_constinit(&buf, txtname, keylen);
 	isc_buffer_add(&buf, keylen);
 	dns_fixedname_init(&fixname);
-	result = dns_name_fromtext(dns_fixedname_name(&fixname), &buf,
-				   dns_rootname, 0);
+	result = dns_name_fromtext(dns_name(&fixname), &buf, dns_rootname, 0);
 	if (result != ISC_R_SUCCESS) {
 		cfg_obj_log(keyobj, ISC_LOG_WARNING,
 			    "key name '%s' is not a valid domain name",
diff --git a/lib/isccfg/check.c b/lib/isccfg/check.c
index e2084ca9f3..490799d774 100644
--- a/lib/isccfg/check.c
+++ b/lib/isccfg/check.c
@@ -144,8 +144,8 @@ check_orderent(const cfg_obj_t *ent) {
 		str = cfg_obj_asstring(obj);
 		isc_buffer_constinit(&b, str, strlen(str));
 		isc_buffer_add(&b, strlen(str));
-		tresult = dns_name_fromtext(dns_fixedname_name(&fixed), &b,
-					    dns_rootname, 0);
+		tresult = dns_name_fromtext(dns_name(&fixed), &b, dns_rootname,
+					    0);
 		if (tresult != ISC_R_SUCCESS) {
 			cfg_obj_log(obj, ISC_LOG_ERROR,
 				    "rrset-order: invalid name '%s'", str);
@@ -964,8 +964,8 @@ check_name(const char *str) {
 	dns_fixedname_t fixed;

 	dns_fixedname_init(&fixed);
-	return dns_name_fromstring(dns_fixedname_name(&fixed), str,
-				   dns_rootname, 0, NULL);
+	return dns_name_fromstring(dns_name(&fixed), str, dns_rootname, 0,
+				   NULL);
 }

 static bool
@@ -3459,8 +3459,8 @@ isccfg_check_zoneconf(const cfg_obj_t *zconfig, const cfg_obj_t *voptions,
 	dns_fixedname_init(&fixedname);
 	isc_buffer_constinit(&b, znamestr, strlen(znamestr));
 	isc_buffer_add(&b, strlen(znamestr));
-	tresult = dns_name_fromtext(dns_fixedname_name(&fixedname), &b,
-				    dns_rootname, DNS_NAME_DOWNCASE);
+	tresult = dns_name_fromtext(dns_name(&fixedname), &b, dns_rootname,
+				    DNS_NAME_DOWNCASE);
 	if (tresult != ISC_R_SUCCESS) {
 		cfg_obj_log(zconfig, ISC_LOG_ERROR,
 			    "zone '%s': is not a valid name", znamestr);
@@ -3473,7 +3473,7 @@ isccfg_check_zoneconf(const cfg_obj_t *zconfig, const cfg_obj_t *voptions,
 		size_t len = 0;
 		int n;

-		zname = dns_fixedname_name(&fixedname);
+		zname = dns_name(&fixedname);
 		dns_name_format(zname, namebuf, sizeof(namebuf));
 		dns_rdataclass_format(zclass, classbuf, sizeof(classbuf));

diff --git a/lib/ns/query.c b/lib/ns/query.c
index 935695224f..37478342aa 100644
--- a/lib/ns/query.c
+++ b/lib/ns/query.c
@@ -3982,7 +3982,7 @@ rpz_rewrite(ns_client_t *client, dns_rdatatype_t qtype, isc_result_t qresult,
 	}

 	dns_fixedname_init(&nsnamef);
-	dns_name_clone(client->query.qname, dns_fixedname_name(&nsnamef));
+	dns_name_clone(client->query.qname, dns_name(&nsnamef));
 	options = client->query.dboptions | DNS_DBFIND_GLUEOK;
 	while (st->r.label > st->popt.min_ns_labels) {
 		bool was_glue = false;
@@ -3992,7 +3992,7 @@ rpz_rewrite(ns_client_t *client, dns_rdatatype_t qtype, isc_result_t qresult,
 		if (st->r.label == dns_name_countlabels(client->query.qname)) {
 			nsname = dns_name(client->query.qname);
 		} else {
-			nsname = dns_fixedname_name(&nsnamef);
+			nsname = dns_name(&nsnamef);
 			dns_name_split(dns_name(client->query.qname),
 				       st->r.label, NULL, nsname);
 		}
@@ -6933,12 +6933,11 @@ query_rpzcname(query_ctx_t *qctx, dns_name_t *cname) {
 	if (labels > 2 && dns_name_iswildcard(cname)) {
 		dns_fixedname_init(&prefix);
 		dns_name_split(dns_name(client->query.qname), 1,
-			       dns_fixedname_name(&prefix), NULL);
+			       dns_name(&prefix), NULL);
 		dns_fixedname_init(&suffix);
-		dns_name_split(cname, labels - 1, NULL,
-			       dns_fixedname_name(&suffix));
-		result = dns_name_concatenate(dns_fixedname_name(&prefix),
-					      dns_fixedname_name(&suffix),
+		dns_name_split(cname, labels - 1, NULL, dns_name(&suffix));
+		result = dns_name_concatenate(dns_name(&prefix),
+					      dns_name(&suffix),
 					      dns_name(qctx->fname));
 		if (result == DNS_R_NAMETOOLONG) {
 			client->message->rcode = dns_rcode_yxdomain;
@@ -8138,7 +8137,7 @@ query_prepare_delegation_response(query_ctx_t *qctx) {
 	 * it here in case we need it.
 	 */
 	dns_fixedname_init(&qctx->dsname);
-	dns_name_copy(qctx->fname, dns_fixedname_name(&qctx->dsname));
+	dns_name_copy(qctx->fname, dns_name(&qctx->dsname));

 	/*
 	 * This is the best answer.
@@ -8457,7 +8456,7 @@ query_addds(query_ctx_t *qctx) {
 	rdataset = ns_client_newrdataset(client);
 	sigrdataset = ns_client_newrdataset(client);

-	name = dns_fixedname_name(&qctx->dsname);
+	name = dns_name(&qctx->dsname);
 	lookupname = qctx_has_foundname(qctx) ? qctx_get_foundname(qctx) : name;
 	foundname = dns_fixedname_initname(&foundfixed);
 	dns_clientinfomethods_init(&cm, ns_client_sourceip);
@@ -8528,7 +8527,7 @@ addnsec3:
 	dns_rdataset_cleanup(sigrdataset);
 	query_findclosestnsec3(name, qctx->db, qctx->version, client, rdataset,
 			       sigrdataset, dns_name(fname), true,
-			       dns_fixedname_name(&fixed));
+			       dns_name(&fixed));
 	if (!dns_rdataset_isassociated(rdataset)) {
 		goto cleanup;
 	}
@@ -8542,17 +8541,16 @@ addnsec3:
 		count = dns_name_countlabels(&fixed) + 1;
 		dns_name_getlabelsequence(name,
 					  dns_name_countlabels(name) - count,
-					  count, dns_fixedname_name(&fixed));
+					  count, dns_name(&fixed));
 		fixfname(client, &fname, &dbuf, &b);
 		fixrdataset(client, &rdataset);
 		fixrdataset(client, &sigrdataset);
 		if (fname == NULL || rdataset == NULL || sigrdataset == NULL) {
 			goto cleanup;
 		}
-		query_findclosestnsec3(dns_fixedname_name(&fixed), qctx->db,
-				       qctx->version, client, rdataset,
-				       sigrdataset, dns_name(fname), false,
-				       NULL);
+		query_findclosestnsec3(
+			dns_name(&fixed), qctx->db, qctx->version, client,
+			rdataset, sigrdataset, dns_name(fname), false, NULL);
 		if (!dns_rdataset_isassociated(rdataset)) {
 			goto cleanup;
 		}
diff --git a/tests/bench/compress.c b/tests/bench/compress.c
index 14ac709098..bde741fdf8 100644
--- a/tests/bench/compress.c
+++ b/tests/bench/compress.c
@@ -76,7 +76,7 @@ main(void) {
 		dns_compress_init(&cctx, isc_g_mctx, 0);

 		for (unsigned int i = 0; i < count; i++) {
-			dns_name_t *name = dns_fixedname_name(&fixedname[i]);
+			dns_name_t *name = dns_name(&fixedname[i]);
 			result = dns_name_towire(name, &cctx, &buf);
 			if (result == ISC_R_NOSPACE) {
 				dns_compress_invalidate(&cctx);
diff --git a/tests/bench/load-names.c b/tests/bench/load-names.c
index 4126bc328c..27abbdbf1b 100644
--- a/tests/bench/load-names.c
+++ b/tests/bench/load-names.c
@@ -260,7 +260,7 @@ new_ht(isc_mem_t *mem) {

 static isc_result_t
 add_ht(void *ht, size_t count) {
-	dns_name_t *name = dns_fixedname_name(&item[count].fixed);
+	dns_name_t *name = dns_name(&item[count].fixed);
 	isc_result_t result = isc_ht_add(ht, name->ndata, name->length,
 					 &item[count]);
 	return result;
@@ -268,7 +268,7 @@ add_ht(void *ht, size_t count) {

 static isc_result_t
 get_ht(void *ht, size_t count, void **pval) {
-	dns_name_t *name = dns_fixedname_name(&item[count].fixed);
+	dns_name_t *name = dns_name(&item[count].fixed);
 	isc_result_t result = isc_ht_find(ht, name->ndata, name->length, pval);
 	return result;
 }
diff --git a/tests/bench/qplookups.c b/tests/bench/qplookups.c
index b1e19c0952..1cd02c33dd 100644
--- a/tests/bench/qplookups.c
+++ b/tests/bench/qplookups.c
@@ -228,7 +228,7 @@ main(int argc, char **argv) {
 	n = i;
 	start = isc_time_monotonic();
 	for (i = 0; i < n; i++) {
-		name = dns_fixedname_name(&items[i]);
+		name = dns_name(&items[i]);
 		dns_qp_getname(qp, name, DNS_DBNAMESPACE_NORMAL, NULL, NULL);
 	}
 	stop = isc_time_monotonic();
@@ -238,7 +238,7 @@ main(int argc, char **argv) {

 	start = isc_time_monotonic();
 	for (i = 0; i < n; i++) {
-		name = dns_fixedname_name(&items[i]);
+		name = dns_name(&items[i]);
 		dns_qp_lookup(qp, name, DNS_DBNAMESPACE_NORMAL, NULL, NULL,
 			      NULL, NULL);
 	}
@@ -259,7 +259,7 @@ main(int argc, char **argv) {
 		dns_fixedname_t sf;
 		dns_name_t *search = dns_fixedname_initname(&sf);

-		name = dns_fixedname_name(&items[i]);
+		name = dns_name(&items[i]);
 		dns_name_copy(name, search);
 		if (search->ndata[1] != 0) {
 			++search->ndata[1];
diff --git a/tests/dns/db_test.c b/tests/dns/db_test.c
index 5465f21518..f897ea73b7 100644
--- a/tests/dns/db_test.c
+++ b/tests/dns/db_test.c
@@ -305,7 +305,7 @@ ISC_LOOP_TEST_IMPL(version) {
 	/* Open current version for reading */
 	dns_db_currentversion(db, &ver);
 	dns_test_namefromstring("b.test.test.", &fname);
-	name = dns_fixedname_name(&fname);
+	name = dns_name(&fname);
 	foundname = dns_fixedname_initname(&ffound);
 	dns_rdataset_init(&rdataset);
 	result = dns_db_find(db, name, ver, dns_rdatatype_a, 0, 0, foundname,
@@ -317,7 +317,7 @@ ISC_LOOP_TEST_IMPL(version) {
 	/* Open new version for writing */
 	dns_db_currentversion(db, &ver);
 	dns_test_namefromstring("b.test.test.", &fname);
-	name = dns_fixedname_name(&fname);
+	name = dns_name(&fname);
 	foundname = dns_fixedname_initname(&ffound);
 	dns_rdataset_init(&rdataset);
 	result = dns_db_find(db, name, ver, dns_rdatatype_a, 0, 0, foundname,
diff --git a/tests/dns/keytable_test.c b/tests/dns/keytable_test.c
index 3df08e9980..1d2e6feffe 100644
--- a/tests/dns/keytable_test.c
+++ b/tests/dns/keytable_test.c
@@ -166,7 +166,7 @@ create_tables(void) {
 	unsigned char digest[DNS_DS_BUFFERSIZE];
 	dns_rdata_ds_t ds;
 	dns_fixedname_t fn;
-	dns_name_t *keyname = dns_fixedname_name(&fn);
+	dns_name_t *keyname = dns_name(&fn);
 	isc_stdtime_t now = isc_stdtime_now();

 	assert_int_equal(dns_test_makeview("view", false, false, &view),
@@ -223,7 +223,7 @@ ISC_LOOP_TEST_IMPL(add) {
 	unsigned char digest[DNS_DS_BUFFERSIZE];
 	dns_rdata_ds_t ds;
 	dns_fixedname_t fn;
-	dns_name_t *keyname = dns_fixedname_name(&fn);
+	dns_name_t *keyname = dns_name(&fn);

 	UNUSED(arg);

@@ -419,7 +419,7 @@ ISC_LOOP_TEST_IMPL(deletekey) {
 	dns_rdata_dnskey_t dnskey;
 	unsigned char keydata[4096];
 	dns_fixedname_t fn;
-	dns_name_t *keyname = dns_fixedname_name(&fn);
+	dns_name_t *keyname = dns_name(&fn);

 	UNUSED(arg);

@@ -594,7 +594,7 @@ ISC_LOOP_TEST_IMPL(nta) {
 	isc_result_t result;
 	bool covered;
 	dns_fixedname_t fn;
-	dns_name_t *keyname = dns_fixedname_name(&fn);
+	dns_name_t *keyname = dns_name(&fn);
 	unsigned char digest[DNS_DS_BUFFERSIZE];
 	dns_rdata_ds_t ds;
 	dns_view_t *myview = NULL;
diff --git a/tests/dns/nametree_test.c b/tests/dns/nametree_test.c
index 291ff75e75..56b94c6a8e 100644
--- a/tests/dns/nametree_test.c
+++ b/tests/dns/nametree_test.c
@@ -54,7 +54,7 @@ dns_nametree_t *counttree = NULL;
 static int
 setup(void **state ISC_ATTR_UNUSED) {
 	dns_fixedname_t fn;
-	dns_name_t *name = dns_fixedname_name(&fn);
+	dns_name_t *name = dns_name(&fn);

 	dns_nametree_create(isc_g_mctx, DNS_NAMETREE_BOOL, "bool test",
 			    &booltree);
@@ -99,7 +99,7 @@ teardown(void **state ISC_ATTR_UNUSED) {
 ISC_RUN_TEST_IMPL(add_bool) {
 	dns_ntnode_t *node = NULL;
 	dns_fixedname_t fn;
-	dns_name_t *name = dns_fixedname_name(&fn);
+	dns_name_t *name = dns_name(&fn);

 	/*
 	 * Getting the node for example.com should succeed.
@@ -130,7 +130,7 @@ ISC_RUN_TEST_IMPL(add_bool) {
 ISC_RUN_TEST_IMPL(add_bits) {
 	dns_ntnode_t *node = NULL;
 	dns_fixedname_t fn;
-	dns_name_t *name = dns_fixedname_name(&fn);
+	dns_name_t *name = dns_name(&fn);

 	/*
 	 * Getting the node for example.com should succeed.
@@ -162,7 +162,7 @@ ISC_RUN_TEST_IMPL(add_bits) {

 ISC_RUN_TEST_IMPL(add_count) {
 	dns_fixedname_t fn;
-	dns_name_t *name = dns_fixedname_name(&fn);
+	dns_name_t *name = dns_name(&fn);

 	/* add a counter node five times */
 	dns_test_namefromstring("example.com.", &fn);
@@ -220,7 +220,7 @@ ISC_RUN_TEST_IMPL(covered_bool) {

 ISC_RUN_TEST_IMPL(covered_bits) {
 	dns_fixedname_t fn;
-	dns_name_t *name = dns_fixedname_name(&fn);
+	dns_name_t *name = dns_name(&fn);

 	/* check existing bit values */
 	dns_test_namefromstring("example.com.", &fn);
@@ -277,7 +277,7 @@ ISC_RUN_TEST_IMPL(covered_bits) {

 ISC_RUN_TEST_IMPL(delete) {
 	dns_fixedname_t fn;
-	dns_name_t *name = dns_fixedname_name(&fn);
+	dns_name_t *name = dns_name(&fn);

 	/* name doesn't match */
 	dns_test_namefromstring("example.org.", &fn);
@@ -304,7 +304,7 @@ ISC_RUN_TEST_IMPL(delete) {
 ISC_RUN_TEST_IMPL(find) {
 	dns_ntnode_t *node = NULL;
 	dns_fixedname_t fn;
-	dns_name_t *name = dns_fixedname_name(&fn);
+	dns_name_t *name = dns_name(&fn);

 	/*
 	 * dns_nametree_find() requires exact name match.  It matches node
diff --git a/tests/dns/qp_test.c b/tests/dns/qp_test.c
index 76cd588a32..a4263c84ca 100644
--- a/tests/dns/qp_test.c
+++ b/tests/dns/qp_test.c
@@ -249,7 +249,7 @@ ISC_RUN_TEST_IMPL(qpkey_sort) {
 	for (size_t i = 0; i < ARRAY_SIZE(testcases); i++) {
 		dns_test_namefromstring(testcases[i].namestr,
 					&testcases[i].fixed);
-		testcases[i].name = dns_fixedname_name(&testcases[i].fixed);
+		testcases[i].name = dns_name(&testcases[i].fixed);
 		testcases[i].len = dns_qpkey_fromname(testcases[i].key,
 						      testcases[i].name,
 						      testcases[i].space);
@@ -446,7 +446,7 @@ qpkey_fromstring(dns_qpkey_t key, void *uctx, void *pval, uint32_t ival) {

 	UNUSED(uctx);
 	dns_test_namefromstring(pval, &fixed);
-	return dns_qpkey_fromname(key, dns_fixedname_name(&fixed), space);
+	return dns_qpkey_fromname(key, dns_name(&fixed), space);
 }

 const dns_qpmethods_t string_methods = {
diff --git a/tests/dns/qpdb_test.c b/tests/dns/qpdb_test.c
index 09259c3847..188c004f10 100644
--- a/tests/dns/qpdb_test.c
+++ b/tests/dns/qpdb_test.c
@@ -83,7 +83,7 @@ overmempurge_addrdataset(dns_db_t *db, isc_stdtime_t now, int idx,
 		snprintf(namebuf, sizeof(namebuf), "%d.example.com.", idx);
 	}
 	dns_test_namefromstring(namebuf, &fname);
-	name = dns_fixedname_name(&fname);
+	name = dns_name(&fname);

 	result = dns_db_findnode(db, name, true, &node);
 	assert_int_equal(result, ISC_R_SUCCESS);
@@ -181,7 +181,7 @@ servestale_setup(isc_mem_t *mctx, dns_fixedname_t *fname, dns_name_t **namep) {
 	dns_db_setservestalettl(db, 86400);

 	dns_test_namefromstring("example.com.", fname);
-	*namep = dns_fixedname_name(fname);
+	*namep = dns_name(fname);

 	return db;
 }
@@ -601,7 +601,7 @@ ISC_LOOP_TEST_IMPL(allrdatasets_expiredok_skips_deleted_header) {
 	assert_int_equal(result, ISC_R_SUCCESS);

 	dns_test_namefromstring("deleted.example.com.", &fname);
-	name = dns_fixedname_name(&fname);
+	name = dns_name(&fname);

 	servestale_addrdataset(db, name, now, dns_rdatatype_a, "10.53.0.1",
 			       3600, dns_trust_answer);