use utf8;
use warnings; no warnings "redefine";
use strict;
use Loader qw(walk_ip);
use Dbase::Help qw(DoFn);
use Dbase::IP;

### hole Anzahl freier IP-Adressen

sub get_free_ip($;\@\@) {
	my($idi,$nfree,$first) = @_;
	$nfree = do { my @x; \@x } unless ref $nfree;
	$first = do { my @x; \@x } unless ref $first;

	my($addr,$bits) = DoFn("select ip6,bits from ipkunde where id = $idi and (ende is NULL or ende > UNIX_TIMESTAMP(NOW()))");
	return 0 unless $bits;
	$addr = Dbase::IP->new_db($addr,$bits);
	my $sum = 0;

	walk_ip($addr,sub {
		my($id,$adr)=@_;
		$nfree->[$adr->db_bits]++;
		$first->[$adr->db_bits] = $adr unless $first->[$adr->db_bits];
		$sum += 1<<$adr->db_bits;
	},1);
	$sum;
}
1;

