Better return code checking, --force for zone-purge
This commit is contained in:
parent
03e61fad26
commit
5af557f630
4 changed files with 12 additions and 4 deletions
|
@ -66,7 +66,9 @@ function nsDeleteZone($zone) {
|
|||
output(500, 'Failed to remove Knot zone file.');
|
||||
|
||||
// Remove Knot related data
|
||||
exec(CONF['dns']['knotc_path'] . ' zone-purge ' . $zone);
|
||||
exec(CONF['dns']['knotc_path'] . ' --force zone-purge ' . $zone, result_code: $code);
|
||||
if ($code !== 0)
|
||||
output(500, 'Failed to purge zone data.');
|
||||
|
||||
// Remove from database
|
||||
query('delete', 'zones', [
|
||||
|
|
|
@ -22,7 +22,9 @@ if ($code !== 0)
|
|||
usleep(10000);
|
||||
|
||||
// Get the hostname generated by Tor
|
||||
$onion = exec(CONF['ht']['sudo_path'] . ' -u ' . CONF['ht']['tor_user'] . ' ' . CONF['ht']['cat_path'] . ' ' . CONF['ht']['tor_keys_path'] . '/' . $_SESSION['id'] . '/' . $_POST['dir'] . '/hostname');
|
||||
$onion = exec(CONF['ht']['sudo_path'] . ' -u ' . CONF['ht']['tor_user'] . ' ' . CONF['ht']['cat_path'] . ' ' . CONF['ht']['tor_keys_path'] . '/' . $_SESSION['id'] . '/' . $_POST['dir'] . '/hostname', result_code: $code);
|
||||
if ($code !== 0)
|
||||
output(500, 'Unable to read hostname file.');
|
||||
if (preg_match('/^[0-9a-z]{56}\.onion$/D', $onion) !== 1)
|
||||
output(500, 'No onion address found.');
|
||||
|
||||
|
|
|
@ -5,7 +5,9 @@ $_POST['domain'] = formatAbsoluteDomain($_POST['domain']);
|
|||
if (query('select', 'zones', ['zone' => $_POST['domain']], 'zone') !== [])
|
||||
output(403, _('This zone already exists on the service.'));
|
||||
|
||||
exec(CONF['dns']['kdig_path'] . ' ' . ltrim(strstr($_POST['domain'], '.'), '.') . ' NS +short' . (CONF['ns']['local_only_check'] ? (' @' . CONF['reg']['address']) : ''), $parentAuthoritatives);
|
||||
exec(CONF['dns']['kdig_path'] . ' ' . ltrim(strstr($_POST['domain'], '.'), '.') . ' NS +short' . (CONF['ns']['local_only_check'] ? (' @' . CONF['reg']['address']) : ''), $parentAuthoritatives, $code);
|
||||
if ($code !== 0)
|
||||
output(500, 'Unable to query parent name servers.');
|
||||
if ($parentAuthoritatives === [])
|
||||
output(403, _('Parent zone\'s name servers not found.'));
|
||||
foreach ($parentAuthoritatives as $parentAuthoritative)
|
||||
|
|
|
@ -11,7 +11,9 @@ $domain = formatAbsoluteDomain($_POST['subdomain'] . '.' . $_POST['suffix']);
|
|||
if (query('select', 'registry', ['username' => $_SESSION['id'], 'domain' => $domain], 'domain') !== [])
|
||||
output(403, _('The current account already owns this domain.'));
|
||||
|
||||
exec(CONF['dns']['kdig_path'] . ' ' . $domain . ' NS @' . CONF['reg']['address'] . ' +noidn', $results);
|
||||
exec(CONF['dns']['kdig_path'] . ' ' . $domain . ' NS @' . CONF['reg']['address'] . ' +noidn', $results, $code);
|
||||
if ($code !== 0)
|
||||
output(500, 'Unable to query registry\'s name servers.');
|
||||
if (preg_match('/^' . preg_quote($domain, '/') . '[\t ]+[0-9]{1,8}[\t ]+IN[\t ]+NS[\t ]+(?<salt>[0-9a-f]{8})-(?<hash>[0-9a-f]{32})\._transfer-verification\.' . preg_quote(SERVER_NAME, '/') . '\.$/Dm', implode(LF, $results), $matches) !== 1)
|
||||
output(403, _('NS authentication record not found.'));
|
||||
|
||||
|
|
Loading…
Reference in a new issue