knotc failed with exit code " . $code['begin'] . ": " . $output['begin'][0] . ".");
exec(CONF['dns']['knotc_path'] . " zone-" . $action . "set " . $suffix . " " . implode(" ", $cmd), $output['op'], $code['op']);
if ($code['op'] !== 0)
serverError("knotc
failed with exit code " . $code['op'] . ": " . $output['op'][0] . ".");
exec(CONF['dns']['knotc_path'] . " zone-commit " . $suffix, $output['commit'], $code['commit']);
if ($code['commit'] !== 0)
serverError("knotc
failed with exit code " . $code['commit'] . ": " . $output['commit'][0] . ".");
}
function checkIpFormat($ip) {
if (!filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE))
userError("IP address is on the private range.");
if (!filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_RES_RANGE))
userError("IP address is on the reserved range.");
if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4))
return "A";
if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6))
return "AAAA";
userError("IP address malformed.");
}
function checkAbsoluteDomainFormat($domain) {
// If the domain must end with a dot
if (!filter_var($domain, FILTER_VALIDATE_DOMAIN) OR !preg_match("/^([a-z0-9_-]{1,63}\.){2,127}$/", $domain))
userError("Domain malformed.");
}
function checkAction($action) {
if ($action === "delete")
return "un";
else if ($action === "add")
return "";
else
userError("Wrong value for action.");
}