Code

* Code cleanup for non pre-defined ttag variable
[gosa.git] / include / functions_dns.inc
index c5b507d7c5e7362d533ba65b6d7e5bcf0958ce5b..e1cda20a0af871f8972d184bdf70ac72d122c6ce 100644 (file)
@@ -250,6 +250,7 @@ function getDNSZoneEntriesDiff($config,$newZones,$HostDn)
       $soa.=" ".$zone[$attr];
     }  
     $obj['sOARecord'] = trim($soa);
+    $obj['nSRecord'] = $zone['sOAprimary'];
 
     /* If reverse zone was renamed, move entry 
      */
@@ -276,6 +277,9 @@ function getDNSZoneEntriesDiff($config,$newZones,$HostDn)
     /* Add new Records 
      */
     foreach($zone['RECORDS'] as $rec){
+      if(!isset($obj[$rec['type']])||!is_array($obj[$rec['type']])){
+        $obj[$rec['type']] = array();
+      }
       $obj[$rec['type']][] = $rec['value'];
     }
 
@@ -306,7 +310,7 @@ function getDNSZoneEntriesDiff($config,$newZones,$HostDn)
    */
   foreach($oldZones as $zone)  {
     $oldDn = "zoneName=".getNameFromMix($zone['InitialzoneName']).",".$HostDn;
-    $del[$oldDn] = "";
+    $del[$oldDn] = $zone;
   }
 
   /* Check for entries which must be updated 
@@ -566,12 +570,16 @@ function getDNSHostEntriesDiff($config,$oldName,$newEntry,$newName)
      *  like pTRRecord or CNAMERecord
      */
     if($rec['type']  == "pTRRecord"){
-      $PTRdn= "relativeDomainName=".$rec['value'].",".$baseDn;
+      $PTRdn= "relativeDomainName=".FlipIP($rec['value']).",".$baseDn;
       $ptrObj = $baseObj;
       $reverseName = getNameFromMix($reverseNameMix);
       $ptrObj['zoneName']           = $reverseName;
-      $ptrObj['pTRRecord']          = preg_replace("/\.\.$/",".",$newName.".".$zoneName.".");
-      $ptrObj['relativeDomainName'] = $rec['value'];
+      if(!preg_match("/\.$/",$newName)){
+        $ptrObj['pTRRecord']          = preg_replace("/\.\.$/",".",$newName.".".$zoneName.".");
+      }else{
+        $ptrObj['pTRRecord']          = preg_replace("/\.\.$/",".",$newName.".");
+      }
+      $ptrObj['relativeDomainName'] = FlipIP($rec['value']);
     
       $add[$PTRdn] = $ptrObj;
     }else