*rr_signed = false;
// Create a key = RRSet owner converted to sortable format
knot_dname_storage_t lf_storage;
- uint8_t *lf = knot_dname_lf(rrset->owner, &lf_storage);
+ uint8_t *lf = knot_dname_lf(rrset->owner, lf_storage);
assert(lf);
trie_val_t stored_info = (signed_info_t *)trie_get_try(t, (char *)lf+1,
*lf);
assert(node->owner);
knot_dname_storage_t lf_storage;
- uint8_t *lf = knot_dname_lf(node->owner, &lf_storage);
+ uint8_t *lf = knot_dname_lf(node->owner, lf_storage);
assert(lf);
*trie_get_ins(tree, (char *)lf + 1, *lf) = node;
}
knot_dname_storage_t lf_storage;
- uint8_t *lf = knot_dname_lf(owner, &lf_storage);
+ uint8_t *lf = knot_dname_lf(owner, lf_storage);
assert(lf);
trie_val_t *val = trie_get_try(tree, (char *)lf + 1, *lf);
}
knot_dname_storage_t lf_storage;
- uint8_t *lf = knot_dname_lf(owner, &lf_storage);
+ uint8_t *lf = knot_dname_lf(owner, lf_storage);
assert(lf);
trie_val_t *fval = NULL;
}
knot_dname_storage_t lf_storage;
- uint8_t *lf = knot_dname_lf(owner, &lf_storage);
+ uint8_t *lf = knot_dname_lf(owner, lf_storage);
assert(lf);
trie_val_t *rval = trie_get_try(tree, (char *)lf + 1, *lf);
assert(zone->name);
knot_dname_storage_t lf_storage;
- uint8_t *lf = knot_dname_lf(zone->name, &lf_storage);
+ uint8_t *lf = knot_dname_lf(zone->name, lf_storage);
assert(lf);
*trie_get_ins(db->trie, (char *)lf + 1, *lf) = zone;
}
knot_dname_storage_t lf_storage;
- uint8_t *lf = knot_dname_lf(zone_name, &lf_storage);
+ uint8_t *lf = knot_dname_lf(zone_name, lf_storage);
assert(lf);
trie_val_t *rval = trie_get_try(db->trie, (char *)lf + 1, *lf);
}
knot_dname_storage_t lf_storage;
- uint8_t *lf = knot_dname_lf(zone_name, &lf_storage);
+ uint8_t *lf = knot_dname_lf(zone_name, lf_storage);
assert(lf);
trie_val_t *val = trie_get_try(db->trie, (char *)lf + 1, *lf);
while (true) {
knot_dname_storage_t lf_storage;
- uint8_t *lf = knot_dname_lf(zone_name, &lf_storage);
+ uint8_t *lf = knot_dname_lf(zone_name, lf_storage);
assert(lf);
trie_val_t *val = trie_get_try(db->trie, (char *)lf + 1, *lf);
}
_public_
-size_t knot_dname_store(knot_dname_storage_t *dst, const knot_dname_t *name)
+size_t knot_dname_store(knot_dname_storage_t dst, const knot_dname_t *name)
{
if (dst == NULL || name == NULL) {
return 0;
size_t len = knot_dname_size(name);
assert(len <= KNOT_DNAME_MAXLEN);
- memcpy(dst->data, name, len);
+ memcpy(dst, name, len);
return len;
}
knot_dname_storage_t lf1_storage;
knot_dname_storage_t lf2_storage;
- uint8_t *lf1 = knot_dname_lf(d1, &lf1_storage);
- uint8_t *lf2 = knot_dname_lf(d2, &lf2_storage);
+ uint8_t *lf1 = knot_dname_lf(d1, lf1_storage);
+ uint8_t *lf2 = knot_dname_lf(d2, lf2_storage);
assert(lf1 && lf2);
/* Compare common part. */
}
_public_
-uint8_t *knot_dname_lf(const knot_dname_t *src, knot_dname_storage_t *storage)
+uint8_t *knot_dname_lf(const knot_dname_t *src, knot_dname_storage_t storage)
{
if (src == NULL || storage == NULL) {
return NULL;
}
/* Writing from the end. */
- storage->data[KNOT_DNAME_MAXLEN - 1] = '\0';
+ storage[KNOT_DNAME_MAXLEN - 1] = '\0';
size_t idx = KNOT_DNAME_MAXLEN - 1;
while (*src != 0) {
assert(idx >= len);
idx -= len;
- memcpy(&storage->data[idx], src, len);
- storage->data[idx] = '\0';
+ memcpy(&storage[idx], src, len);
+ storage[idx] = '\0';
src += len;
}
assert(KNOT_DNAME_MAXLEN >= 1 + idx);
- storage->data[idx] = KNOT_DNAME_MAXLEN - 1 - idx;
+ storage[idx] = KNOT_DNAME_MAXLEN - 1 - idx;
- return &storage->data[idx];
+ return &storage[idx];
}
typedef uint8_t knot_dname_t;
/*! \brief Local domain name storage. */
-typedef union {
- knot_dname_t dname;
- uint8_t data[KNOT_DNAME_MAXLEN];
-} knot_dname_storage_t;
+typedef uint8_t knot_dname_storage_t[KNOT_DNAME_MAXLEN];
/*!
* \brief Check dname on the wire for constraints.
* \retval 0 if invalid argument.
*/
_mustcheck_
-size_t knot_dname_store(knot_dname_storage_t *dst, const knot_dname_t *name);
+size_t knot_dname_store(knot_dname_storage_t dst, const knot_dname_t *name);
/*!
* \brief Duplicates the given domain name.
* \retval Lookup format if successful (pointer into the storage).
* \retval NULL on invalid parameters.
*/
-uint8_t *knot_dname_lf(const knot_dname_t *src, knot_dname_storage_t *storage);
+uint8_t *knot_dname_lf(const knot_dname_t *src, knot_dname_storage_t storage);
/*! @} */
"ggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg""\x00"
"hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh""\x00"
"iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii""\x00";
- uint8_t *out = knot_dname_lf(in, &storage);
+ uint8_t *out = knot_dname_lf(in, storage);
ok(out != NULL && memcmp(ref, out, KNOT_DNAME_MAXLEN) == 0,
"knot_dname_lf: max-length DNAME converted");
/* Zero label DNAME*/
in = (uint8_t *) "\x00";
- out = knot_dname_lf(in, &storage);
+ out = knot_dname_lf(in, storage);
ok(out != NULL && out[0] == '\x00', "knot_dname_lf: zero-label DNAME converted");
}
size_t dname_len = knot_dname_size(dname);
knot_dname_storage_t storage;
- size_t store_len = knot_dname_store(&storage, dname);
- size_t storage_len = knot_dname_size(&storage.dname);
+ size_t store_len = knot_dname_store(storage, dname);
+ size_t storage_len = knot_dname_size(storage);
ok(store_len == dname_len && storage_len == dname_len &&
- memcmp(&storage, dname, dname_len) == 0 &&
- memcmp(&storage.data, dname, dname_len) == 0 &&
- memcmp(&storage.dname, dname, dname_len) == 0,
+ memcmp(storage, dname, dname_len) == 0,
"knot_dname_storage: valid name");
}