dns_fixedname_init(&hashname);
dns_rdataset_init(&rdataset);
- dns_name_downcase(name, name, NULL);
+ dns_name_downcase(name, name);
result = dns_nsec3_hashname(&hashname, hash, &hash_len, name, gorigin,
dns_hash_sha1, iterations, salt, salt_len);
check_result(result, "addnsec3: dns_nsec3_hashname()");
fatal("iterating through the database failed: %s",
isc_result_totext(result));
}
- dns_name_downcase(name, name, NULL);
+ dns_name_downcase(name, name);
hashlist_add_dns_name(hashlist, name, hashalg, iterations, salt,
salt_len, false);
dns_db_detachnode(gdb, &node);
* node for another <name,nextname> span so we don't add
* it here. Empty labels on nextname are within the span.
*/
- dns_name_downcase(nextname, nextname, NULL);
+ dns_name_downcase(nextname, nextname);
dns_name_fullcompare(name, nextname, &order, &nlabels);
addnowildcardhash(hashlist, name, hashalg, iterations, salt,
salt_len);
dns_fixedname_t fixed;
dns_fixedname_init(&fixed);
- dns_name_downcase(name, dns_fixedname_name(&fixed), NULL);
+ dns_name_downcase(name, dns_fixedname_name(&fixed));
dns_name_format(dns_fixedname_name(&fixed), namebuf, buflen);
key->mv_data = namebuf;
result = dns_name_fromtext(name, &buffer, dns_rootname, 0, NULL);
check_result(result, "dns_name_fromtext() failed");
- dns_name_downcase(name, name, NULL);
+ dns_name_downcase(name, name);
length = isc_iterated_hash(hash, hash_alg, iterations, salt,
salt_length, name->ndata, name->length);
if (length == 0) {
dns_fixedname_init(&fname);
RUNTIME_CHECK(dns_name_downcase(&rrsig->signer,
- dns_fixedname_name(&fname),
- NULL) == ISC_R_SUCCESS);
+ dns_fixedname_name(&fname)) ==
+ ISC_R_SUCCESS);
dns_name_toregion(dns_fixedname_name(&fname), &r);
} else {
dns_name_toregion(&rrsig->signer, &r);
dns_name_init(&sig.signer);
dns_fixedname_init(&fsigner);
RUNTIME_CHECK(dns_name_downcase(dst_key_name(key),
- dns_fixedname_name(&fsigner),
- NULL) == ISC_R_SUCCESS);
+ dns_fixedname_name(&fsigner)) ==
+ ISC_R_SUCCESS);
dns_name_clone(dns_fixedname_name(&fsigner), &sig.signer);
sig.covered = set->type;
}
dns_fixedname_init(&fnewname);
- RUNTIME_CHECK(dns_name_downcase(name, dns_fixedname_name(&fnewname),
- NULL) == ISC_R_SUCCESS);
+ RUNTIME_CHECK(dns_name_downcase(name, dns_fixedname_name(&fnewname)) ==
+ ISC_R_SUCCESS);
dns_name_toregion(dns_fixedname_name(&fnewname), &r);
/*
*/
dns_fixedname_init(&fnewname);
labels = dns_name_countlabels(name) - 1;
- RUNTIME_CHECK(dns_name_downcase(name, dns_fixedname_name(&fnewname),
- NULL) == ISC_R_SUCCESS);
+ RUNTIME_CHECK(dns_name_downcase(name, dns_fixedname_name(&fnewname)) ==
+ ISC_R_SUCCESS);
if (labels - sig.labels > 0) {
dns_name_split(dns_fixedname_name(&fnewname), sig.labels + 1,
NULL, dns_fixedname_name(&fnewname));
}
name = dns_fixedname_initname(&fname);
- (void)dns_name_downcase(owner, name, NULL);
+ (void)dns_name_downcase(owner, name);
md = isc_md_new();
*/
isc_result_t
-dns_name_downcase(const dns_name_t *source, dns_name_t *name,
- isc_buffer_t *target);
+dns_name_downcase(const dns_name_t *source, dns_name_t *name);
/*%<
* Downcase 'source'.
*
*\li If source == name, then
* 'source' must not be read-only
*
- *\li Otherwise,
- * 'target' is a valid buffer or 'target' is NULL and
- * 'name' has a dedicated buffer.
+ *\li 'name' has a dedicated buffer.
*
* Returns:
*\li #ISC_R_SUCCESS
}
isc_result_t
-dns_name_downcase(const dns_name_t *source, dns_name_t *name,
- isc_buffer_t *target) {
- unsigned char *ndata;
- isc_buffer_t buffer;
-
+dns_name_downcase(const dns_name_t *source, dns_name_t *name) {
/*
* Downcase 'source'.
*/
if (source == name) {
REQUIRE(!name->attributes.readonly);
- isc_buffer_init(&buffer, source->ndata, source->length);
- target = &buffer;
- ndata = source->ndata;
- } else {
- REQUIRE(DNS_NAME_BINDABLE(name));
- REQUIRE((target != NULL && ISC_BUFFER_VALID(target)) ||
- (target == NULL && ISC_BUFFER_VALID(name->buffer)));
- if (target == NULL) {
- if (source->length > name->buffer->length) {
- return ISC_R_NOSPACE;
- }
- target = name->buffer;
- isc_buffer_clear(name->buffer);
- } else if (source->length > target->length - target->used) {
- return ISC_R_NOSPACE;
- }
- ndata = (unsigned char *)target->base + target->used;
- name->ndata = ndata;
+ isc_ascii_lowercopy(name->ndata, source->ndata, source->length);
+ return ISC_R_SUCCESS;
}
- /* label lengths are < 64 so tolower() does not affect them */
- isc_ascii_lowercopy(ndata, source->ndata, source->length);
+ REQUIRE(DNS_NAME_BINDABLE(name));
+ REQUIRE(ISC_BUFFER_VALID(name->buffer));
- if (source != name) {
- name->length = source->length;
- name->attributes = (struct dns_name_attrs){
- .absolute = source->attributes.absolute
- };
- }
+ isc_buffer_clear(name->buffer);
+ name->ndata = (uint8_t *)name->buffer->base + name->buffer->used;
- isc_buffer_add(target, name->length);
+ /* label lengths are < 64 so tolower() does not affect them */
+ isc_ascii_lowercopy(name->ndata, source->ndata, source->length);
+
+ name->length = source->length;
+ name->attributes = (struct dns_name_attrs){
+ .absolute = source->attributes.absolute
+ };
+ isc_buffer_add(name->buffer, name->length);
return ISC_R_SUCCESS;
}
isc_result_t
dns_name_digest(const dns_name_t *name, dns_digestfunc_t digest, void *arg) {
- dns_name_t downname;
- unsigned char data[256];
- isc_buffer_t buffer;
- isc_result_t result;
- isc_region_t r;
-
/*
* Send 'name' in DNSSEC canonical form to 'digest'.
*/
REQUIRE(DNS_NAME_VALID(name));
REQUIRE(digest != NULL);
- dns_name_init(&downname);
-
- isc_buffer_init(&buffer, data, sizeof(data));
-
- result = dns_name_downcase(name, &downname, &buffer);
- if (result != ISC_R_SUCCESS) {
- return result;
- }
-
- isc_buffer_usedregion(&buffer, &r);
+ unsigned char ndata[DNS_NAME_MAXWIRE];
+ isc_ascii_lowercopy(ndata, name->ndata, name->length);
+ isc_region_t r = {
+ .base = ndata,
+ .length = name->length,
+ };
return (digest)(arg, &r);
}
memset(rethash, 0, NSEC3_MAX_HASH_LENGTH);
downcased = dns_fixedname_initname(&fixed);
- dns_name_downcase(name, downcased, NULL);
+ dns_name_downcase(name, downcased);
/* hash the node name */
len = isc_iterated_hash(rethash, hashalg, iterations, salt,
* Prepare to compute all the hashes.
*/
qname = dns_fixedname_initname(&qfixed);
- dns_name_downcase(name, qname, NULL);
+ dns_name_downcase(name, qname);
qlabels = dns_name_countlabels(qname);
first = true;
goto next;
}
- dns_name_downcase(name, name, NULL);
+ dns_name_downcase(name, name);
/* Add entry to the new nodes table */
result = isc_ht_add(newnodes, name->ndata, name->length, rpz);
tkey->name = dns_fixedname_initname(&tkey->fn);
dns_name_copy(name, tkey->name);
- (void)dns_name_downcase(tkey->name, tkey->name, NULL);
+ (void)dns_name_downcase(tkey->name, tkey->name);
if (algorithm != DST_ALG_UNKNOWN) {
if (dstkey != NULL && dst_key_alg(dstkey) != algorithm) {
found = false;
dns_name_init(&nsec3name);
dns_fixedname_init(&fixed);
- dns_name_downcase(name, dns_fixedname_name(&fixed), NULL);
+ dns_name_downcase(name, dns_fixedname_name(&fixed));
name = dns_fixedname_name(&fixed);
for (result = dns_rdataset_first(rdataset); result == ISC_R_SUCCESS;
result = dns_rdataset_next(rdataset))
REQUIRE(added != NULL && *added == NULL);
name = dns_fixedname_initname(&fname);
- dns_name_downcase(&zone->origin, name, NULL);
+ dns_name_downcase(&zone->origin, name);
RWLOCK(&mgmt->lock, isc_rwlocktype_write);