X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Faddr_block.pm;h=0fe2476a2a47dad768a679b86823b882878b1017;hb=b49c1bd5510a5f10b05bffacc6cc8b6a1b2153e8;hp=5815f1abd5e9c7eeab9e79662defc7c0ea41bb07;hpb=a1871d3d13c1dafa93b956762c0d23728d261da7;p=freeside.git diff --git a/FS/FS/addr_block.pm b/FS/FS/addr_block.pm index 5815f1abd..0fe2476a2 100755 --- a/FS/FS/addr_block.pm +++ b/FS/FS/addr_block.pm @@ -48,6 +48,8 @@ block is assigned. =item ip_netmask - the netmask of the block, expressed as an integer. +=item manual_flag - prohibit automatic ip assignment from this block when true. + =item agentnum - optional agent number (see L) =back @@ -124,7 +126,8 @@ sub check { $self->ut_number('routernum') || $self->ut_ip('ip_gateway') || $self->ut_number('ip_netmask') - || $self->ut_agentnum_acl('agentnum', 'Engineering global configuration') + || $self->ut_enum('manual_flag', [ '', 'Y' ]) + || $self->ut_agentnum_acl('agentnum', 'Broadband global configuration') ; return $error if $error; @@ -202,13 +205,16 @@ sub cidr { Returns a NetAddr::IP object corresponding to the first unassigned address in the block (other than the network, broadcast, or gateway address). If -there are no free addresses, returns false. +there are no free addresses, returns false. There are never free addresses +when manual_flag is true. =cut sub next_free_addr { my $self = shift; + return '' if $self->manual_flag; + my $conf = new FS::Conf; my @excludeaddr = $conf->config('exclude_ip_addr');