Lines Matching defs:env
72 static void do_revoked(struct module_env* env, struct autr_ta* anchor, int* c);
1188 void autr_write_file(struct module_env* env, struct trust_anchor* tp)
1197 if(!env) {
1211 env->worker?*(int*)env->worker:0, llvalue);
1253 * @param env: environment (with time) for verification
1261 verify_dnskey(struct module_env* env, struct val_env* ve,
1268 int downprot = env->cfg->harden_algo_downgrade;
1269 enum sec_status sec = val_verify_DNSKEY_with_TA(env, ve, rrset,
1292 min_expiry(struct module_env* env, struct packed_rrset_data* dd)
1298 if((int32_t)t - (int32_t)*env->now > 0) {
1299 t -= (int32_t)*env->now;
1309 rr_is_selfsigned_revoked(struct module_env* env, struct val_env* ve,
1319 sec = dnskey_verify_rrset(env, ve, dnskey_rrset, dnskey_rrset, i,
1534 check_contains_revoked(struct module_env* env, struct val_env* ve,
1556 if(rr_is_selfsigned_revoked(env, ve, dnskey_rrset, i, qstate)) {
1574 do_revoked(env, ta, changed);
1581 key_matches_a_ds(struct module_env* env, struct val_env* ve,
1602 if(!ds_digest_match_dnskey(env, dnskey_rrset, key_idx,
1612 if(dnskey_verify_rrset(env, ve, dnskey_rrset,
1626 update_events(struct module_env* env, struct val_env* ve,
1667 if(ta && tp->ds_rrset && key_matches_a_ds(env, ve,
1679 set_tp_times(tp, min_expiry(env, dd), key_ttl(dnskey_rrset), changed);
1687 * @param env: environment with current time
1693 check_holddown(struct module_env* env, struct autr_ta* ta,
1697 if(*env->now < ta->last_change) {
1701 elapsed = *env->now - ta->last_change;
1713 reset_holddown(struct module_env* env, struct autr_ta* ta, int* changed)
1715 ta->last_change = *env->now;
1721 set_trustanchor_state(struct module_env* env, struct autr_ta* ta, int* changed,
1727 reset_holddown(env, ta, changed);
1733 do_newkey(struct module_env* env, struct autr_ta* anchor, int* c)
1736 set_trustanchor_state(env, anchor, c, AUTR_STATE_ADDPEND);
1741 do_addtime(struct module_env* env, struct autr_ta* anchor, int* c)
1746 time_t exceeded = check_holddown(env, anchor, env->cfg->add_holddown);
1752 set_trustanchor_state(env, anchor, c, AUTR_STATE_VALID);
1763 do_remtime(struct module_env* env, struct autr_ta* anchor, int* c)
1765 time_t exceeded = check_holddown(env, anchor, env->cfg->del_holddown);
1769 set_trustanchor_state(env, anchor, c, AUTR_STATE_REMOVED);
1775 do_keyrem(struct module_env* env, struct autr_ta* anchor, int* c)
1778 set_trustanchor_state(env, anchor, c, AUTR_STATE_START);
1781 set_trustanchor_state(env, anchor, c, AUTR_STATE_MISSING);
1786 do_keypres(struct module_env* env, struct autr_ta* anchor, int* c)
1789 set_trustanchor_state(env, anchor, c, AUTR_STATE_VALID);
1794 do_revoked(struct module_env* env, struct autr_ta* anchor, int* c)
1797 set_trustanchor_state(env, anchor, c, AUTR_STATE_REVOKED);
1806 anchor_state_update(struct module_env* env, struct autr_ta* anchor, int* c)
1814 do_newkey(env, anchor, c);
1820 do_keyrem(env, anchor, c);
1822 else do_addtime(env, anchor, c);
1828 do_revoked(env, anchor, c);
1831 do_keyrem(env, anchor, c);
1834 reset_holddown(env, anchor, c);
1841 do_revoked(env, anchor, c);
1844 do_keypres(env, anchor, c);
1849 reset_holddown(env, anchor, c);
1851 else do_remtime(env, anchor, c);
1862 init_zsk_to_ksk(struct module_env* env, struct trust_anchor* tp, int* changed)
1884 set_trustanchor_state(env, anchor, changed,
1894 remove_missing_trustanchors(struct module_env* env, struct trust_anchor* tp,
1916 valid = init_zsk_to_ksk(env, tp, changed);
1930 set_trustanchor_state(env, anchor, changed,
1938 if(env->cfg->keep_missing == 0)
1941 exceeded = check_holddown(env, anchor, env->cfg->keep_missing);
1948 set_trustanchor_state(env, anchor, changed,
1956 do_statetable(struct module_env* env, struct trust_anchor* tp, int* changed)
1963 anchor_state_update(env, anchor, changed);
1965 remove_missing_trustanchors(env, tp, changed);
1971 autr_holddown_exceed(struct module_env* env, struct trust_anchor* tp, int* c)
1977 do_addtime(env, anchor, c);
2012 calc_next_probe(struct module_env* env, time_t wait)
2024 rnd = (time_t)ub_random_max(env->rnd, (long int)rnd);
2025 return (time_t)(*env->now + rest + rnd);
2040 reset_worker_timer(struct module_env* env)
2044 time_t next = (time_t)wait_probe_time(env->anchors);
2046 if(!env->probe_timer)
2048 if(next > *env->now)
2049 tv.tv_sec = (time_t)(next - *env->now);
2053 comm_timer_set(env->probe_timer, &tv);
2059 set_next_probe(struct module_env* env, struct trust_anchor* tp,
2073 lock_basic_lock(&env->anchors->lock);
2074 tp2 = (struct trust_anchor*)rbtree_search(env->anchors->tree, &key);
2077 lock_basic_unlock(&env->anchors->lock);
2084 mold = wait_probe_time(env->anchors);
2085 (void)rbtree_delete(&env->anchors->autr->probe, tp);
2086 tp->autr->next_probe_time = calc_next_probe(env,
2088 (void)rbtree_insert(&env->anchors->autr->probe, &tp->autr->pnode);
2089 mnew = wait_probe_time(env->anchors);
2091 lock_basic_unlock(&env->anchors->lock);
2093 (int)tp->autr->next_probe_time - (int)*env->now);
2095 reset_worker_timer(env);
2102 autr_tp_remove(struct module_env* env, struct trust_anchor* tp,
2130 lock_basic_lock(&env->anchors->lock);
2131 del_tp = (struct trust_anchor*)rbtree_delete(env->anchors->tree, &key);
2132 mold = wait_probe_time(env->anchors);
2133 (void)rbtree_delete(&env->anchors->autr->probe, &key);
2134 mnew = wait_probe_time(env->anchors);
2135 anchors_init_parents_locked(env->anchors);
2136 lock_basic_unlock(&env->anchors->lock);
2144 autr_write_file(env, del_tp);
2150 reset_worker_timer(env);
2154 int autr_process_prime(struct module_env* env, struct val_env* ve,
2174 tp->autr->last_queried = *env->now;
2179 autr_holddown_exceed(env, tp, &changed);
2197 check_contains_revoked(env, ve, tp, dnskey_rrset, &changed, qstate);
2207 tp->autr->last_success = *env->now;
2208 autr_tp_remove(env, tp, dnskey_rrset);
2213 if(!verify_dnskey(env, ve, tp, dnskey_rrset, qstate)) {
2219 autr_write_file(env, tp);
2224 tp->autr->last_success = *env->now;
2232 if(!update_events(env, ve, tp, dnskey_rrset, &changed)) {
2241 if(!do_statetable(env, tp, &changed)) {
2248 if(!set_next_probe(env, tp, dnskey_rrset))
2250 autr_write_file(env, tp);
2259 autr_tp_remove(env, tp, dnskey_rrset);
2351 struct module_env* env = (struct module_env*)arg;
2353 reset_worker_timer(env);
2358 probe_anchor(struct module_env* env, struct trust_anchor* tp)
2363 sldns_buffer* buf = env->scratch_buffer;
2364 qinfo.qname = regional_alloc_init(env->scratch, tp->name, tp->namelen);
2375 (int)tp->autr->next_probe_time - (int)*env->now);
2396 rrset_cache_remove(env->rrset_cache, qinfo.qname, qinfo.qname_len,
2398 key_cache_remove(env->key_cache, qinfo.qname, qinfo.qname_len,
2401 if(!mesh_new_callback(env->mesh, &qinfo, qflags, &edns, buf, 0,
2402 &probe_answer_cb, env, 0)) {
2409 todo_probe(struct module_env* env, time_t* next)
2414 lock_basic_lock(&env->anchors->lock);
2415 if( (el=rbtree_first(&env->anchors->autr->probe)) == RBTREE_NULL) {
2417 lock_basic_unlock(&env->anchors->lock);
2426 if((time_t)tp->autr->next_probe_time > *env->now) {
2428 *next = (time_t)tp->autr->next_probe_time - *env->now;
2430 lock_basic_unlock(&env->anchors->lock);
2435 (void)rbtree_delete(&env->anchors->autr->probe, tp);
2436 tp->autr->next_probe_time = calc_next_probe(env, tp->autr->retry_time);
2437 (void)rbtree_insert(&env->anchors->autr->probe, &tp->autr->pnode);
2438 lock_basic_unlock(&env->anchors->lock);
2444 autr_probe_timer(struct module_env* env)
2452 while( (tp = todo_probe(env, &next_probe)) ) {
2454 probe_anchor(env, tp);
2457 regional_free_all(env->scratch);