index abc92a23645701766b390aa7c11b55620b1eff80..7ce7c33efc056d19ae9ff4e64543f95d6e317744 100644 (file)
$soa.=" ".$zone[$attr];
}
$obj['sOARecord'] = trim($soa);
$soa.=" ".$zone[$attr];
}
$obj['sOARecord'] = trim($soa);
+ $obj['nSRecord'] = $zone['sOAprimary'];
/* If reverse zone was renamed, move entry
*/
/* If reverse zone was renamed, move entry
*/
/* Add new Records
*/
foreach($zone['RECORDS'] as $rec){
/* 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'];
}
$obj[$rec['type']][] = $rec['value'];
}
*/
foreach($oldZones as $zone) {
$oldDn = "zoneName=".$zone['InitialzoneName'].",".$HostDn;
*/
foreach($oldZones as $zone) {
$oldDn = "zoneName=".$zone['InitialzoneName'].",".$HostDn;
- $del[$oldDn] = "";
+ $del[$oldDn] = $zone;
}
/* Check for entries which must be updated
}
/* Check for entries which must be updated
$del = array();
$move = array();
$del = array();
$move = array();
+ /* Don't go further if there is nothing to do
+ * Is no account / was no account
+ */
+ if(($newEntry['exists'] == false )&& ($oldEntry['exists'] == false)){
+ return(array("move"=>$move,"add"=>$add,"del"=>$del));
+ }
+
$zones = getAvailableZones($config);
$specialAttributes = array("cNAMERecord","pTRRecord");
$newRecords = array(); // Used to remember which records are removed
$zones = getAvailableZones($config);
$specialAttributes = array("cNAMERecord","pTRRecord");
$newRecords = array(); // Used to remember which records are removed
$newEntry['exists'] = false;
}
$newEntry['exists'] = false;
}
- /* Don't go further if there is nothing to do
- * Is no account / was no account
- */
- if(($newEntry['exists'] == false )&& ($oldEntry['exists'] == false)){
- return(array("move"=>$move,"add"=>$add,"del"=>$del));
- }
-
/* If account was edited prepare some
* attributes & arrays ... if required add some
* dns to $move
/* If account was edited prepare some
* attributes & arrays ... if required add some
* dns to $move
/* Check if zoneName has changed
*/
if(count($newEntry['RECORDS'])){
/* Check if zoneName has changed
*/
if(count($newEntry['RECORDS'])){
- if($oldEntry['zoneName'] != $zoneName){
+ if($oldEntry['zoneName'] != $newEntry['zoneName']){
$oldzoneDn = getDNSZoneDN($config,$oldEntry['zoneName']);
$dn = "relativeDomainName=".$oldName.",".$oldzoneDn;
$dn2= "relativeDomainName=".$oldName.",".$zoneDn;
$oldzoneDn = getDNSZoneDN($config,$oldEntry['zoneName']);
$dn = "relativeDomainName=".$oldName.",".$oldzoneDn;
$dn2= "relativeDomainName=".$oldName.",".$zoneDn;
* like pTRRecord or CNAMERecord
*/
if($rec['type'] == "pTRRecord"){
* 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 = $baseObj;
$reverseName = getNameFromMix($reverseNameMix);
$ptrObj['zoneName'] = $reverseName;
- $ptrObj['pTRRecord'] = $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
$add[$PTRdn] = $ptrObj;
}else