Merge pull request #4114 from geektoor/fix-spf-check

[Web] Fix: spf record validation failed with redirect
master
Michael Kuron 2021-05-30 14:18:27 +02:00 committed by GitHub
commit a6e694bd98
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 8 additions and 8 deletions

View File

@ -24,7 +24,7 @@ function get_spf_allowed_hosts($check_domain, $expand_ipv6 = false) {
$mod = explode('=', $mech); $mod = explode('=', $mech);
if ($mod[0] == 'redirect') // handle a redirect if ($mod[0] == 'redirect') // handle a redirect
{ {
$hosts = get_spf_allowed_hosts($mod[1]); $hosts = get_spf_allowed_hosts($mod[1],true);
return $hosts; return $hosts;
} }
} }
@ -79,13 +79,13 @@ function get_spf_allowed_hosts($check_domain, $expand_ipv6 = false) {
} }
foreach ($hosts as &$host) { foreach ($hosts as &$host) {
if (filter_var($host, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) { if (filter_var($host, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) {
if ($expand_ipv6 === true) { if ($expand_ipv6 === true) {
$hex = unpack("H*hex", inet_pton($host)); $hex = unpack("H*hex", inet_pton($host));
$host = substr(preg_replace("/([A-f0-9]{4})/", "$1:", $hex['hex']), 0, -1); $host = substr(preg_replace("/([A-f0-9]{4})/", "$1:", $hex['hex']), 0, -1);
} }
else { else {
$host = $host; $host = $host;
} }
} }
} }
return $hosts; return $hosts;