{% macro server(servers) %} {% for server in servers if servers is iterable %} server {{ server.prefix }} { {% filter indent(bind9_config_indent, true) %} {% if server.transfer_source is defined and server.transfer_source is mapping %} transfer-source {{ server.transfer_source.address -}} {{- (' port ' + server.transfer_source.port | string) if server.transfer_source.port is defined and server.transfer_source.port -}} {{- (' dscp ' + server.transfer_source.dscp | string) if server.transfer_source.dscp is defined and server.transfer_source.dscp }}; {% endif %} {% if server.transfer_source_v6 is defined and server.transfer_source_v6 is mapping %} transfer-source-v6 {{ server.transfer_source_v6.address -}} {{- (' port ' + server.transfer_source_v6.port | string) if server.transfer_source_v6.port is defined and server.transfer_source_v6.port -}} {{- (' dscp ' + server.transfer_source_v6.dscp | string) if server.transfer_source_v6.dscp is defined and server.transfer_source_v6.dscp }}; {% endif %} {% if server.notify_source_v6 is defined and server.notify_source_v6 %} notify-source-v6 {{- (' ' + server.notify_source_v6.address | string) -}} {{- (' port ' + server.notify_source_v6.port | string) if server.notify_source_v6.port is defined and server.notify_source_v6.port -}} {{- (' dscp ' + server.notify_source_v6.dscp | string) if server.notify_source_v6.dscp is defined and server.notify_source_v6.dscp }}; {% endif %} {% if server.notify_source is defined and server.notify_source %} notify-source {{- (' ' + server.notify_source.address | string) -}} {{- (' port ' + server.notify_source.port | string) if server.notify_source.port is defined and server.notify_source.port -}} {{- (' dscp ' + server.notify_source.dscp | string) if server.notify_source.dscp is defined and server.notify_source.dscp }}; {% endif %} {% if server.query_source_v6 is defined and server.query_source_v6 %} query-source-v6 {{- (' address ' + server.query_source_v6.address | string) if server.query_source_v6.address is defined and server.query_source_v6.address -}} {{- (' port ' + server.query_source_v6.port | string) if server.query_source_v6.port is defined and server.query_source_v6.port -}} {{- (' dscp ' + server.query_source_v6.dscp | string) if server.query_source_v6.dscp is defined and server.query_source_v6.dscp -}}; {% endif %} {% if server.query_source is defined and server.query_source %} query-source {{- (' address ' + server.query_source.address | string) if server.query_source.address is defined and server.query_source.address -}} {{- (' port ' + server.query_source.port | string) if server.query_source.port is defined and server.query_source.port -}} {{- (' dscp ' + server.query_source.dscp | string) if server.query_source.dscp is defined and server.query_source.dscp -}}; {% endif %} {{ ('edns-version ' + server.edns_version | string + ';\n') if server.edns_version is defined and server.edns_version -}} {{ ('padding ' + server.padding | string + ';\n') if server.padding is defined and server.padding -}} {{ ('transfers ' + server.transfers | string + ';\n') if server.transfers is defined and server.transfers -}} {{ ('keys ' + server.keyname | string + ';\n') if server.keyname is defined and server.keyname -}} {{ ('transfer-format ' + server.transfer_format | string + ';\n') if server.transfer_format is defined and server.transfer_format -}} {{ ('edns-udp-size ' + server.edns_udp_size | string + ';\n') if server.edns_udp_size is defined and server.edns_udp_size -}} {{ ('max-udp-size ' + server.max_udp_size | string +';\n') if server.max_udp_size is defined and server.max_udp_size -}} {{ (functions.boolean_option('bogus', server.bogus) + '\n') if server.bogus is defined -}} {{ (functions.boolean_option('edns', server.edns) + '\n') if server.edns is defined -}} {{ (functions.boolean_option('tcp-only', server.tcp_only) + '\n') if server.tcp_only is defined -}} {{ (functions.boolean_option('tcp-keepalive', server.tcp_keepalive) + '\n') if server.tcp_keepalive is defined -}} {{ (functions.boolean_option('provide-ixfr', server.provide_ixfr) + '\n') if server.provide_ixfr is defined -}} {{ (functions.boolean_option('request-expire', server.request_expire) + '\n') if server.request_expire is defined -}} {{ (functions.boolean_option('request-ixfr', server.request_ixfr) + '\n') if server.request_ixfr is defined -}} {{ (functions.boolean_option('request-nsid', server.request_nsid) + '\n') if server.request_nsid is defined -}} {{ (functions.boolean_option('send-cookie', server.send_cookie) + '\n') if server.send_cookie is defined -}} {% endfilter %}}; {% endfor %} {% endmacro %}