Code

partially fixing bug #32 / termDNS , filter on the reverse zone
authorzeph <zeph@594d385d-05f5-0310-b6e9-bd551577e9d8>
Mon, 29 Jan 2007 13:33:26 +0000 (13:33 +0000)
committerzeph <zeph@594d385d-05f5-0310-b6e9-bd551577e9d8>
Mon, 29 Jan 2007 13:33:26 +0000 (13:33 +0000)
git-svn-id: https://oss.gonicus.de/repositories/gosa/branches/2.5@5647 594d385d-05f5-0310-b6e9-bd551577e9d8

plugins/admin/systems/class_termDNS.inc

index a7310a89ff2f7a73fdc2113672af2b42983383c5..c4f6f3293691b998909551e7d6c14611d385bfed 100644 (file)
@@ -71,6 +71,16 @@ class termDNS extends plugin
       /* Get Zones  
        */
       $this->Zones        = getAvailableZones($config);
+      //echo '<pre>DEBUG: '.print_r($this->Zones, true).'</pre>';
+
+      $idZones = array_flip($this->Zones);
+
+      $idZones = array_filter($idZones,array($this,"netmaskIsCoherent"));
+      $this->Zones = array_flip($idZones);
+
+      if(count($this->Zones) < 1) $this->Zones = array("" => "- no reverse zone matching you ip -");
+
+      //echo '<pre>DEBUG: '.print_r($this->Zones, true).'</pre>';
 
       /* Get Entry 
        */
@@ -103,6 +113,14 @@ class termDNS extends plugin
     $this->DNSinitially_was_account = $this->DNS_is_account;
   }
 
+  function netmaskIsCoherent($idZone) {
+    $netmask = FlipIp(str_replace(".in-addr.arpa","",getNameFromMix($idZone)));
+    if(!strstr($this->ipHostNumber, $netmask))
+      return false;
+    else 
+      return true;
+  }
+
 
   function getVarsForSaving($attrs) 
   {