Merge remote-tracking branch 'origin/master'

This commit is contained in:
iliajie
2023-02-14 17:50:14 +02:00

View File

@@ -144,6 +144,15 @@ if (!defined($get_config_parent_cache{$file})) {
return $get_config_parent_cache{$file};
}
# clear_config_cache()
# Clear all in-memory caches of the BIND config
sub clear_config_cache
{
undef(@get_config_cache);
undef(%get_config_parent_cache);
undef(%lines_count);
}
# read_config_file(file, [expand includes])
# Reads a config file and returns an array of values
sub read_config_file
@@ -1558,6 +1567,9 @@ if ($slave && $config{'slave_file_perms'}) {
elsif ($config{'file_perms'}) {
$perms = oct($config{'file_perms'});
}
elsif ($user eq "0" || $user eq "root") {
$perms = 0775;
}
&set_ownership_permissions($user, $group, $perms, $file);
}
@@ -3000,19 +3012,10 @@ foreach my $slave (&list_slave_servers()) {
}
my $sver = &remote_foreign_call($slave, "bind8",
"get_webmin_version");
my $pidfile;
if ($sver >= 1.140) {
# Call new function to get PID file from slave
$pidfile = &remote_foreign_call(
$slave, "bind8", "get_pid_file");
$pidfile = &remote_foreign_call(
$slave, "bind8", "make_chroot", $pidfile, 1);
}
else {
push(@slaveerrs, [ $slave, &text('restart_eversion',
$slave->{'host'}, 1.140) ]);
next;
}
my $pidfile = &remote_foreign_call(
$slave, "bind8", "get_pid_file");
$pidfile = &remote_foreign_call(
$slave, "bind8", "make_chroot", $pidfile, 1);
# Read the PID and restart
my $pid = &remote_foreign_call($slave, "bind8",
@@ -3032,6 +3035,32 @@ foreach my $slave (&list_slave_servers()) {
return @slaveerrs;
}
# restart_zone_on_slaves(domain, [&slave-hostnames])
# Re-load a zone on all slave servers
sub restart_zone_on_slaves
{
my ($dom, $onslaves) = @_;
my %on = map { $_, 1 } @$onslaves;
&remote_error_setup(\&slave_error_handler);
my @slaveerrs;
foreach my $slave (&list_slave_servers()) {
next if (%on && !$on{$slave->{'host'}});
&remote_foreign_require($slave, "bind8", "bind8-lib.pl");
if ($slave_error) {
push(@slaveerrs, [ $slave, $slave_error ]);
next;
}
my $err = &remote_foreign_call($slave, "bind8", "restart_zone", $dom);
if ($err) {
push(@slaveerrs, [ $slave, &text('restart_esig2',
$slave->{'host'}, $err) ]);
}
}
&remote_error_setup();
return @slaveerrs;
}
sub slave_error_handler
{
$slave_error = $_[0];