# redis-server-port: 6379
# # timeout (in ms) for communication with the redis server
# redis-timeout: 100
+
+# Response Policy Zones
+# RPZ policies. Applied in order of configuration. QNAME trigger is the only
+# supported trigger. Supported actions are: NXDOMAIN, NODATA, PASSTHRU, DROP and
+# Local Data. Policy can be loaded from file or using zone transfer.
+# rpz:
+# name: "rpz.example.com"
+# zonefile: "rpz.example.com"
+# rpz-action-override: cname
+# rpz-cname-override: www.example.org
+# rpz-log: yes
+# rpz-log-name: "example policy"
+# tags: "example"
local_zones_delete(r->local_zones);
regional_destroy(r->region);
free(r->taglist);
+ free(r->log_name);
free(r);
}
free(r);
return 0;
}
- r->taglist = p->rpz_taglist;
r->taglistlen = p->rpz_taglistlen;
+ r->taglist = memdup(p->rpz_taglist, r->taglistlen);
if(p->rpz_action_override) {
r->action_override = rpz_config_to_action(p->rpz_action_override);
- free(p->rpz_action_override);
- p->rpz_action_override = NULL;
}
else
r->action_override = RPZ_NO_OVERRIDE_ACTION;
if(sldns_str2wire_dname_buf(p->rpz_cname, nm, &nmlen) != 0) {
log_err("cannot parse RPZ cname override: %s",
p->rpz_cname);
- free(p->rpz_cname);
free(r);
return 0;
}
- free(p->rpz_cname);
- p->rpz_cname = NULL;
r->cname_override = new_cname_override(r->region, nm, nmlen);
if(!r->cname_override) {
free(r);
}
}
r->log = p->rpz_log;
- r->log_name = p->rpz_log_name;
+ r->log_name = strdup(p->rpz_log_name);
return r;
}
config_delstrlist(p->urls);
config_delstrlist(p->allow_notify);
free(p->zonefile);
- if(p->rpz_taglist)
- free(p->rpz_taglist);
+ free(p->rpz_taglist);
+ free(p->rpz_action_override);
+ free(p->rpz_cname);
+ free(p->rpz_log_name);
free(p);
}