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_at(struct module_env* env, time_t next)
2045 if(!env->probe_timer)
2047 if(next > *env->now)
2048 tv.tv_sec = (time_t)(next - *env->now);
2054 comm_timer_set(env->probe_timer, &tv);
2061 reset_worker_timer(struct module_env* env)
2064 if(!env->anchors)
2066 lock_basic_lock(&env->anchors->lock);
2067 next = wait_probe_time(env->anchors);
2068 lock_basic_unlock(&env->anchors->lock);
2069 reset_worker_timer_at(env, next);
2074 set_next_probe(struct module_env* env, struct trust_anchor* tp,
2088 lock_basic_lock(&env->anchors->lock);
2089 tp2 = (struct trust_anchor*)rbtree_search(env->anchors->tree, &key);
2092 lock_basic_unlock(&env->anchors->lock);
2099 mold = wait_probe_time(env->anchors);
2100 (void)rbtree_delete(&env->anchors->autr->probe, tp);
2101 tp->autr->next_probe_time = calc_next_probe(env,
2103 (void)rbtree_insert(&env->anchors->autr->probe, &tp->autr->pnode);
2104 mnew = wait_probe_time(env->anchors);
2106 lock_basic_unlock(&env->anchors->lock);
2108 (int)tp->autr->next_probe_time - (int)*env->now);
2110 reset_worker_timer_at(env, mnew);
2117 autr_tp_remove(struct module_env* env, struct trust_anchor* tp,
2145 lock_basic_lock(&env->anchors->lock);
2146 del_tp = (struct trust_anchor*)rbtree_delete(env->anchors->tree, &key);
2147 mold = wait_probe_time(env->anchors);
2148 (void)rbtree_delete(&env->anchors->autr->probe, &key);
2149 mnew = wait_probe_time(env->anchors);
2150 anchors_init_parents_locked(env->anchors);
2151 lock_basic_unlock(&env->anchors->lock);
2159 autr_write_file(env, del_tp);
2165 reset_worker_timer_at(env, mnew);
2169 int autr_process_prime(struct module_env* env, struct val_env* ve,
2189 tp->autr->last_queried = *env->now;
2194 autr_holddown_exceed(env, tp, &changed);
2212 check_contains_revoked(env, ve, tp, dnskey_rrset, &changed, qstate);
2222 tp->autr->last_success = *env->now;
2223 autr_tp_remove(env, tp, dnskey_rrset);
2228 if(!verify_dnskey(env, ve, tp, dnskey_rrset, qstate)) {
2234 autr_write_file(env, tp);
2239 tp->autr->last_success = *env->now;
2247 if(!update_events(env, ve, tp, dnskey_rrset, &changed)) {
2256 if(!do_statetable(env, tp, &changed)) {
2263 if(!set_next_probe(env, tp, dnskey_rrset))
2265 autr_write_file(env, tp);
2274 autr_tp_remove(env, tp, dnskey_rrset);
2368 struct module_env* env = (struct module_env*)arg;
2370 reset_worker_timer(env);
2375 probe_anchor(struct module_env* env, struct trust_anchor* tp)
2380 sldns_buffer* buf = env->scratch_buffer;
2381 qinfo.qname = regional_alloc_init(env->scratch, tp->name, tp->namelen);
2392 (int)tp->autr->next_probe_time - (int)*env->now);
2413 rrset_cache_remove(env->rrset_cache, qinfo.qname, qinfo.qname_len,
2415 key_cache_remove(env->key_cache, qinfo.qname, qinfo.qname_len,
2418 if(!mesh_new_callback(env->mesh, &qinfo, qflags, &edns, buf, 0,
2419 &probe_answer_cb, env, 0)) {
2426 todo_probe(struct module_env* env, time_t* next)
2431 lock_basic_lock(&env->anchors->lock);
2432 if( (el=rbtree_first(&env->anchors->autr->probe)) == RBTREE_NULL) {
2434 lock_basic_unlock(&env->anchors->lock);
2443 if((time_t)tp->autr->next_probe_time > *env->now) {
2445 *next = (time_t)tp->autr->next_probe_time - *env->now;
2447 lock_basic_unlock(&env->anchors->lock);
2452 (void)rbtree_delete(&env->anchors->autr->probe, tp);
2453 tp->autr->next_probe_time = calc_next_probe(env, tp->autr->retry_time);
2454 (void)rbtree_insert(&env->anchors->autr->probe, &tp->autr->pnode);
2455 lock_basic_unlock(&env->anchors->lock);
2461 autr_probe_timer(struct module_env* env)
2469 while( (tp = todo_probe(env, &next_probe)) ) {
2471 probe_anchor(env, tp);
2474 regional_free_all(env->scratch);