Skip to content

Commit 28ceb62

Browse files
author
Marius Burkard
committed
Merge branch '6083-fix-dmarc-query' into 'develop'
Fix query, dns_rr.name does not hold an fqdn Closes #6083 See merge request ispconfig/ispconfig3!1424
2 parents 327ed8e + 366b1ad commit 28ceb62

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

interface/web/dns/dns_dmarc_edit.php

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -226,16 +226,20 @@ function onSubmit() {
226226

227227
$domain_name = rtrim($soa['origin'], '.');
228228
// DMARC requieres at least one active dkim-record...
229-
$sql = "SELECT * FROM dns_rr WHERE name LIKE ? AND type='TXT' AND data like 'v=DKIM1;%' AND active='Y'";
230-
$temp = $app->db->queryAllRecords($sql, '%._domainkey.'.$domain_name.'.');
229+
$sql = "SELECT * FROM dns_rr
230+
LEFT JOIN dns_soa ON (dns_rr.zone=dns_soa.id)
231+
WHERE dns_soa.origin = ? AND dns_rr.name LIKE ? AND type='TXT' AND data like 'v=DKIM1;%' AND dns_rr.active='Y'";
232+
$temp = $app->db->queryAllRecords($sql, $soa['origin'], '%._domainkey%');
231233
if (empty($temp)) {
232234
if (isset($app->tform->errorMessage )) $app->tform->errorMessage = '<br/>' . $app->tform->errorMessage;
233235
$app->tform->errorMessage .= $app->tform->wordbook['dmarc_no_dkim_txt'].$email;
234236
}
235237

236238
// ... and an active spf-record (this breaks the current draft but DMARC is useless if you use DKIM or SPF
237-
$sql = "SELECT * FROM dns_rr WHERE name LIKE ? AND type='TXT' AND (data LIKE 'v=spf1%' AND active = 'y')";
238-
$temp = $app->db->queryAllRecords($sql, $domain_name.'.');
239+
$sql = "SELECT * FROM dns_rr
240+
LEFT JOIN dns_soa ON (dns_rr.zone=dns_soa.id)
241+
WHERE dns_soa.origin = ? AND (dns_rr.name LIKE ? OR dns_rr.name = '') AND type='TXT' AND data like 'v=spf1%' AND dns_rr.active='Y'";
242+
$temp = $app->db->queryAllRecords($sql, $soa['origin'], $soa['origin']);
239243
// abort if more than 1 active spf-records (backward-compatibility)
240244
if (is_array($temp[1])) {
241245
if (isset($app->tform->errorMessage )) $app->tform->errorMessage = '<br/>' . $app->tform->errorMessage;

0 commit comments

Comments
 (0)