DNS diagnostics: ignore spaces in DMARC and DKIM

This commit is contained in:
Michael Kuron 2017-11-18 14:58:21 +01:00
parent 967108c057
commit 8c56c5acda

View File

@ -194,25 +194,31 @@ foreach ($records as $record)
} }
} }
foreach ($currents as $current) { foreach ($currents as &$current) {
$current['type'] == strtoupper($current['type']);
if ($current['type'] != $record[1]) if ($current['type'] != $record[1])
{ {
continue; continue;
} }
elseif ($current['type'] == 'TXT' && strpos($record[0], '_dmarc.') === 0) { elseif ($current['type'] == 'TXT' && strpos($current['txt'], 'v=DMARC1') === 0) {
$current['txt'] = str_replace(' ', '', $current['txt']);
$state = state_optional . '<br />' . $current[$data_field[$current['type']]]; $state = state_optional . '<br />' . $current[$data_field[$current['type']]];
} }
else if ($current['type'] == 'TXT' && strpos($current['txt'], 'v=spf1') === 0) { else if ($current['type'] == 'TXT' && strpos($current['txt'], 'v=spf1') === 0) {
$state = state_optional . '<br />' . $current[$data_field[$current['type']]]; $state = state_optional . '<br />' . $current[$data_field[$current['type']]];
} }
else if ($current['type'] == 'TXT' && strpos($current['txt'], 'v=DKIM1') === 0) {
$current['txt'] = str_replace(' ', '', $current['txt']);
if ($current[$data_field[$current['type']]] == $record[2])
$state = state_good;
}
else if ($current['type'] != 'TXT' && isset($data_field[$current['type']]) && $state != state_good) { else if ($current['type'] != 'TXT' && isset($data_field[$current['type']]) && $state != state_good) {
$state = state_nomatch; $state = state_nomatch;
if ($current[$data_field[$current['type']]] == $record[2]) if ($current[$data_field[$current['type']]] == $record[2])
$state = state_good; $state = state_good;
} }
} }
unset($current);
if (isset($record[3]) && $record[3] == state_optional && ($state == state_missing || $state == state_nomatch)) { if (isset($record[3]) && $record[3] == state_optional && ($state == state_missing || $state == state_nomatch)) {
$state = state_optional; $state = state_optional;