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

sub set_ipnr_mac($;$) {
	my($idi,$kn) = @_;

	my $mac = line_in "MAC: [AB:CD...]";
	return undef if $mac eq "";

	my($_mac,$_beginn,$_ende) = DoFn("SELECT mac, beginn, ende FROM ipkunde WHERE id = $idi");

	if($mac eq "-") {
		return problem('Hier ist doch eh keine MAC-Adresse eingetragen.')
		  unless defined $_mac;
		$mac = "NULL";
	} else {
		my $omac = $mac;
		my $ch = ( ( $mac = uc $mac ) =~ y/://d );
		unless(($ch == 0 or $ch == 5) and $mac =~ /^[0-9a-f]{12}$/i) {
			return problem "'$omac' ist keine MAC-Adresse.\n";
		}
		elsif ( $mac eq uc $_mac ) {
			return problem( 'Diese MAC-Adresse ist hier doch eh schon eingetragen.' );
		}
		elsif ( my $id = check_overlap( ipkunde => id => $idi, mac => $_beginn, $_ende, $mac ) ) {
			return problem("Diese MAC-Adresse ist schon bei Objekt #$id eingetragen.");
		}
		$mac = qquote($mac);
	}
	log_update("ipkunde","id",$idi,undef, "mac",undef,
		DoFn("select mac from ipkunde where id=$idi"));
	Do("update ipkunde set mac=$mac where id=$idi");
}

1;
