use utf8;
use warnings; no warnings "redefine";
use strict;
use Dbase::Globals qw(puny_decode);
use Dbase::Help qw(DoSelect);
use Fehler qw(problem);
use Loader qw(line_printer);
use Socket qw(inet_ntoa);

sub list_person_webspace($;$) {
	my ( $person_id, $kn ) = @_;
	line_printer;
	my(%domain,$maxlength);
	DoSelect {
		my($domain) = @_;
		$domain{ my $decoded = puny_decode $domain } = $domain;
		$maxlength = length $decoded
		  unless defined $maxlength && $maxlength >= length $decoded;
	} <<_;
	SELECT   domain
	FROM     domainkunde
	WHERE    person = $person_id
	     AND ( ende IS NULL OR ende >= UNIX_TIMESTAMP(NOW()) )
	ORDER BY domain
_
	return problem 'Dieser Person sind keine Domains zugeordnet.' unless keys %domain;
	$maxlength += 4;
	for my $decoded ( sort keys %domain ) {
		for ( '', 'www.' ) {
			printf $Db::pr_fh "%${maxlength}s: ", $_ . $decoded;
			if ( my($name,$aliases,$addrtype,$length,@addrs) = gethostbyname $_ . $domain{$decoded} ) {
				if ( length $aliases ) {
					(undef, my @aliases) = split ' ', $aliases;
					print $Db::pr_fh map '= '.puny_decode($_).' ', @aliases, $name;
				}
				print $Db::pr_fh join(', ', map '['.inet_ntoa($_).']', @addrs) . "\n";
			} else {
				print $Db::pr_fh "-\n";
			}
		}
	}
}

1;
