diff --git a/data/Dockerfiles/sogo/bootstrap-sogo.sh b/data/Dockerfiles/sogo/bootstrap-sogo.sh index 77fad5313..4bd9d5706 100755 --- a/data/Dockerfiles/sogo/bootstrap-sogo.sh +++ b/data/Dockerfiles/sogo/bootstrap-sogo.sh @@ -1,7 +1,10 @@ #!/bin/bash # Wait for MySQL to warm-up -while mysqladmin ping --host mysql -u${DBUSER} -p${DBPASS}${DBPASS} --silent; do +while ! mysqladmin ping --host mysql -u${DBUSER} -p${DBPASS} --silent; do + echo "Waiting for database to come up..." + sleep 2 +done # Wait until port becomes free and send sig until ! nc -z sogo-mailcow 20000; @@ -101,5 +104,3 @@ chown sogo:sogo -R /var/lib/sogo/ chmod 600 /var/lib/sogo/GNUstep/Defaults/sogod.plist exec gosu sogo /usr/sbin/sogod - -done diff --git a/data/web/inc/ajax/dns_diagnostics.php b/data/web/inc/ajax/dns_diagnostics.php index 43d3ea5fa..d6c989b3e 100644 --- a/data/web/inc/ajax/dns_diagnostics.php +++ b/data/web/inc/ajax/dns_diagnostics.php @@ -73,6 +73,9 @@ if (!isset($autodiscover_config['sieve'])) { } // Init records array +$spf_link = 'SPF Record Syntax'; +$dmarc_link = 'DMARC Assistant'; + $records = array(); $records[] = array( $mailcow_hostname, @@ -164,13 +167,13 @@ $records[] = array( $records[] = array( $domain, 'TXT', - 'SPF Record Syntax', + $spf_link, state_optional ); $records[] = array( '_dmarc.' . $domain, 'TXT', - 'DMARC Assistant', + $dmarc_link, state_optional ); @@ -337,16 +340,18 @@ foreach ($records as $record) { foreach ($currents as &$current) { if ($current['type'] == 'TXT' && stripos($current['txt'], 'v=dmarc') === 0 && - stripos($current['host'], '_dmarc') === 0) { + $record[2] == $dmarc_link) { $current['txt'] = str_replace(' ', '', $current['txt']); $state = $current[$data_field[$current['type']]] . state_optional; } elseif ($current['type'] == 'TXT' && - stripos($current['txt'], 'v=spf') === 0) { + stripos($current['txt'], 'v=spf' && + $record[2] == $spf_link) === 0) { $state = $current[$data_field[$current['type']]] . state_optional; } elseif ($current['type'] == 'TXT' && - stripos($current['txt'], 'v=dkim') === 0) { + stripos($current['txt'], 'v=dkim') === 0 && + stripos($record[2], 'v=dkim') === 0) { $current['txt'] = str_replace(' ', '', $current['txt']); if ($current[$data_field[$current['type']]] == $record[2]) { $state = state_good;