From 902d15046334045b5f24c2d9e179b3db6e1ee3f4 Mon Sep 17 00:00:00 2001 From: Mark Wells Date: Wed, 11 Apr 2012 13:23:07 -0700 Subject: don't override manually entered IP address with auto-assignment, #17163 --- FS/FS/svc_broadband.pm | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'FS/FS/svc_broadband.pm') diff --git a/FS/FS/svc_broadband.pm b/FS/FS/svc_broadband.pm index 2b6be2c..64cc377 100755 --- a/FS/FS/svc_broadband.pm +++ b/FS/FS/svc_broadband.pm @@ -428,7 +428,8 @@ sub check { } else { my $addr_block = $self->addr_block; - unless ( $addr_block and $addr_block->manual_flag ) { + if ( $self->ip_addr eq '' + and not ( $addr_block and $addr_block->manual_flag ) ) { my $error = $self->assign_ip_addr; return $error if $error; } @@ -525,6 +526,12 @@ sub _check_ip_addr { else { return 'Cannot parse address: '.$self->ip_addr unless $self->NetAddr; } + + if ( $self->addr_block + and not $self->addr_block->NetAddr->contains($self->NetAddr) ) { + return 'Address '.$self->ip_addr.' not in block '.$self->addr_block->cidr; + } + # if (my $dup = qsearchs('svc_broadband', { # ip_addr => $self->ip_addr, # svcnum => {op=>'!=', value => $self->svcnum} -- cgit v1.1