summaryrefslogtreecommitdiff
path: root/FS/FS/addr_block.pm
diff options
context:
space:
mode:
authorkhoff <khoff>2003-04-21 20:27:10 +0000
committerkhoff <khoff>2003-04-21 20:27:10 +0000
commit4eaa305a53b129021c3a40e9ed49196f4b4d8907 (patch)
tree676760578976aaf8b8cb75f423a2f25407b104e0 /FS/FS/addr_block.pm
parentfdccb39f148b8fb2a8a7818e9a7999c20b2e05bd (diff)
excludeaddr option for svc_broadband
Diffstat (limited to 'FS/FS/addr_block.pm')
-rwxr-xr-xFS/FS/addr_block.pm10
1 files changed, 8 insertions, 2 deletions
diff --git a/FS/FS/addr_block.pm b/FS/FS/addr_block.pm
index b671723..c9305f6 100755
--- a/FS/FS/addr_block.pm
+++ b/FS/FS/addr_block.pm
@@ -5,6 +5,7 @@ use vars qw( @ISA );
use FS::Record qw( qsearchs qsearch dbh );
use FS::router;
use FS::svc_broadband;
+use FS::Conf;
use NetAddr::IP;
@ISA = qw( FS::Record );
@@ -172,9 +173,14 @@ there are no free addresses, returns false.
sub next_free_addr {
my $self = shift;
- my @used = map { $_->NetAddr->addr }
+ my $conf = new FS::Conf;
+ my @excludeaddr = $conf->config('excludeaddr');
+
+ my @used = (
+ map { $_->NetAddr->addr }
($self,
- qsearch('svc_broadband', { blocknum => $self->blocknum }) );
+ qsearch('svc_broadband', { blocknum => $self->blocknum }) ),
+ @excludeaddr );
my @free = $self->NetAddr->hostenum;
while (my $ip = shift @free) {