Lines Matching defs:rep
67 struct query_info* qinf, struct reply_info* rep, size_t skip)
69 int rcode = (int)FLAGS_GET_RCODE(rep->flags);
74 if(rcode == LDNS_RCODE_NXDOMAIN && rep->an_numrrsets == 0)
78 if(!(query_flags&BIT_RD) && rep->an_numrrsets == 0 &&
85 for(i=0; i<rep->ns_numrrsets; i++) {
86 if(ntohs(rep->rrsets[i]->rk.type) == LDNS_RR_TYPE_SOA)
88 if(ntohs(rep->rrsets[i]->rk.type) == LDNS_RR_TYPE_DS)
90 if(ntohs(rep->rrsets[i]->rk.type) == LDNS_RR_TYPE_NS)
96 if(!(query_flags&BIT_RD) && rep->ns_numrrsets == 0 &&
97 rep->an_numrrsets == 1 && rcode == LDNS_RCODE_NOERROR &&
98 ntohs(rep->rrsets[0]->rk.type) == LDNS_RR_TYPE_NS &&
99 query_dname_compare(rep->rrsets[0]->rk.dname,
107 if(skip>0 && rep->an_numrrsets <= skip)
111 if(rcode == LDNS_RCODE_NOERROR && rep->an_numrrsets == 0)
125 for(i=skip; i<rep->an_numrrsets; i++) {
127 ntohs(rep->rrsets[i]->rk.type)
130 rep->rrsets[i]->rk.dname) == 0) {
136 if(ntohs(rep->rrsets[i]->rk.type)
141 qinf, rep);
147 for(i=skip; i<rep->an_numrrsets; i++) {
149 ntohs(rep->rrsets[i]->rk.type) == qinf->qtype)
151 if(ntohs(rep->rrsets[i]->rk.type) == LDNS_RR_TYPE_CNAME)
155 qinf, rep);
247 cname_under_previous_dname(struct reply_info* rep, size_t cname_idx,
252 if(ntohs(rep->rrsets[i]->rk.type) == LDNS_RR_TYPE_DNAME &&
253 dname_strict_subdomain_c(rep->rrsets[cname_idx]->
254 rk.dname, rep->rrsets[i]->rk.dname)) {
265 struct reply_info* rep, size_t skip, uint8_t** signer_name,
272 for(i=skip; i<rep->an_numrrsets; i++) {
274 rep->rrsets[i]->rk.dname) == 0) {
275 val_find_rrset_signer(rep->rrsets[i],
284 ntohs(rep->rrsets[i]->rk.type) ==
286 ntohs(rep->rrsets[i-1]->rk.type) ==
288 dname_strict_subdomain_c(rep->rrsets[i]->rk.dname, rep->rrsets[i-1]->rk.dname)) {
289 val_find_rrset_signer(rep->rrsets[i-1],
300 for(i=skip; i<rep->an_numrrsets; i++) {
301 val_find_rrset_signer(rep->rrsets[i],
305 if(ntohs(rep->rrsets[i]->rk.type) == LDNS_RR_TYPE_CNAME
306 && cname_under_previous_dname(rep, i, &j)) {
307 val_find_rrset_signer(rep->rrsets[j],
311 if(ntohs(rep->rrsets[i]->rk.type) != LDNS_RR_TYPE_DNAME)
319 for(i=rep->an_numrrsets; i<
320 rep->an_numrrsets+rep->ns_numrrsets; i++) {
321 if(ntohs(rep->rrsets[i]->rk.type) == LDNS_RR_TYPE_NSEC
322 || ntohs(rep->rrsets[i]->rk.type) ==
324 val_find_rrset_signer(rep->rrsets[i],
335 for(i=rep->an_numrrsets; i<rep->an_numrrsets+rep->
337 if(ntohs(rep->rrsets[i]->rk.type) == LDNS_RR_TYPE_NSEC
338 || ntohs(rep->rrsets[i]->rk.type) ==
340 val_find_best_signer(rep->rrsets[i], qinf,
347 for(i=skip; i<rep->an_numrrsets; i++) {
349 rep->rrsets[i]->rk.dname) == 0) {
350 val_find_rrset_signer(rep->rrsets[i],
357 if(skip < rep->an_numrrsets &&
358 ntohs(rep->rrsets[skip]->rk.type) ==
360 val_find_rrset_signer(rep->rrsets[skip],
369 if(skip < rep->rrset_count) {
370 val_find_rrset_signer(rep->rrsets[skip],
970 val_chase_cname(struct query_info* qchase, struct reply_info* rep,
974 for(i = *cname_skip; i < rep->an_numrrsets; i++) {
975 if(ntohs(rep->rrsets[i]->rk.type) == LDNS_RR_TYPE_CNAME &&
976 query_dname_compare(qchase->qname, rep->rrsets[i]->
979 get_cname_target(rep->rrsets[i], &qchase->qname,
1080 void val_reply_remove_auth(struct reply_info* rep, size_t index)
1082 log_assert(index < rep->rrset_count);
1083 log_assert(index >= rep->an_numrrsets);
1084 log_assert(index < rep->an_numrrsets+rep->ns_numrrsets);
1085 memmove(rep->rrsets+index, rep->rrsets+index+1,
1087 (rep->rrset_count - index - 1));
1088 rep->ns_numrrsets--;
1089 rep->rrset_count--;
1093 val_check_nonsecure(struct module_env* env, struct reply_info* rep)
1097 for(i=rep->an_numrrsets; i<rep->an_numrrsets+rep->ns_numrrsets; i++) {
1098 if(((struct packed_rrset_data*)rep->rrsets[i]->entry.data)
1114 if(rep->an_numrrsets != 0 &&
1115 ntohs(rep->rrsets[i]->rk.type)
1118 rep->ar_numrrsets = 0;
1119 rep->rrset_count = rep->an_numrrsets +
1120 rep->ns_numrrsets;
1122 memmove(rep->rrsets+i, rep->rrsets+i+1,
1124 (rep->rrset_count - i - 1));
1125 rep->ns_numrrsets--;
1126 rep->rrset_count--;
1133 rep->rrsets[i]->rk.dname,
1134 ntohs(rep->rrsets[i]->rk.type),
1135 ntohs(rep->rrsets[i]->rk.rrset_class));
1136 rep->security = sec_status_bogus;
1143 for(i=rep->an_numrrsets+rep->ns_numrrsets; i<rep->rrset_count; i++) {
1144 if(((struct packed_rrset_data*)rep->rrsets[i]->entry.data)
1155 memmove(rep->rrsets+i, rep->rrsets+i+1,
1157 (rep->rrset_count - i - 1));
1158 rep->ar_numrrsets--;
1159 rep->rrset_count--;
1177 val_mark_indeterminate(struct reply_info* rep, struct val_anchors* anchors,
1182 for(i=0; i<rep->rrset_count; i++) {
1183 d = (struct packed_rrset_data*)rep->rrsets[i]->entry.data;
1185 check_no_anchor(anchors, rep->rrsets[i]->rk.dname,
1186 rep->rrsets[i]->rk.dname_len,
1187 ntohs(rep->rrsets[i]->rk.rrset_class)))
1191 rrset_update_sec_status(r, rep->rrsets[i], *env->now);
1197 val_mark_insecure(struct reply_info* rep, uint8_t* kname,
1202 for(i=0; i<rep->rrset_count; i++) {
1203 d = (struct packed_rrset_data*)rep->rrsets[i]->entry.data;
1205 dname_subdomain_c(rep->rrsets[i]->rk.dname, kname)) {
1208 rrset_update_sec_status(r, rep->rrsets[i], *env->now);
1214 val_next_unchecked(struct reply_info* rep, size_t skip)
1218 for(i=skip+1; i<rep->rrset_count; i++) {
1219 d = (struct packed_rrset_data*)rep->rrsets[i]->entry.data;
1224 return rep->rrset_count;
1277 int val_has_signed_nsecs(struct reply_info* rep, char** reason)
1281 for(i=rep->an_numrrsets; i<rep->an_numrrsets+rep->ns_numrrsets; i++) {
1282 if(rep->rrsets[i]->rk.type == htons(LDNS_RR_TYPE_NSEC))
1284 else if(rep->rrsets[i]->rk.type == htons(LDNS_RR_TYPE_NSEC3))
1287 d = (struct packed_rrset_data*)rep->rrsets[i]->entry.data;
1319 msg->rep->rrsets[0] = copy;
1320 msg->rep->rrset_count++;
1321 msg->rep->an_numrrsets++;