Lines Matching defs:env
105 testframe_init(struct module_env* env, struct cachedb_env* cachedb_env)
120 0 /* no aggregation */, env)) {
131 testframe_deinit(struct module_env* env, struct cachedb_env* cachedb_env)
135 (void)env;
146 testframe_lookup(struct module_env* env, struct cachedb_env* cachedb_env,
151 (void)env;
173 testframe_store(struct module_env* env, struct cachedb_env* cachedb_env,
178 (void)env;
245 cachedb_init(struct module_env* env, int id)
253 env->modinfo[id] = (void*)cachedb_env;
254 if(!cachedb_apply_cfg(cachedb_env, env->cfg)) {
257 env->modinfo[id] = NULL;
263 if(!(*cachedb_env->backend->init)(env, cachedb_env)) {
267 env->modinfo[id] = NULL;
275 cachedb_deinit(struct module_env* env, int id)
278 if(!env || !env->modinfo[id])
280 cachedb_env = (struct cachedb_env*)env->modinfo[id];
282 (*cachedb_env->backend->deinit)(env, cachedb_env);
285 env->modinfo[id] = NULL;
327 * @param env: with env->cfg with secret.
332 calc_hash(struct query_info* qinfo, struct module_env* env, char* buf,
339 const char* secret = env->cfg->cachedb_secret;
409 !qstate->env->cfg->serve_expired)
413 if (qstate->env->cfg->ede && qstate->return_msg->rep->reason_bogus != LDNS_EDE_NONE) {
414 edns_opt_list_append_ede(&edns.opt_list_out, qstate->env->scratch,
424 buf, 0, 1, qstate->env->scratch, 65535, &edns, 1, 0))
431 timestamp = (uint64_t)*qstate->env->now;
463 if((time_t)expiry < *qstate->env->now &&
464 (!qstate->env->cfg->serve_expired ||
466 *qstate->env->now - (time_t)expiry > SERVE_EXPIRED_TTL)))
559 regional_free_all(qstate->env->scratch);
560 prs = (struct msg_parse*)regional_alloc(qstate->env->scratch,
567 if(parse_packet(buf, prs, qstate->env->scratch) != LDNS_RCODE_NOERROR) {
571 if(parse_extract_edns_from_response_msg(prs, &edns, qstate->env->scratch) !=
583 if(qstate->env->cfg->ede &&
603 if(*qstate->env->now <= (time_t)timestamp) {
607 adjust = *qstate->env->now - (time_t)timestamp;
613 if(!qstate->env->cfg->serve_expired ||
626 if(qstate->env->cfg->aggressive_nsec) {
635 if(qstate->env->cfg->serve_expired &&
636 !qstate->env->cfg->serve_expired_client_timeout &&
637 (adjust == -1 || (time_t)expiry < *qstate->env->now)) {
653 calc_hash(&qstate->qinfo, qstate->env, key, sizeof(key));
656 if( !(*ie->backend->lookup)(qstate->env, ie, key,
657 qstate->env->scratch_buffer)) {
662 if( !good_expiry_and_qinfo(qstate, qstate->env->scratch_buffer) ) {
667 if( !parse_data(qstate, qstate->env->scratch_buffer, msg_expired) ) {
680 calc_hash(&qstate->qinfo, qstate->env, key, sizeof(key));
683 if(!prep_data(qstate, qstate->env->scratch_buffer))
687 (*ie->backend->store)(qstate->env, ie, key,
688 sldns_buffer_begin(qstate->env->scratch_buffer),
689 sldns_buffer_limit(qstate->env->scratch_buffer),
710 msg = dns_cache_lookup(qstate->env, qstate->qinfo.qname,
713 qstate->region, qstate->env->scratch,
717 if(!msg && qstate->env->neg_cache &&
718 iter_qname_indicates_dnssec(qstate->env, &qstate->qinfo)) {
721 msg = val_neg_getmsg(qstate->env->neg_cache, &qstate->qinfo,
722 qstate->region, qstate->env->rrset_cache,
723 qstate->env->scratch_buffer,
724 *qstate->env->now, 1/*add SOA*/, NULL,
725 qstate->env->cfg);
742 int serve_expired = qstate->env->cfg->serve_expired;
744 if(qstate->env->cfg->serve_expired)
749 /* Set TTLs to a value such that value + *env->now is
755 if(qstate->env->cfg->cachedb_check_when_serve_expired)
758 (void)dns_cache_store(qstate->env, &qstate->qinfo,
763 if(qstate->env->cfg->serve_expired_client_timeout) {
782 * contains qstate->env module environment with global caches and so on.
838 if(qstate->env->cfg->serve_expired && msg_expired) {
860 qstate->env->cfg->cachedb_check_when_serve_expired &&
861 !qstate->env->cfg->serve_expired_client_timeout) {
875 * contains qstate->env module environment with global caches and so on.
891 if(qstate->env->cfg->cachedb_no_store) {
908 struct cachedb_env* ie = (struct cachedb_env*)qstate->env->modinfo[id];
977 cachedb_get_mem(struct module_env* env, int id)
979 struct cachedb_env* ie = (struct cachedb_env*)env->modinfo[id];
1001 cachedb_is_enabled(struct module_stack* mods, struct module_env* env)
1007 ie = (struct cachedb_env*)env->modinfo[id];
1015 cachedb_msg_remove_qinfo(qstate->env, &qstate->qinfo);
1018 void cachedb_msg_remove_qinfo(struct module_env* env, struct query_info* qinfo)
1021 int id = modstack_find(env->modstack, "cachedb");
1022 struct cachedb_env* ie = (struct cachedb_env*)env->modinfo[id];
1025 calc_hash(qinfo, env, key, sizeof(key));
1026 sldns_buffer_clear(env->scratch_buffer);
1027 sldns_buffer_write_u32(env->scratch_buffer, 0);
1028 sldns_buffer_flip(env->scratch_buffer);
1031 (*ie->backend->store)(env, ie, key,
1032 sldns_buffer_begin(env->scratch_buffer),
1033 sldns_buffer_limit(env->scratch_buffer),