use utf8;
use warnings; no warnings "redefine";
use strict;
use Loader qw(line_in log_update);
use Dbase::Help qw(Do DoFn);
use Dbase::IP qw();
use Fehler qw(problem);

sub set_ipregion_bits($;$) {
	my($id,$kn) = @_;

	my ($uip,$ubits,$obits) = DoFn("select ipkunde.ip6,ipkunde.bits, ipregion.alloc from ipregion,ipkunde where ipregion.id=$id and ipkunde.id=ipregion.ipkunde");
	$uip = Dbase::IP->new_db($uip,$ubits);
	my $bits = line_in "Breite für neue Bereiche:";
	return undef if $bits eq "";
	$bits=0 if $bits eq "-";
	return problem "Zahl eingeben!" unless $bits =~ /^\d+$/;
	return problem "So viele Bits gibt es nicht!"
		if $bits > ($uip->is_v4rf ? 32 : 128);
	return problem "Die Adressbreite muss größer sein als die des Bereichs!"
		if $bits and $bits < $uip->masklen4;
	$bits = ($uip->is_v4rf ? 32 : 128) - $bits if $bits;

	log_update("ipregion","id",$id,undef,"alloc",undef,$obits);
	Do("update ipregion set alloc=$bits where id=$id");
}
1;
