mirror of
https://github.com/NLnetLabs/unbound.git
synced 2026-09-02 05:08:58 +02:00
- zonemd-check: yesno option, default no, enables the processing
of ZONEMD records for that zone.
This commit is contained in:
@@ -1755,6 +1755,8 @@ zonemd_offline_verify(struct auth_zone* z, struct module_env* env_for_val,
|
||||
{
|
||||
struct module_env env;
|
||||
time_t now = 0;
|
||||
if(!z->zonemd_check)
|
||||
return;
|
||||
env = *env_for_val;
|
||||
env.scratch_buffer = sldns_buffer_new(env.cfg->msg_buffer_size);
|
||||
if(!env.scratch_buffer) {
|
||||
@@ -2096,6 +2098,7 @@ auth_zones_cfg(struct auth_zones* az, struct config_auth* c)
|
||||
z->for_downstream = c->for_downstream;
|
||||
z->for_upstream = c->for_upstream;
|
||||
z->fallback_enabled = c->fallback_enabled;
|
||||
z->zonemd_check = c->zonemd_check;
|
||||
z->zonemd_reject_absence = c->zonemd_reject_absence;
|
||||
if(c->isrpz && !z->rpz){
|
||||
if(!(z->rpz = rpz_create(c))){
|
||||
@@ -8234,6 +8237,8 @@ void auth_zone_verify_zonemd(struct auth_zone* z, struct module_env* env,
|
||||
int is_insecure = 0;
|
||||
/* verify the ZONEMD if present.
|
||||
* If not present check if absence is allowed by DNSSEC */
|
||||
if(!z->zonemd_check)
|
||||
return;
|
||||
|
||||
/* if zone is under a trustanchor */
|
||||
/* is it equal to trustanchor - get dnskey's verified */
|
||||
@@ -8302,6 +8307,10 @@ void auth_zones_pickup_zonemd_verify(struct auth_zones* az,
|
||||
lock_rw_rdlock(&az->lock);
|
||||
RBTREE_FOR(z, struct auth_zone*, &az->ztree) {
|
||||
lock_rw_wrlock(&z->lock);
|
||||
if(!z->zonemd_check) {
|
||||
lock_rw_unlock(&z->lock);
|
||||
continue;
|
||||
}
|
||||
key.dclass = z->dclass;
|
||||
key.namelabs = z->namelabs;
|
||||
if(z->namelen > sizeof(savezname)) {
|
||||
|
||||
@@ -132,6 +132,8 @@ struct auth_zone {
|
||||
/** for upstream: this zone answers queries that unbound intends to
|
||||
* send upstream. */
|
||||
int for_upstream;
|
||||
/** check ZONEMD records */
|
||||
int zonemd_check;
|
||||
/** reject absence of ZONEMD records */
|
||||
int zonemd_reject_absence;
|
||||
/** RPZ zones */
|
||||
|
||||
Reference in New Issue
Block a user