$Database = new Database_PDO();
$User = new User($Database);
$Admin = new Admin($Database);
$Result = new Result();
$PowerDNS = new PowerDNS($Database);
# verify that user is logged in
$User->check_user_session();
# strip input tags
$_POST = $Admin->strip_input_tags($_POST);
# validate csrf cookie
$User->csrf_cookie("validate", "domain", $_POST['csrf_cookie']) === false ? $Result->show("danger", _("Invalid CSRF cookie"), true) : "";
# checks / validation
if ($_POST['action'] != "delete") {
    // fqdn
    if ($_POST['action'] == "add") {
        if ($Result->validate_hostname($_POST['name']) === false) {
            $Result->show("danger", "Invalid domain name", true);
        }
    }
    // master
    if (strlen($_POST['master']) > 0) {
        // if multilpe masters
        if (strpos($_POST['master'], ",") !== false) {
            // to array and trim, check each
            $masters = array_filter(explode(",", $_POST['master']));
            foreach ($masters as $m) {
                if (!filter_var($m, FILTER_VALIDATE_IP)) {
                    $Result->show("danger", "Master must be an IP address" . " - " . $m, true);
                }
            }
        } else {
    $PowerDNS->domain_edit("add", array("name" => $zone, "type" => "NATIVE"));
    // create default records
    $PowerDNS->create_default_records($values);
}
// remove existing records and links
$PowerDNS->remove_all_ptr_records($domain->id);
$Addresses->ptr_unlink_subnet_addresses($subnet->id);
// fetch all hosts
$hosts = $Addresses->fetch_subnet_addresses($subnet->id, "ip_addr", "asc");
// create PTR records
if (sizeof($hosts) > 0) {
    foreach ($hosts as $h) {
        // ignore PTR
        if ($h->PTRignore == "1") {
            $ignored[] = $h;
        } elseif ($Result->validate_hostname($h->dns_name) !== false) {
            // formulate new record
            $record = $PowerDNS->formulate_new_record($domain->id, $PowerDNS->get_ip_ptr_name($h->ip), "PTR", $h->dns_name, $values['ttl']);
            // insert record
            $PowerDNS->add_domain_record($record, false);
            // link
            $Addresses->ptr_link($h->id, $PowerDNS->lastId);
            // ok
            $success[] = $h;
        } else {
            $failures[] = $h;
        }
    }
} else {
    $empty = true;
}