if(m == -1)
return 0;
ve = (struct val_env*)worker->env.modinfo[m];
+ lock_basic_lock(&ve->bogus_lock);
r = ve->num_rrset_bogus;
if(!worker->env.cfg->stat_cumulative)
ve->num_rrset_bogus = 0;
+ lock_basic_unlock(&ve->bogus_lock);
return r;
}
+17 September 2008: Wouter
+ - locking for threadsafe bogus rrset counter.
+
16 September 2008: Wouter
- extended-statistics: yesno config option.
- unwanted replies spoof nearmiss detector.
d->ttl = ve->bogus_ttl;
/* leave RR specific TTL: not used for determine
* if RRset timed out and clients see proper value. */
+ lock_basic_lock(&ve->bogus_lock);
ve->num_rrset_bogus++;
+ lock_basic_unlock(&ve->bogus_lock);
}
/* if status updated - store in cache for reuse */
rrset_update_sec_status(env->rrset_cache, rrset, *env->now);
env->modinfo[id] = (void*)val_env;
env->need_to_validate = 1;
val_env->permissive_mode = 0;
+ lock_basic_init(&val_env->bogus_lock);
+ lock_protect(&val_env->bogus_lock, &val_env->num_rrset_bogus,
+ sizeof(val->env->num_rrset_bogus));
if(!val_apply_cfg(env, val_env, env->cfg)) {
log_err("validator: could not apply configuration settings.");
return 0;
if(!env || !env->modinfo[id])
return;
val_env = (struct val_env*)env->modinfo[id];
+ lock_basic_destroy(&val_env->bogus_lock);
anchors_delete(env->anchors);
env->anchors = NULL;
key_cache_delete(val_env->kcache);
*/
size_t* nsec3_maxiter;
+ /** lock on bogus counter */
+ lock_basic_t bogus_lock;
/** number of times rrsets marked bogus */
size_t num_rrset_bogus;
};