Lines Matching refs:rrset

69  * Allocate new rrset in region, fill with data.
103 /** See if next rrset is nsec at zone apex */
148 /** Calculate rrset flags */
175 /** create partial dname hash for rrset hash */
187 /** create a rrset hash from a partial dname hash */
260 msgparse_bucket_remove(struct msg_parse* msg, struct rrset_parse* rrset)
263 p = &msg->hashtable[ rrset->hash & (PARSE_TABLE_SIZE-1) ];
265 if(*p == rrset) {
266 *p = rrset->rrset_bucket_next;
273 /** change section of rrset from previous to current section */
275 change_section(struct msg_parse* msg, struct rrset_parse* rrset,
280 if(section == rrset->section)
285 if(p == rrset) {
288 if(msg->rrset_last == rrset)
296 switch(rrset->section) {
303 rrset->rrset_all_next = 0;
305 msg->rrset_last->rrset_all_next = rrset;
306 else msg->rrset_first = rrset;
307 msg->rrset_last = rrset;
314 rrset->section = section;
317 /** see if rrset of type RRSIG contains sig over given type */
319 rrset_has_sigover(sldns_buffer* pkt, struct rrset_parse* rrset, uint16_t type,
323 struct rr_parse* rr = rrset->rr_first;
324 log_assert( rrset->type == LDNS_RR_TYPE_RRSIG );
383 /** change an rrsig rrset for use as data rrset */
395 /* need to make new rrset to hold data type */
414 /* changeover the type of the rrset to data set */
436 /** Find rrset. If equal to previous it is fast. hash if not so.
443 * @param hash: hash value is returned if the rrset could not be found.
444 * @param rrset_flags: is returned if the rrset could not be found.
702 sig_is_double(sldns_buffer* pkt, struct rrset_parse* rrset, uint8_t* ttldata)
717 sig = rrset->rrsig_first;
742 /** Add rr (from packet here) to rrset, skips rr */
744 add_rr_to_rrset(struct rrset_parse* rrset, sldns_buffer* pkt,
749 /* check section of rrset. */
750 if(rrset->section != section && type != LDNS_RR_TYPE_RRSIG &&
751 rrset->type != LDNS_RR_TYPE_RRSIG) {
758 verbose(VERB_QUERY, "Packet contains rrset data in "
770 && sig_is_double(pkt, rrset, sldns_buffer_current(pkt))) {
782 if(type == LDNS_RR_TYPE_RRSIG && rrset->type != LDNS_RR_TYPE_RRSIG) {
783 if(rrset->rrsig_last)
784 rrset->rrsig_last->next = rr;
785 else rrset->rrsig_first = rr;
786 rrset->rrsig_last = rr;
787 rrset->rrsig_count++;
789 if(rrset->rr_last)
790 rrset->rr_last->next = rr;
791 else rrset->rr_first = rr;
792 rrset->rr_last = rr;
793 rrset->rr_count++;
799 rrset->size += rr->size;
827 struct rrset_parse* rrset = NULL;
873 &prev_dnamelen, &prev_type, &prev_dclass, &rrset,
876 if(!rrset) {
879 rrset = new_rrset(msg, dname, dnamelen, type, dclass,
881 if(!rrset)
886 dname_print(stderr, pkt, rrset->dname);
888 sldns_rr_descript(rrset->type)?
889 sldns_rr_descript(rrset->type)->_name: "??",
890 (int)rrset->type);
892 /* add to rrset. */
893 if((r=add_rr_to_rrset(rrset, pkt, msg, region, section,
939 struct rrset_parse* rrset = msg->rrset_first;
945 while(rrset) {
946 if(rrset->type == LDNS_RR_TYPE_OPT) {
951 found = rrset;
953 prev = rrset;
954 rrset = rrset->rrset_all_next;