/*
 * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
 *
 * SPDX-License-Identifier: MPL-2.0
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0.  If a copy of the MPL was not distributed with this
 * file, you can obtain one at https://mozilla.org/MPL/2.0/.
 *
 * See the COPYRIGHT file distributed with this work for additional
 * information regarding copyright ownership.
 */

include "../../_common/rndc.key";

controls {
	inet 10.53.0.1 port @CONTROLPORT@ allow { any; } keys { rndc_key; };
};

options {
	query-source address 10.53.0.1;
	notify-source 10.53.0.1;
	transfer-source 10.53.0.1;
	port @PORT@;
	tls-port @TLSPORT@;
	allow-new-zones yes;
	pid-file "named.pid";
	listen-on { 10.53.0.1; };
	listen-on port @EXTRAPORT1@ { 10.53.0.1; };
	listen-on tls ephemeral { 10.53.0.1; };
	listen-on-v6 { none; };
	notify no;
	notify-delay 0;
	recursion no;
	allow-transfer { any; };
	dnssec-validation no;
};

view "default" {

	zone "catalog1.example" {
		type primary;
		file "catalog1.example.db";
		allow-transfer { any; };
		allow-update { any; };
		also-notify { 10.53.0.2; };
		notify explicit;
	};

	/* catalog2 is provided by the ns3 primary */

	zone "catalog3.example" {
		type primary;
		file "catalog3.example.db";
		allow-transfer { any; };
		allow-update { any; };
		also-notify { 10.53.0.2; };
		notify explicit;
	};

	zone "catalog4.example" {
		type primary;
		file "catalog4.example.db";
		allow-transfer { any; };
		allow-update { any; };
		also-notify { 10.53.0.2; };
		notify explicit;
	};

	/* catalog5 is missing on purpose */

	zone "catalog6.example" {
		type primary;
		file "catalog6.example.db";
		allow-transfer { any; };
		allow-update { any; };
		also-notify { 10.53.0.2; };
		notify explicit;
		notify-defer 5;
	};

	# No "version" property
	zone "catalog-bad1.example" {
		type primary;
		file "catalog-bad1.example.db";
		allow-transfer { any; };
		allow-update { any; };
		also-notify { 10.53.0.2; };
		notify explicit;
	};

	# Unsupported "version" property
	zone "catalog-bad2.example" {
		type primary;
		file "catalog-bad2.example.db";
		allow-transfer { any; };
		allow-update { any; };
		also-notify { 10.53.0.2; };
		notify explicit;
	};

	# Two RRs in TXT RRset for the "version" property
	zone "catalog-bad3.example" {
		type primary;
		file "catalog-bad3.example.db";
		allow-transfer { any; };
		allow-update { any; };
		also-notify { 10.53.0.2; };
		notify explicit;
	};

	# Type A "version" property
	zone "catalog-bad4.example" {
		type primary;
		file "catalog-bad4.example.db";
		allow-transfer { any; };
		allow-update { any; };
		also-notify { 10.53.0.2; };
		notify explicit;
	};

	# A catalog zone that requires TLS to be used
	zone "catalog-tls.example" {
		type primary;
		file "catalog-tls.example.db";
		allow-transfer transport tls { key tsig_key; };
		allow-update { any; };
		also-notify { 10.53.0.4; };
		notify explicit;
	};
};

view "ch" ch {

	# Non-IN class catalog zone
	zone "catalog-bad5.example" ch {
		type primary;
		file "catalog-bad5.example.db";
		allow-transfer { any; };
		allow-update { any; };
		also-notify { 10.53.0.2; };
		notify explicit;
	};

};

key tsig_key. {
	secret "LSAnCU+Z";
	algorithm @DEFAULT_HMAC@;
};

key next_key. {
	secret "LaAnCU+Z";
	algorithm @DEFAULT_HMAC@;
};
