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);
850 e->qstate->reply = reply;
856 mesh_run(mesh, e->qstate->mesh_info, event, e);
887 /* init module qstate */
994 mesh_state_delete(struct module_qstate* qstate)
999 if(!qstate)
1001 mstate = qstate->mesh_info;
1047 mesh_detect_cycle_found(struct module_qstate* qstate, struct mesh_state* dep_m)
1049 struct mesh_state* cyc_m = qstate->mesh_info;
1061 void mesh_detach_subs(struct module_qstate* qstate)
1063 struct mesh_area* mesh = qstate->env->mesh;
1069 lookup.s = qstate->mesh_info;
1070 RBTREE_FOR(ref, struct mesh_state_ref*, &qstate->mesh_info->sub_set) {
1085 rbtree_init(&qstate->mesh_info->sub_set, &mesh_state_ref_compare);
1088 int mesh_add_sub(struct module_qstate* qstate, struct query_info* qinfo,
1093 struct mesh_area* mesh = qstate->env->mesh;
1096 if(mesh_detect_cycle_found(qstate, *sub)) {
1105 *sub = mesh_state_create(qstate->env, qinfo, NULL, qflags, prime,
1134 int mesh_attach_sub(struct module_qstate* qstate, struct query_info* qinfo,
1137 struct mesh_area* mesh = qstate->env->mesh;
1140 if(!mesh_add_sub(qstate, qinfo, qflags, prime, valrec, newq, &sub))
1143 if(!mesh_state_attachment(qstate->mesh_info, sub))
1818 log_query_info(NO_VERBOSE, "pass error for qstate",
1827 log_query_info(VERB_QUERY, "pass error for qstate",
1849 log_query_info(VERB_QUERY, "pass error for qstate",
2033 /* all, including m itself allocated in qstate region */
2040 mesh_detect_cycle(struct module_qstate* qstate, struct query_info* qinfo,
2043 struct mesh_area* mesh = qstate->env->mesh;
2046 return mesh_detect_cycle_found(qstate, dep_m);
2112 apply_respip_action(struct module_qstate* qstate,
2124 alias_rrset, 0, qstate->region, az, NULL))
2141 struct module_qstate* qstate = &mstate->s;
2143 struct mesh_area* mesh = qstate->env->mesh;
2153 struct query_info* lookup_qinfo = &qstate->qinfo;
2156 int must_validate = (!(qstate->query_flags&BIT_CD)
2157 || qstate->env->cfg->ignore_cd) && qstate->env->need_to_validate;
2159 if(!qstate->serve_expired_data) return;
2161 comm_timer_delete(qstate->serve_expired_data->timer);
2162 qstate->serve_expired_data->timer = NULL;
2165 if(qstate->no_cache_lookup || qstate->is_drop) {
2174 qstate->serve_expired_data->get_cached_answer));
2175 msg = (*qstate->serve_expired_data->get_cached_answer)(qstate,
2185 !partial_rep && !apply_respip_action(qstate, &qstate->qinfo,
2186 qstate->client_info, &actinfo, msg->rep, &alias_rrset, &encode_rep,
2187 qstate->env->auth_zones)) {
2190 !respip_merge_cname(partial_rep, &qstate->qinfo, msg->rep,
2191 qstate->client_info, must_validate, &encode_rep, qstate->region,
2192 qstate->env->auth_zones)) {
2218 qinfo_tmp.qtype = qstate->qinfo.qtype;
2219 qinfo_tmp.qclass = qstate->qinfo.qclass;
2227 log_dns_msg("Serve expired lookup", &qstate->qinfo, msg->rep);
2259 qstate->qinfo.qtype, qstate->qinfo.qclass,
2266 if (r->edns.edns_present && qstate->env->cfg->ede_serve_expired &&
2267 qstate->env->cfg->ede) {
2287 if(actinfo.addrinfo && qstate->env->cfg->stat_extended &&
2290 qstate->env->mesh->rpz_action[RPZ_DISABLED_ACTION] += i;
2292 qstate->env->mesh->rpz_action[RPZ_CNAME_OVERRIDE_ACTION] += i;
2294 qstate->env->mesh->rpz_action[
2316 log_assert(qstate->env->mesh->num_reply_states > 0);
2317 qstate->env->mesh->num_reply_states--;
2322 qstate->env->mesh->num_detached_states++;