|
Server : Apache/2.2.2 (Fedora) System : Linux App1.pathumtani.go.th 2.6.20-1.2320.fc5smp #1 SMP Tue Jun 12 19:40:16 EDT 2007 i686 User : apache ( 48) PHP Version : 5.2.9 Disable Function : NONE Directory : /proc/self/root/usr/libexec/webmin/bind8/ |
Upload File : |
#!/usr/bin/perl
# restart_zone.cgi
# Apply changes to one zone only using the ndc command
require './bind8-lib.pl';
&ReadParse();
$access{'ro'} && &error($text{'restart_ecannot'});
$access{'apply'} || &error($text{'restart_ecannot'});
$zone = &get_zone_name($in{'index'}, $in{'view'});
if ($zone->{'view'}) {
# Reload a zone in a view
$dom = $zone->{'name'};
&can_edit_zone($zone) || &error($text{'restart_ecannot'});
$out = &try_cmd("reload '$dom' IN '$zone->{'view'}'");
}
else {
# Just reload one top-level zone
$dom = $zone->{'name'};
&can_edit_zone($zone) || &error($text{'restart_ecannot'});
$out = &try_cmd("reload '$dom' 2>&1 </dev/null");
}
if ($out =~ /not found/i) {
# Zone is not known to BIND yet - do a total reload
$err = &restart_bind();
&error($err) if ($err);
if ($access{'remote'}) {
# Restart all slaves too
&error_setup();
@slaveerrs = &restart_on_slaves();
if (@slaveerrs) {
&error(&text('restart_errslave',
"<p>".join("<br>",
map { "$_->[0]->{'host'} : $_->[1]" }
@slaveerrs)));
}
}
}
elsif ($? || $out =~ /failed|not found|error/i) {
&error(&text('restart_endc', "<tt>$out</tt>"));
}
&webmin_log("apply", $dom);
$tv = $zone->{'type'};
&redirect(($tv eq "master" ? "edit_master.cgi" :
$tv eq "forward" ? "edit_forward.cgi" : "edit_slave.cgi").
"?index=$in{'index'}&view=$in{'view'}");