Lines Matching refs:qinfo

1240 local_encode(struct query_info* qinfo, struct module_env* env,
1261 if(!inplace_cb_reply_local_call(env, qinfo, NULL, &rep, rcode, edns,
1262 repinfo, temp, env->now_tv) || !reply_info_answer_encode(qinfo, &rep,
1265 error_encode(buf, (LDNS_RCODE_SERVFAIL|BIT_AA), qinfo,
1274 local_error_encode(struct query_info* qinfo, struct module_env* env,
1283 if(!inplace_cb_reply_local_call(env, qinfo, NULL, NULL,
1286 error_encode(buf, r, qinfo, *(uint16_t*)sldns_buffer_begin(buf),
1292 local_data_find_tag_datas(const struct query_info* qinfo,
1317 if(rdr_type != qinfo->qtype && rdr_type != LDNS_RR_TYPE_CNAME)
1323 r->rk.dname = qinfo->qname;
1324 r->rk.dname_len = qinfo->qname_len;
1326 r->rk.rrset_class = htons(qinfo->qclass);
1380 find_tag_datas(struct query_info* qinfo, struct config_strlist* list,
1383 int result = local_data_find_tag_datas(qinfo, list, r, temp);
1386 * copy of the RRset and remember it in qinfo to complete the alias
1388 if(result && qinfo->qtype != LDNS_RR_TYPE_CNAME &&
1390 qinfo->local_alias =
1392 if(!qinfo->local_alias)
1394 qinfo->local_alias->rrset =
1396 if(!qinfo->local_alias->rrset)
1404 struct query_info* qinfo, struct edns_data* edns,
1414 key.name = qinfo->qname;
1415 key.namelen = qinfo->qname_len;
1425 if(find_tag_datas(qinfo, tag_datas[tag], &r, temp)) {
1433 if(qinfo->local_alias)
1435 return local_encode(qinfo, env, edns, repinfo, buf, temp,
1445 lr = local_data_find_type(ld, qinfo->qtype, 1);
1452 qinfo->qtype != LDNS_RR_TYPE_CNAME &&
1457 qinfo->local_alias =
1459 if(!qinfo->local_alias)
1461 qinfo->local_alias->rrset = regional_alloc_init(
1463 if(!qinfo->local_alias->rrset)
1465 qinfo->local_alias->rrset->rk.dname = qinfo->qname;
1466 qinfo->local_alias->rrset->rk.dname_len = qinfo->qname_len;
1474 size_t newtargetlen = qinfo->qname_len + ctargetlen - 3;
1477 log_assert(qinfo->qname_len >= 1);
1480 qinfo->local_alias = NULL;
1481 local_error_encode(qinfo, env, edns, repinfo,
1486 memset(&qinfo->local_alias->rrset->entry, 0,
1487 sizeof(qinfo->local_alias->rrset->entry));
1488 qinfo->local_alias->rrset->entry.key =
1489 qinfo->local_alias->rrset;
1490 qinfo->local_alias->rrset->entry.hash =
1491 rrset_key_hash(&qinfo->local_alias->rrset->rk);
1498 qinfo->local_alias->rrset->entry.data = d;
1510 memmove(d->rr_data[0] + sizeof(uint16_t), qinfo->qname,
1511 qinfo->qname_len - 1);
1514 qinfo->qname_len - 1, ctarget + 2,
1523 r.rk.dname = qinfo->qname;
1524 r.rk.dname_len = qinfo->qname_len;
1525 return local_encode(qinfo, env, edns, repinfo, buf, temp, &r, 1,
1528 return local_encode(qinfo, env, edns, repinfo, buf, temp, lr->rrset, 1,
1536 local_zone_does_not_cover(struct local_zone* z, struct query_info* qinfo,
1549 key.name = qinfo->qname;
1550 key.namelen = qinfo->qname_len;
1556 lr = local_data_find_type(ld, qinfo->qtype, 1);
1563 struct query_info* qinfo, struct edns_data* edns,
1576 local_error_encode(qinfo, env, edns, repinfo, buf, temp,
1596 return local_encode(qinfo, env, edns, repinfo, buf, temp,
1598 local_error_encode(qinfo, env, edns, repinfo, buf, temp, rcode,
1608 if(qinfo->qtype == LDNS_RR_TYPE_A ||
1609 qinfo->qtype == LDNS_RR_TYPE_AAAA) {
1619 lrr.rk.dname = qinfo->qname;
1620 lrr.rk.dname_len = qinfo->qname_len;
1621 lrr.rk.type = htons(qinfo->qtype);
1622 lrr.rk.rrset_class = htons(qinfo->qclass);
1623 if(qinfo->qtype == LDNS_RR_TYPE_A) {
1637 return local_encode(qinfo, env, edns, repinfo, buf, temp,
1640 local_error_encode(qinfo, env, edns, repinfo, buf,
1653 return local_encode(qinfo, env, edns, repinfo, buf, temp,
1655 local_error_encode(qinfo, env, edns, repinfo, buf, temp, rcode,
1666 lz_inform_print(struct local_zone* z, struct query_info* qinfo,
1676 log_nametypeclass(NO_VERBOSE, txt, qinfo->qname, qinfo->qtype, qinfo->qclass);
1737 struct query_info* qinfo, struct edns_data* edns, sldns_buffer* buf,
1746 int labs = dname_count_labels(qinfo->qname);
1756 qinfo->qname, qinfo->qname_len, labs,
1757 qinfo->qclass, qinfo->qtype))) {
1769 local_zone_does_not_cover(z, qinfo, labs)) {
1788 if(!(z = local_zones_tags_lookup(zones, qinfo->qname,
1789 qinfo->qname_len, labs, qinfo->qclass, qinfo->qtype,
1811 lz_inform_print(z, qinfo, repinfo);
1818 && local_data_answer(z, env, qinfo, edns, repinfo, buf, temp, labs,
1823 return !qinfo->local_alias;
1825 r = local_zones_zone_answer(z, env, qinfo, edns, repinfo, buf, temp, ld, lzt);
1827 return r && !qinfo->local_alias; /* see above */