Fixed incorrect zone reload and sign #176

This commit is contained in:
Pinga 2024-11-01 18:52:42 +02:00
parent f62b19ef03
commit ff871dd4ae

View file

@ -40,6 +40,8 @@ Coroutine::create(function () use ($pool, $log, $c) {
$sth->execute();
$timestamp = time();
$tlds = [];
while (list($id, $tld) = $sth->fetch(PDO::FETCH_NUM)) {
$tldRE = preg_quote($tld, '/');
$cleanedTld = ltrim(strtolower($tld), '.');
@ -157,62 +159,63 @@ Coroutine::create(function () use ($pool, $log, $c) {
file_put_contents("{$basePath}/{$cleanedTld}.zone", $completed_zone);
if ($c['dns_server'] == 'opendnssec') {
chown("{$basePath}/{$cleanedTld}.zone", 'opendnssec');
chgrp("{$basePath}/{$cleanedTld}.zone", 'opendnssec');
}
$tlds[] = $cleanedTld;
}
if ($c['dns_server'] == 'bind') {
exec("rndc reload {$cleanedTld}.", $output, $return_var);
if ($return_var != 0) {
$log->error('Failed to reload BIND. ' . $return_var);
}
foreach ($tlds as $cleanedTld) {
if ($c['dns_server'] == 'bind') {
exec("rndc reload {$cleanedTld}.", $output, $return_var);
if ($return_var != 0) {
$log->error('Failed to reload BIND. ' . $return_var);
}
exec("rndc notify {$cleanedTld}.", $output, $return_var);
if ($return_var != 0) {
$log->error('Failed to notify secondary servers. ' . $return_var);
}
} elseif ($c['dns_server'] == 'nsd') {
exec("nsd-control reload", $output, $return_var);
if ($return_var != 0) {
$log->error('Failed to reload NSD. ' . $return_var);
}
} elseif ($c['dns_server'] == 'knot') {
exec("knotc reload", $output, $return_var);
if ($return_var != 0) {
$log->error('Failed to reload Knot DNS. ' . $return_var);
}
exec("rndc notify {$cleanedTld}.", $output, $return_var);
if ($return_var != 0) {
$log->error('Failed to notify secondary servers. ' . $return_var);
}
} elseif ($c['dns_server'] == 'nsd') {
exec("nsd-control reload", $output, $return_var);
if ($return_var != 0) {
$log->error('Failed to reload NSD. ' . $return_var);
}
} elseif ($c['dns_server'] == 'knot') {
exec("knotc reload", $output, $return_var);
if ($return_var != 0) {
$log->error('Failed to reload Knot DNS. ' . $return_var);
}
exec("knotc zone-notify {$cleanedTld}.", $output, $return_var);
if ($return_var != 0) {
$log->error('Failed to notify secondary servers. ' . $return_var);
}
} elseif ($c['dns_server'] == 'opendnssec') {
exec("ods-signer sign {$cleanedTld}");
sleep(1);
copy("/var/lib/opendnssec/signed/{$cleanedTld}", "/var/lib/bind/{$cleanedTld}.zone.signed");
exec("knotc zone-notify {$cleanedTld}.", $output, $return_var);
if ($return_var != 0) {
$log->error('Failed to notify secondary servers. ' . $return_var);
}
} elseif ($c['dns_server'] == 'opendnssec') {
chown("{$basePath}/{$cleanedTld}.zone", 'opendnssec');
chgrp("{$basePath}/{$cleanedTld}.zone", 'opendnssec');
exec("rndc reload {$cleanedTld}.", $output, $return_var);
if ($return_var != 0) {
$log->error('Failed to reload BIND. ' . $return_var);
}
exec("ods-signer sign {$cleanedTld}");
sleep(1);
copy("/var/lib/opendnssec/signed/{$cleanedTld}", "/var/lib/bind/{$cleanedTld}.zone.signed");
exec("rndc notify {$cleanedTld}.", $output, $return_var);
if ($return_var != 0) {
$log->error('Failed to notify secondary servers. ' . $return_var);
}
} else {
// Default
exec("rndc reload {$cleanedTld}.", $output, $return_var);
if ($return_var != 0) {
$log->error('Failed to reload BIND. ' . $return_var);
}
exec("rndc reload {$cleanedTld}.", $output, $return_var);
if ($return_var != 0) {
$log->error('Failed to reload BIND. ' . $return_var);
}
exec("rndc notify {$cleanedTld}.", $output, $return_var);
if ($return_var != 0) {
$log->error('Failed to notify secondary servers. ' . $return_var);
exec("rndc notify {$cleanedTld}.", $output, $return_var);
if ($return_var != 0) {
$log->error('Failed to notify secondary servers. ' . $return_var);
}
} else {
// Default
exec("rndc reload {$cleanedTld}.", $output, $return_var);
if ($return_var != 0) {
$log->error('Failed to reload BIND. ' . $return_var);
}
exec("rndc notify {$cleanedTld}.", $output, $return_var);
if ($return_var != 0) {
$log->error('Failed to notify secondary servers. ' . $return_var);
}
}
}