X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fsvc_hardware.pm;h=22e627538b1d517bca80143e8707776d0e3e491f;hb=a69299c596de60f4b26db7431165f7f3ffe928e2;hp=4970b3e92ada8df30775ee782ee1c87bac95d586;hpb=fb4ab1073f0d15d660c6cdc4e07afebf68ef3924;p=freeside.git diff --git a/FS/FS/svc_hardware.pm b/FS/FS/svc_hardware.pm index 4970b3e92..22e627538 100644 --- a/FS/FS/svc_hardware.pm +++ b/FS/FS/svc_hardware.pm @@ -154,19 +154,25 @@ and replace methods. sub check { my $self = shift; + my $conf = FS::Conf->new; my $x = $self->setfixed; return $x unless ref $x; my $hw_addr = $self->getfield('hw_addr'); $hw_addr = join('', split(/\W/, $hw_addr)); + if ( $conf->exists('svc_hardware-check_mac_addr') ) { + $hw_addr = uc($hw_addr); + $hw_addr =~ /^[0-9A-F]{12}$/ + or return "Illegal (MAC address) '".$self->getfield('hw_addr')."'"; + } $self->setfield('hw_addr', $hw_addr); my $error = $self->ut_numbern('svcnum') || $self->ut_foreign_key('typenum', 'hardware_type', 'typenum') || $self->ut_ip46n('ip_addr') - || $self->ut_hexn('hw_addr') + || $self->ut_alphan('hw_addr') || $self->ut_alphan('serial') || $self->ut_alphan('smartcard') || $self->ut_foreign_keyn('statusnum', 'hardware_status', 'statusnum')