Skip to content

Commit 57b164e

Browse files
author
Till Brehm
committed
Fixed issue with creation of duplicate DKIM DNS records when mail domain is saved.
1 parent 68effae commit 57b164e

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

interface/web/mail/mail_domain_edit.php

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -440,7 +440,8 @@ function onAfterUpdate() {
440440
$dkim_active = @($this->dataRecord['dkim'] == 'y') ? true : false;
441441
$selector = @($this->dataRecord['dkim_selector'] != $this->oldDataRecord['dkim_selector']) ? true : false;
442442
$dkim_private = @($this->dataRecord['dkim_private'] != $this->oldDataRecord['dkim_private']) ? true : false;
443-
443+
444+
$soaDomain = $this->dataRecord['domain'].'.';
444445
while ((!isset($soa) && (substr_count($soaDomain,'.') > 1))) {
445446
$soa = $app->db->queryOneRecord("SELECT id AS zone, sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other, server_id, ttl, serial FROM dns_soa WHERE active = 'Y' AND origin = ?", $soaDomain);
446447
$soaDomain = preg_replace("/^\w+\./","",$soaDomain);
@@ -474,10 +475,12 @@ private function update_dns($dataRecord, $new_rr) {
474475
// purge old rr-record(s)
475476
$sql = "SELECT * FROM dns_rr WHERE name LIKE ? AND data LIKE 'v=DKIM1%' AND " . $app->tform->getAuthSQL('r') . " ORDER BY serial DESC";
476477
$rec = $app->db->queryAllRecords($sql, '%._domainkey.'.$dataRecord['domain'].'.');
477-
if (is_array($rec[1])) {
478-
for ($i=1; $i < count($rec); ++$i)
479-
$app->db->datalogDelete('dns_rr', 'id', $rec[$i]['id']);
478+
if(is_array($rec)) {
479+
foreach($rec as $r) {
480+
$app->db->datalogDelete('dns_rr', 'id', $r['id']);
481+
}
480482
}
483+
481484
// also delete a dsn-records with same selector
482485
$sql = "SELECT * from dns_rr WHERE name ? AND data LIKE 'v=DKIM1%' AND " . $app->tform->getAuthSQL('r');
483486
$rec = $app->db->queryAllRecords($sql, '._domainkey.'.$dataRecord['dkim_selector'].'.', $dataRecord['domain']);

0 commit comments

Comments
 (0)