Lines Matching refs:rrset

35 		knot_rrset_t *rrset = (knot_rrset_t *)ptr_n->d;  in rrset_list_clear()  local
36 knot_rrset_free(rrset, NULL); in rrset_list_clear()
47 knot_rrset_t *rrset = (knot_rrset_t *)ptr_n->d; in add_rr_to_list() local
48 if (rrset->type == rr->type && knot_dname_is_equal(rrset->owner, rr->owner)) { in add_rr_to_list()
49 return knot_rdataset_merge(&rrset->rrs, &rr->rrs, NULL); in add_rr_to_list()
61 static int check_rrset_exists(zone_update_t *update, const knot_rrset_t *rrset, in check_rrset_exists() argument
64 assert(rrset->type != KNOT_RRTYPE_ANY); in check_rrset_exists()
66 const zone_node_t *node = zone_update_get_node(update, rrset->owner); in check_rrset_exists()
67 if (node == NULL || !node_rrtype_exists(node, rrset->type)) { in check_rrset_exists()
71 knot_rrset_t found = node_rrset(node, rrset->type); in check_rrset_exists()
73 if (knot_rrset_equal(&found, rrset, false)) { in check_rrset_exists()
89 knot_rrset_t *rrset = (knot_rrset_t *)ptr_n->d; in check_stored_rrsets() local
90 int ret = check_rrset_exists(update, rrset, rcode); in check_stored_rrsets()
100 static bool check_type(zone_update_t *update, const knot_rrset_t *rrset) in check_type() argument
102 assert(rrset->type != KNOT_RRTYPE_ANY); in check_type()
103 const zone_node_t *node = zone_update_get_node(update, rrset->owner); in check_type()
104 if (node == NULL || !node_rrtype_exists(node, rrset->type)) { in check_type()
113 const knot_rrset_t *rrset, uint16_t *rcode) in check_type_exist() argument
115 assert(rrset->rclass == KNOT_CLASS_ANY); in check_type_exist()
116 if (check_type(update, rrset)) { in check_type_exist()
126 const knot_rrset_t *rrset, uint16_t *rcode) in check_type_not_exist() argument
128 assert(rrset->rclass == KNOT_CLASS_NONE); in check_type_not_exist()
129 if (check_type(update, rrset)) { in check_type_not_exist()
164 static bool rrset_empty(const knot_rrset_t *rrset) in rrset_empty() argument
166 switch (rrset->rrs.count) { in rrset_empty()
170 return rrset->rrs.rdata->len == 0; in rrset_empty()
195 static int process_prereq(const knot_rrset_t *rrset, uint16_t qclass, in process_prereq() argument
199 if (rrset->ttl != 0) { in process_prereq()
204 if (knot_dname_in_bailiwick(rrset->owner, update->zone->name) < 0) { in process_prereq()
209 if (rrset->rclass == KNOT_CLASS_ANY) { in process_prereq()
210 if (!rrset_empty(rrset)) { in process_prereq()
214 if (rrset->type == KNOT_RRTYPE_ANY) { in process_prereq()
215 return check_in_use(update, rrset->owner, rcode); in process_prereq()
217 return check_type_exist(update, rrset, rcode); in process_prereq()
219 } else if (rrset->rclass == KNOT_CLASS_NONE) { in process_prereq()
220 if (!rrset_empty(rrset)) { in process_prereq()
224 if (rrset->type == KNOT_RRTYPE_ANY) { in process_prereq()
225 return check_not_in_use(update, rrset->owner, rcode); in process_prereq()
227 return check_type_not_exist(update, rrset, rcode); in process_prereq()
229 } else if (rrset->rclass == qclass) { in process_prereq()
231 int ret = add_rr_to_list(rrset_list, rrset); in process_prereq()
272 static bool should_replace(const knot_rrset_t *rrset) in should_replace() argument
274 return rrset->type == KNOT_RRTYPE_CNAME || in should_replace()
275 rrset->type == KNOT_RRTYPE_DNAME || in should_replace()
276 rrset->type == KNOT_RRTYPE_NSEC3PARAM; in should_replace()
281 const knot_rrset_t *rrset) in node_contains_rr() argument
283 const knot_rdataset_t *zone_rrs = node_rdataset(node, rrset->type); in node_contains_rr()
285 assert(rrset->rrs.count == 1); in node_contains_rr()
286 return knot_rdataset_member(zone_rrs, rrset->rrs.rdata); in node_contains_rr()
522 static int process_rem_rrset(const knot_rrset_t *rrset, in process_rem_rrset() argument
528 if (rrset->type == KNOT_RRTYPE_SOA || is_dnssec_protected(rrset->type, is_apex)) { in process_rem_rrset()
533 if (is_apex && rrset->type == KNOT_RRTYPE_NS) { in process_rem_rrset()
543 if (!node_rrtype_exists(node, rrset->type)) { in process_rem_rrset()
548 knot_rrset_t to_remove = node_rrset(node, rrset->type); in process_rem_rrset()
563 knot_rrset_t rrset = node_rrset_at(node, rrset_count - i - 1); in process_rem_node() local
564 int ret = process_rem_rrset(&rrset, node, update); in process_rem_node()
622 static int check_update(const knot_rrset_t *rrset, const knot_pkt_t *query, in check_update() argument
626 const knot_dname_t *owner = rrset->owner; in check_update()
635 if (is_dnssec_protected(rrset->type, is_apex)) { in check_update()
641 if (rrset->rclass == knot_pkt_qclass(query)) { in check_update()
642 if (knot_rrtype_is_metatype(rrset->type)) { in check_update()
646 } else if (rrset->rclass == KNOT_CLASS_ANY) { in check_update()
647 if (!rrset_empty(rrset) || in check_update()
648 (knot_rrtype_is_metatype(rrset->type) && in check_update()
649 rrset->type != KNOT_RRTYPE_ANY)) { in check_update()
653 } else if (rrset->rclass == KNOT_CLASS_NONE) { in check_update()
654 if (rrset->ttl != 0 || knot_rrtype_is_metatype(rrset->type)) { in check_update()