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

sub set_ipregion_ipkunde($;$) {
	my($id,$kn) = @_;
	my($kid,$rbits,$oip) = DoFn("select kunde,alloc,ipkunde from ipregion where id=$id");

	my $ip;
	while(1) {
		$ip = edit_ipaddrs($kid,1+4,$kn." übergeordnete");
		return undef unless defined $ip;

		if($ip eq "-") {
			$ip = "NULL";
		} else {
			my $bits = DoFn("select bits from ipkunde where id=$ip");
			if($bits == 0) {
				print "Keine Hostadresse! Wie soll das funktionieren?\n";
				next;
			}
			if(not defined $rbits) {
				warnung "Für Autoallokation muß noch die Bitbreite gesetzt werden!\n";
				set_ipregion_bits($id,$kn);
			} elsif($rbits >= $bits) {
				return problem "Dieser Bereich ist für die aktuelle Allokationsbreite zu klein!\n";
				#set_ipregion_bits($id,$kn);
			}
		}
		log_update("ipregion","id",$id,undef,"ipkunde",undef,$oip);
		Do("update ipregion set ipkunde=$ip where id=$id");
		last;
	}
	$ip;
}
1;
