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

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

diff --git a/server/plugins-available/powerdns_plugin.inc.php b/server/plugins-available/powerdns_plugin.inc.php
index a1e5bf0e8..14c244714 100644
--- a/server/plugins-available/powerdns_plugin.inc.php
+++ b/server/plugins-available/powerdns_plugin.inc.php
@@ -165,7 +165,7 @@ class powerdns_plugin {
 			$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 @@ class powerdns_plugin {
 	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 @@ class powerdns_plugin {
 			$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'");
-- 
GitLab