use utf8;
use strict;
use warnings; no warnings "redefine";
use Cf qw($MX);
use Fehler qw(warnung);
use Loader qw(dns_resolve line_ja_nein);

my %noris_mx = map +( $_ => undef ), split ' ',
  lc "$MX";    # Anfhrungszeichen als Workaround wegen r/o

# Ja, man müsste hier eigentlich auch Sub-Domains überprüfen, aber den Aufwand
# geben wir uns jetzt nicht, da es hinreichend unwahrscheinlich erscheint, dass
# nur ein MX-RR für eine solche auf uns zeigt.

sub domain_check_mx($$$) {
	my ( $domain, $todo, $done ) = @_;

	my $dns_packet = dns_resolve( $domain, 'MX' ) or return 1;

	grep $_->type eq 'MX' && exists $noris_mx{ lc $_->exchange },
	  my @answers = $dns_packet->answer
	  or return 1;

	warnung(
		join "\n",
		'Für diese Domain ist mindestens einer unserer Mail-Server MX:',
		map( $_->string, @answers ),
		"Dieser wird keine E-Mails mehr dafür annehmen, sobald sie $done ist."
	);

	line_ja_nein( "Domain wirklich $todo", undef, undef, 'nein' );
}

1;
