\!/ KyuuKazami \!/

Path : /scripts/
Upload :
Current File : //scripts/makesecondary

#!/usr/local/cpanel/3rdparty/bin/perl

use Socket;

my $dnsmaster;

open( CONF, "/etc/wwwacct.conf" ) || die "/etc/wwwacct.conf not found\n";
while (<CONF>) {
    $_ =~ s/\n//g;
    if ( $_ !~ /^;/ ) {
        if ( $_ =~ /DNSMASTER/ ) {
            ( undef, $dnsmaster ) = split( / /, $_ );
        }
    }
}
close(CONF);

$dnsmaster =~ s/\s//g;
my $primarydns = $dnsmaster;

my $xip;
if ( $dnsmaster !~ /\d+\.\d+\.\d+\.\d+/ ) {
    my $thersockaddr = gethostbyname("$dnsmaster");
    if ( $thersockaddr ne "" ) {
        $xip = inet_ntoa($thersockaddr);
    }
    $primarydns = $xip;

}

system("cp -f /etc/named.conf /etc/named.conf.primary");
system("cp -f /etc/named.conf /etc/named.out");

my $noop = 0;
open( NAMEDCONF, ">/etc/named.conf" );
open( SEC,       "/etc/named.out" );
while (<SEC>) {
    next if ( $_ =~ /^\/\// );
    if ( $_ =~ /type master/ ) {
        my $eoz = '';
        $eoz = "	type slave;\n";
        $eoz = $eoz . "	masters {\n";
        $eoz = $eoz . "		$primarydns;\n";
        $eoz = $eoz . "	};\n";
        print NAMEDCONF $eoz;
    }
    elsif ( $_ =~ /notify yes/ ) {
        print "";
    }
    elsif ( $_ =~ /allow-update/ ) {
        print "";
    }
    elsif ( $_ =~ /file[\s\t]*\"([^\"]+)\"/ ) {
        if ( $1 !~ /^\// ) {
            print NAMEDCONF "        file \"/var/named/$1\";\n";
        }
        else {
            print NAMEDCONF "$_";
        }
    }
    elsif ( $_ =~ /also-notify/ ) {
        $noop = 1;
    }
    elsif ( $_ =~ /};/ ) {
        if ( $noop ne "1" ) {
            print NAMEDCONF $_;
        }
        $noop = 0;
    }
    else {
        if ( $noop ne "1" ) {
            print NAMEDCONF $_;
        }
    }
}
close(SEC);
close(NAMEDCONF);

system("/usr/sbin/ndc reload");

@KyuuKazami