return kr_ok();
}
-int insert_trivial_zone(val_zla_type_t ztype, uint32_t ttl,
- const knot_dname_t *apex, kr_rule_tags_t tags)
+knot_db_val_t zla_key(const knot_dname_t *apex, uint8_t key_data[KEY_MAXLEN])
{
kr_require(the_rules);
- uint8_t key_data[KEY_MAXLEN];
knot_db_val_t key;
key.data = key_dname_lf(apex, key_data);
key.data -= rsp_len;
memcpy(key.data, RULESET_DEFAULT, rsp_len);
key.len = key_data + KEY_DNAME_END_OFFSET - (uint8_t *)key.data;
+ return key;
+}
+int insert_trivial_zone(val_zla_type_t ztype, uint32_t ttl,
+ const knot_dname_t *apex, kr_rule_tags_t tags)
+{
+ uint8_t key_data[KEY_MAXLEN];
+ knot_db_val_t key = zla_key(apex, key_data);
knot_db_val_t val = {
.data = NULL,
/** Same as kr_rule_local_data_ins() but with precomputed `key`. */
int local_data_ins(knot_db_val_t key, const knot_rrset_t *rrs,
const knot_rdataset_t *sig_rds, kr_rule_tags_t tags);
-
+/** Construct key for a zone-like-apex entry. It's stored in `key_data`. */
+knot_db_val_t zla_key(const knot_dname_t *apex, uint8_t key_data[KEY_MAXLEN]);
/** The first byte of zone-like apex value is its type. */
typedef uint8_t val_zla_type_t;