$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; }