From 8a072e707ee4e5bbf0ac3b77eb426428f2d6b308 Mon Sep 17 00:00:00 2001
From: wyrie <wyrie@ispconfig3>
Date: Wed, 20 Jan 2010 08:24:27 -0500
Subject: [PATCH] Fixed: FS#1034 - Gentoo portage sync too frequent
---
server/plugins-available/powerdns_plugin.inc.php | 62 ++++++++++++++----------------
1 files changed, 29 insertions(+), 33 deletions(-)
diff --git a/server/plugins-available/powerdns_plugin.inc.php b/server/plugins-available/powerdns_plugin.inc.php
index 7575554..5627d55 100644
--- a/server/plugins-available/powerdns_plugin.inc.php
+++ b/server/plugins-available/powerdns_plugin.inc.php
@@ -127,7 +127,10 @@
$origin = substr($data["new"]["origin"], 0, -1);
$ispconfig_id = $data["new"]["id"];
- $app->db->query("INSERT INTO powerdns.domains (name, type, ispconfig_id) VALUES ('$origin', 'NATIVE', $ispconfig_id)");
+ $serial = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE id = ".$ispconfig_id);
+ $serial_id = $serial["serial"];
+ $app->db->query("INSERT INTO powerdns.domains (name, type, notified_serial, ispconfig_id) VALUES ('$origin', 'MASTER', $serial_id, $ispconfig_id)");
+ //$app->db->query("INSERT INTO powerdns.domains (name, type, ispconfig_id) VALUES ('$origin', 'NATIVE', $ispconfig_id)");
$zone_id = mysql_insert_id();
if(substr($data["new"]["ns"], -1) == '.'){
$ns = substr($data["new"]["ns"], 0, -1);
@@ -138,6 +141,7 @@
$hostmaster = substr($data["new"]["mbox"], 0, -1);
$content = $ns.' '.$hostmaster.' 0';
+ //$content = $ns.' '.$hostmaster.' '.$serial_id.'';
$ttl = $data["new"]["ttl"];
$app->db->query("INSERT INTO powerdns.records (domain_id, name, type, content, ttl, prio, change_date, ispconfig_id) VALUES ($zone_id, '$origin', 'SOA', '$content', $ttl, 0, ".time().", $ispconfig_id)");
@@ -154,7 +158,10 @@
if($data["old"]["active"] == 'Y'){
$origin = substr($data["new"]["origin"], 0, -1);
$ispconfig_id = $data["new"]["id"];
- $app->db->query("UPDATE powerdns.domains SET name = '$origin' WHERE ispconfig_id = $ispconfig_id");
+ $serial = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE id = ".$ispconfig_id);
+ $serial_id = $serial["serial"];
+ //$app->db->query("UPDATE powerdns.domains SET name = '$origin', notified_serial = $serial_id WHERE ispconfig_id = $ispconfig_id");
+ //$app->db->query("UPDATE powerdns.domains SET name = '$origin' WHERE ispconfig_id = $ispconfig_id");
if(substr($data["new"]["ns"], -1) == '.'){
$ns = substr($data["new"]["ns"], 0, -1);
@@ -164,7 +171,8 @@
if($ns == '') $ns = $origin;
$hostmaster = substr($data["new"]["mbox"], 0, -1);
- $content = $ns.' '.$hostmaster.' 0';
+ //$content = $ns.' '.$hostmaster.' 0';
+ $content = $ns.' '.$hostmaster.' '.$serial_id.'';
$ttl = $data["new"]["ttl"];
$app->db->query("UPDATE powerdns.records SET name = '$origin', content = '$content', ttl = $ttl, change_date = ".time()." WHERE ispconfig_id = ".$data["new"]["id"]." AND type = 'SOA'");
} else {
@@ -205,22 +213,16 @@
$type = $data["new"]["type"];
- switch ($type) {
- case "PTR":
- $name = $data["new"]["name"];
- break;
- default:
- if(substr($data["new"]["name"], -1) == '.'){
- $name = substr($data["new"]["name"], 0, -1);
- } else {
- if($data["new"]["name"] == ""){
- $name = $origin;
- } else {
- $name = $data["new"]["name"].'.'.$origin;
- }
- }
- if($name == '') $name = $origin;
+ if(substr($data["new"]["name"], -1) == '.'){
+ $name = substr($data["new"]["name"], 0, -1);
+ } else {
+ if($data["new"]["name"] == ""){
+ $name = $origin;
+ } else {
+ $name = $data["new"]["name"].'.'.$origin;
+ }
}
+ if($name == '') $name = $origin;
switch ($type) {
case "CNAME":
@@ -274,22 +276,16 @@
$type = $data["new"]["type"];
- switch ($type) {
- case "PTR":
- $name = $data["new"]["name"];
- break;
- default:
- if(substr($data["new"]["name"], -1) == '.'){
- $name = substr($data["new"]["name"], 0, -1);
- } else {
- if($data["new"]["name"] == ""){
- $name = $origin;
- } else {
- $name = $data["new"]["name"].'.'.$origin;
- }
- }
- if($name == '') $name = $origin;
+ if(substr($data["new"]["name"], -1) == '.'){
+ $name = substr($data["new"]["name"], 0, -1);
+ } else {
+ if($data["new"]["name"] == ""){
+ $name = $origin;
+ } else {
+ $name = $data["new"]["name"].'.'.$origin;
+ }
}
+ if($name == '') $name = $origin;
switch ($type) {
case "CNAME":
--
Gitblit v1.9.1