From 0614b51e1bf71ac4db7ef02857a2286468e2b42b Mon Sep 17 00:00:00 2001
From: Carsten Schoene <ispconfig-dev@j0ke.net>
Date: Sun, 29 Dec 2013 19:51:02 -0500
Subject: [PATCH] fix duplicate entry caused in rr_insert

---
 server/plugins-available/powerdns_plugin.inc.php |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/server/plugins-available/powerdns_plugin.inc.php b/server/plugins-available/powerdns_plugin.inc.php
index a1e5bf0..14c2447 100644
--- a/server/plugins-available/powerdns_plugin.inc.php
+++ b/server/plugins-available/powerdns_plugin.inc.php
@@ -165,7 +165,7 @@
 			$this->soa_delete($event_name, $data);
 		} else {
 			$exists = $app->db->queryOneRecord("SELECT * FROM powerdns.domains WHERE ispconfig_id = ".$data["new"]["id"]);
-			if($data["old"]["active"] == 'Y' && $exists){
+			if($data["old"]["active"] == 'Y' && is_array($exists)){
 				$origin = substr($data["new"]["origin"], 0, -1);
 				$ispconfig_id = $data["new"]["id"];
 
@@ -273,6 +273,8 @@
 	function rr_insert($event_name, $data) {
 		global $app, $conf;
 		if($data["new"]["active"] != 'Y') return;
+		$exists = $app->db->queryOneRecord("SELECT * FROM powerdns.records WHERE ispconfig_id = ".$data["new"]["id"]);
+		if ( is_array($exists) ) return;
 
 		$zone = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE id = ".$data["new"]["zone"]);
 		$origin = substr($zone["origin"], 0, -1);
@@ -339,7 +341,7 @@
 			$this->rr_delete($event_name, $data);
 		} else {
 			$exists = $app->db->queryOneRecord("SELECT * FROM powerdns.records WHERE ispconfig_id = ".$data["new"]["id"]);
-			if($data["old"]["active"] == 'Y' && $exists){
+			if($data["old"]["active"] == 'Y' && is_array($exists)){
 				$zone = $app->db->queryOneRecord("SELECT * FROM dns_soa WHERE id = ".$data["new"]["zone"]);
 				$origin = substr($zone["origin"], 0, -1);
 				$powerdns_zone = $app->db->queryOneRecord("SELECT * FROM powerdns.domains WHERE ispconfig_id = ".$data["new"]["zone"]." AND type = 'MASTER'");

--
Gitblit v1.9.1