mirror of
https://github.com/webmin/webmin.git
synced 2026-02-08 08:19:57 +00:00
..otherwise, every second click on the link from the same page, will result in 'too many redirects' error, as referer will equal initial restart target on the second go, ending-up broken
37 lines
925 B
Perl
Executable File
37 lines
925 B
Perl
Executable File
#!/usr/local/bin/perl
|
|
# restart.cgi
|
|
# Restart the running named
|
|
use strict;
|
|
use warnings;
|
|
our (%access, %text, %in);
|
|
|
|
require './bind8-lib.pl';
|
|
&ReadParse();
|
|
$access{'ro'} && &error($text{'restart_ecannot'});
|
|
$access{'apply'} == 1 || $access{'apply'} == 3 ||
|
|
&error($text{'restart_ecannot'});
|
|
&error_setup($text{'restart_err'});
|
|
my $err = &restart_bind();
|
|
&error($err) if ($err);
|
|
|
|
if ($access{'remote'}) {
|
|
# Restart all slaves too
|
|
&error_setup();
|
|
my @slaveerrs = &restart_on_slaves();
|
|
if (@slaveerrs) {
|
|
&error(&text('restart_errslave',
|
|
"<p>".join("<br>", map { "$_->[0]->{'host'} : $_->[1]" }
|
|
@slaveerrs)));
|
|
}
|
|
}
|
|
|
|
&webmin_log("apply");
|
|
my $redir_targ = ($in{'type'} eq "master" ? "edit_master.cgi" :
|
|
$in{'type'} eq "forward" ? "edit_forward.cgi" : "edit_slave.cgi");
|
|
my $zone;
|
|
if ($in{'zone'}) {
|
|
$zone = "?zone=$in{'zone'}";
|
|
}
|
|
&redirect($zone && $in{'return'} ? "$redir_targ$zone" : "");
|
|
|