Просмотр исходного кода

knotcExec: abort transition on failure

Miraty 3 лет назад
Родитель
Сommit
a6873d6ea6
1 измененных файлов с 6 добавлено и 2 удалено
  1. 6 2
      fn/dns.php

+ 6 - 2
fn/dns.php

@@ -8,12 +8,16 @@ function knotcExec($suffix, $cmd) {
 		serverError("<code>knotc</code> failed with exit code <samp>" . $code['begin'] . "</samp>: <samp>" . $output['begin'][0] . "</samp>.");
 
 	exec(CONF['dns']['knotc_path'] . " zone-" . $action . "set " . $suffix . " " . implode(" ", $cmd), $output['op'], $code['op']);
-	if ($code['op'] !== 0)
+	if ($code['op'] !== 0) {
+		exec(CONF['dns']['knotc_path'] . " zone-abort " . $suffix);
 		serverError("<code>knotc</code> failed with exit code <samp>" . $code['op'] . "</samp>: <samp>" . $output['op'][0] . "</samp>.");
+	}
 
 	exec(CONF['dns']['knotc_path'] . " zone-commit " . $suffix, $output['commit'], $code['commit']);
-	if ($code['commit'] !== 0)
+	if ($code['commit'] !== 0) {
+		exec(CONF['dns']['knotc_path'] . " zone-abort " . $suffix);
 		serverError("<code>knotc</code> failed with exit code <samp>" . $code['commit'] . "</samp>: <samp>" . $output['commit'][0] . "</samp>.");
+	}
 }
 
 function checkIpFormat($ip) {