Lines Matching defs:qstate

313 mesh_serve_expired_lookup(struct module_qstate* qstate,
321 time_t timenow = *qstate->env->now;
322 int must_validate = (!(qstate->query_flags&BIT_CD)
323 || qstate->env->cfg->ignore_cd) && qstate->env->need_to_validate;
325 h = query_info_hash(lookup_qinfo, qstate->query_flags);
326 e = slabhash_lookup(qstate->env->msg_cache, h, lookup_qinfo, 0);
331 msg = tomsg(qstate->env, &key->key, data, qstate->region, timenow,
332 qstate->env->cfg->serve_expired, qstate->env->scratch);
860 e->qstate->reply = reply;
866 mesh_run(mesh, e->qstate->mesh_info, event, e);
897 /* init module qstate */
1006 mesh_state_delete(struct module_qstate* qstate)
1011 if(!qstate)
1013 mstate = qstate->mesh_info;
1059 mesh_detect_cycle_found(struct module_qstate* qstate, struct mesh_state* dep_m)
1061 struct mesh_state* cyc_m = qstate->mesh_info;
1073 void mesh_detach_subs(struct module_qstate* qstate)
1075 struct mesh_area* mesh = qstate->env->mesh;
1081 lookup.s = qstate->mesh_info;
1082 RBTREE_FOR(ref, struct mesh_state_ref*, &qstate->mesh_info->sub_set) {
1097 rbtree_init(&qstate->mesh_info->sub_set, &mesh_state_ref_compare);
1100 int mesh_add_sub(struct module_qstate* qstate, struct query_info* qinfo,
1105 struct mesh_area* mesh = qstate->env->mesh;
1108 if(mesh_detect_cycle_found(qstate, *sub)) {
1117 *sub = mesh_state_create(qstate->env, qinfo, NULL, qflags, prime,
1146 int mesh_attach_sub(struct module_qstate* qstate, struct query_info* qinfo,
1149 struct mesh_area* mesh = qstate->env->mesh;
1152 if(!mesh_add_sub(qstate, qinfo, qflags, prime, valrec, newq, &sub))
1155 if(!mesh_state_attachment(qstate->mesh_info, sub))
1838 log_query_info(NO_VERBOSE, "pass error for qstate",
1847 log_query_info(VERB_QUERY, "pass error for qstate",
1869 log_query_info(VERB_QUERY, "pass error for qstate",
2053 /* all, including m itself allocated in qstate region */
2060 mesh_detect_cycle(struct module_qstate* qstate, struct query_info* qinfo,
2063 struct mesh_area* mesh = qstate->env->mesh;
2066 return mesh_detect_cycle_found(qstate, dep_m);
2132 apply_respip_action(struct module_qstate* qstate,
2144 alias_rrset, 0, qstate->region, az, NULL))
2161 struct module_qstate* qstate = &mstate->s;
2163 struct mesh_area* mesh = qstate->env->mesh;
2173 struct query_info* lookup_qinfo = &qstate->qinfo;
2176 int must_validate = (!(qstate->query_flags&BIT_CD)
2177 || qstate->env->cfg->ignore_cd) && qstate->env->need_to_validate;
2179 if(!qstate->serve_expired_data) return;
2181 comm_timer_delete(qstate->serve_expired_data->timer);
2182 qstate->serve_expired_data->timer = NULL;
2185 if(qstate->no_cache_lookup || qstate->is_drop) {
2194 qstate->serve_expired_data->get_cached_answer));
2195 msg = (*qstate->serve_expired_data->get_cached_answer)(qstate,
2205 !partial_rep && !apply_respip_action(qstate, &qstate->qinfo,
2206 qstate->client_info, &actinfo, msg->rep, &alias_rrset, &encode_rep,
2207 qstate->env->auth_zones)) {
2210 !respip_merge_cname(partial_rep, &qstate->qinfo, msg->rep,
2211 qstate->client_info, must_validate, &encode_rep, qstate->region,
2212 qstate->env->auth_zones)) {
2238 qinfo_tmp.qtype = qstate->qinfo.qtype;
2239 qinfo_tmp.qclass = qstate->qinfo.qclass;
2247 log_dns_msg("Serve expired lookup", &qstate->qinfo, msg->rep);
2281 qstate->qinfo.qtype, qstate->qinfo.qclass,
2288 if (r->edns.edns_present && qstate->env->cfg->ede_serve_expired &&
2289 qstate->env->cfg->ede) {
2310 if(actinfo.addrinfo && qstate->env->cfg->stat_extended &&
2313 qstate->env->mesh->rpz_action[RPZ_DISABLED_ACTION] += i;
2315 qstate->env->mesh->rpz_action[RPZ_CNAME_OVERRIDE_ACTION] += i;
2317 qstate->env->mesh->rpz_action[
2339 log_assert(qstate->env->mesh->num_reply_states > 0);
2340 qstate->env->mesh->num_reply_states--;
2345 qstate->env->mesh->num_detached_states++;