Commit 922a807c authored by Benoit Mortier's avatar Benoit Mortier
Browse files

Revert "Fixes #5560 Base primary server search on a records to be able to find...

Revert "Fixes #5560 Base primary server search on a records to be able to find it even in a other zone"

This reverts commit c01d4a6f.
Showing with 5 additions and 23 deletions
+5 -23
......@@ -86,7 +86,9 @@ class dnsManagement extends simpleManagement
foreach ($targets as $zoneDn) {
$entry = $this->getHeadpage()->getEntry($zoneDn);
list ($fqdn) = explode(' ', $entry['sOARecord'][0]);
$servers = static::findServerByFQDN($fqdn, $zoneDn);
$zoneName = $entry['zoneName'][0];
$serverCn = preg_replace('/\.'.preg_quote($zoneName, '/').'$/', '', $fqdn);
$servers = objects::ls('server', array('cn' => 1, 'macAddress' => 1), NULL, '(&(cn='.ldap_escape_f($serverCn).')(fdDNSZoneDn='.ldap_escape_f($zoneDn).'))');
if (count($servers) > 1) {
msg_dialog::display(_('Could not run ldap2zone'), _('More than one server matches the SOA'), ERROR_DIALOG);
} elseif (count($servers) == 0) {
......@@ -113,26 +115,5 @@ class dnsManagement extends simpleManagement
}
}
}
public static function findServerByFQDN($fqdn, $zoneDn = NULL)
{
global $config;
list ($serverCn, $serverZone) = explode('.', $fqdn, 2);
$ldap = $config->get_ldap_link();
$ldap->cd($config->current['BASE']);
$ips = array();
$ldap->search('(&(aRecord=*)(relativeDomainName='.$serverCn.')(zoneName='.$serverZone.'))', array('aRecord'));
while ($attrs = $ldap->fetch()) {
$ips[] = ldap_escape_f($attrs['aRecord'][0]);
}
if (!empty($ips)) {
$filter = '(|(ipHostNumber='.implode(')(ipHostNumber=', $ips).'))';
if ($zoneDn !== NULL) {
$filter = '(&'.$filter.'(fdDNSZoneDn='.ldap_escape_f($zoneDn).'))';
}
return objects::ls('server', NULL, NULL, $filter);
}
return array();
}
}
?>
......@@ -106,7 +106,8 @@ class dashboardNetwork extends simplePlugin
$zones = objects::ls('dnsZone', array('zoneName' => 1, 'sOARecord' => 1));
foreach ($zones as $zonedn => $zone) {
list ($fqdn) = explode(' ', $zone['sOARecord']);
$search = dnsManagement::findServerByFQDN($fqdn, $zonedn);
list ($cn) = explode('.', $fqdn);
$search = objects::ls('server', NULL, NULL, '(&(cn='.$cn.')(fdDNSZoneDn='.$zonedn.'))');
foreach ($search as $dn => $name) {
if (!isset($servers[$dn])) {
$servers[$dn] = array(
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment