{%- from "bind/map.jinja" import server with context %}
options {
     directory "/var/cache/bind";
     // If there is a firewall between you and nameservers you want
     // to talk to, you may need to fix the firewall to allow multiple
     // ports to talk. See http://www.kb.cert.org/vuls/id/800113

     // If your ISP provided one or more IP addresses for stable
     // nameservers, you probably want to use them as forwarders.
     // Uncomment the following block, and insert the addresses replacing
     // the all-0's placeholder.

     // forwarders {
     // 0.0.0.0;
     // };

     auth-nxdomain no; # conform to RFC1035
     {%- if server.get('ipv6_enabled', 'False') %}
     listen-on-v6 { {{ server.get('ipv6_listen', 'any') }}; };
     {%- endif %}
};

logging {
     category default { default_syslog; default_debug; };
     category unmatched { null; };

    channel query.log {
        file "/var/log/query.log";
        // Set the severity to dynamic to see all the debug messages.
        severity debug 3;
    };

    category queries { query.log; };
};