#!/usr/bin/perl
# enumzonessql (C)2008 by Jan-Piet Mens
# Generate zones to include in named.conf or nsd.conf

use strict;
use PowerDNS::Backend::MySQL;

my $params = {
        db_user         => 'pdnsadmin',
        db_pass         => 'hah!',
        db_name         => 'ourpdns',
        db_port         => '3306',
        db_host         => '127.0.0.1',
        mysql_print_error => 1,
        mysql_warn       => 1 };

my %nic = (
    'hu'    => 'hu-nic',
    'dk'    => 'dk-nic',
);

my $pdns = PowerDNS::Backend::MySQL->new($params);

my $zones = $pdns->list_domain_names;

for my $name (@$zones) {
    $name = lc $name;
    my ($pfx, $tld) = split(/\./, $name, 2);
    
    my $xfer = "";
    $xfer = 'allow-transfer { "' . $nic{$tld} . '"; };' . "\n"
        if (defined($nic{$tld}));

#print <<ZoneEnd;
#zone "$name" {
# type slave;
# file "$name";
# masters { 127.0.0.2; };
# $xfer
#};
#ZoneEnd

print <<ZoneEnd;
zone:
  name: "$name"
  zonefile: "$name.zone"
  provide-xfr: 127.0.0.1 NOKEY

ZoneEnd

}

