X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2FIP_Mixin.pm;h=1967ccd573399c618234ca37df6f658e1dcc2a2e;hp=2d69d9cc12ffec20f9eab9c769b675b11611d6ff;hb=20f03d52cc6c930f610c0b4466eeeeda54fdbb40;hpb=5506c3aea73686da65f7caf2acbdca715cc6c1a5 diff --git a/FS/FS/IP_Mixin.pm b/FS/FS/IP_Mixin.pm index 2d69d9cc1..1967ccd57 100644 --- a/FS/FS/IP_Mixin.pm +++ b/FS/FS/IP_Mixin.pm @@ -94,6 +94,10 @@ sub ip_check { $self->ip_addr(''); } + # Will strip extraneous leading zeros from ip adddresses + # e.g. 10.0.022.220 corrected to 10.0.22.220 + $self->ut_ip46n('ip_addr'); + if ( $self->ip_addr and !$self->router and $self->conf->exists('auto_router') ) { @@ -264,45 +268,27 @@ sub router { FS::router->by_key($self->routernum); } -=item used_addresses [ BLOCK ] +=item used_addresses [ FS::addr_block ] -Returns a list of all addresses that are in use by a service. If called as an -instance method, excludes that instance from the search. +Returns a list of all addresses in use within the given L. -Does not filter by block, will return ALL used addresses. ref:f197bdbaa1 +If called as an instance method, excludes that instance from the search. =cut sub used_addresses { - my $self = shift; - my $block = shift; - return ( map { $_->_used_addresses($block, $self) } @subclasses ); -} - -sub _used_addresses { - my $class = shift; - die "$class->_used_addresses not implemented"; -} - -=item used_addresses_in_block [ FS::addr_block ] - -Returns a list of all addresses in use within the given L - -=cut - -sub used_addresses_in_block { my ($self, $block) = @_; ( $block->ip_gateway ? $block->ip_gateway : (), $block->NetAddr->broadcast->addr, - map { $_->_used_addresses_in_block($block, $self ) } @subclasses + map { $_->_used_addresses($block, $self ) } @subclasses ); } -sub _used_addresses_in_block { +sub _used_addresses { my $class = shift; - die "$class->_used_addresses_in_block not implemented"; + die "$class->_used_addresses not implemented"; } =item is_used ADDRESS