Code

Added a check to the dns service which ensures that we do not use reverse zones twice.
authorhickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8>
Fri, 19 Jun 2009 08:59:13 +0000 (08:59 +0000)
committerhickert <hickert@594d385d-05f5-0310-b6e9-bd551577e9d8>
Fri, 19 Jun 2009 08:59:13 +0000 (08:59 +0000)
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@13738 594d385d-05f5-0310-b6e9-bd551577e9d8

gosa-plugins/dns/admin/systems/services/dns/class_servDNSeditZone.inc

index 695aa5e523b3c96226ca73628f12f0f1badc4bff..b61601c6e6b3035e864cf780bd6673bfcbe48db6 100644 (file)
@@ -453,6 +453,21 @@ class servdnseditZone extends plugin
     if(!tests::is_ip($addr)){
       $message[] = msgPool::invalid(_("Network address"));
     }
+
+    // Ensure that we do not use reverse zones twice. 
+    //  this currently not supported by GOsa.
+    $zones = DNS::getDNSZoneEntries($this->config,$this->dn);
+    switch($this->NetworkClass){
+      case 'C' : $test = preg_replace("/\.[0-9]*$/","",$this->ReverseZone);break;
+      case 'B' : $test = preg_replace("/\.[0-9]*\.[0-9]*$/","",$this->ReverseZone);break;
+      case 'A' : $test = preg_replace("/\.[0-9]*\.[0-9]*\.[0-9]*$/","",$this->ReverseZone);break;
+      default : trigger_error("Invalid network class given '".$this->NetworkClass."'");
+    }
+    foreach($zones as $name => $data){
+      if($data['ReverseZone'] == $test){
+        $message[] = msgPool::duplicated(_("Network address"));
+      }
+    }
  
     /* Check if given address matches selected network class */
     switch($this->NetworkClass){