From: root Date: Tue, 3 Apr 2007 09:40:10 +0000 (+0200) Subject: Refactor a bit into a module. X-Git-Url: https://git.sesse.net/?p=nms;a=commitdiff_plain;h=785ae2dbd087acc20d8eea33443aa51f381da889 Refactor a bit into a module. --- diff --git a/mbd/mbd.pl b/mbd/mbd.pl index 90ee4d6..0993e43 100644 --- a/mbd/mbd.pl +++ b/mbd/mbd.pl @@ -6,30 +6,7 @@ use Net::CIDR; use Net::RawIP; require './access_list.pl'; require './nets.pl'; - -sub expand_range { - my $range = shift; - - if ($range =~ /^(\d+)\.\.(\d+)$/) { - return $1..$2; - } else { - return $range; - } -} - -sub match_ranges { - my ($elem, $ranges) = @_; - - for my $range (@$ranges) { - if ($range =~ /^(\d+)\.\.(\d+)$/) { - return 1 if ($elem >= $1 && $elem <= $2); - } else { - return 1 if ($elem == $range); - } - } - - return 0; -} +require './mbd.pm'; sub fhbits { my $bits = 0; @@ -39,16 +16,7 @@ sub fhbits { return $bits; } -# Find what ports we need to listen on -my %port_hash = (); -for my $e (@Config::access_list) { - for my $r (@{$e->{'ports'}}) { - for my $p (expand_range($r)) { - $port_hash{$p} = 1; - } - } -} -my @ports = sort { $a <=> $b } keys %port_hash; +my @ports = mbd::find_all_ports(); # Open a socket for each port my @socks = (); diff --git a/mbd/mbd.pm b/mbd/mbd.pm new file mode 100644 index 0000000..b844e5b --- /dev/null +++ b/mbd/mbd.pm @@ -0,0 +1,50 @@ +#! /usr/bin/perl +use strict; +use warnings; +use Socket; +use Net::CIDR; +use Net::RawIP; +require './access_list.pl'; +require './nets.pl'; + +package mbd; + +sub expand_range { + my $range = shift; + + if ($range =~ /^(\d+)\.\.(\d+)$/) { + return $1..$2; + } else { + return $range; + } +} + +sub match_ranges { + my ($elem, $ranges) = @_; + + for my $range (@$ranges) { + if ($range =~ /^(\d+)\.\.(\d+)$/) { + return 1 if ($elem >= $1 && $elem <= $2); + } else { + return 1 if ($elem == $range); + } + } + + return 0; +} + +sub find_all_ports { + # Find what ports we need to listen on + my %port_hash = (); + for my $e (@Config::access_list) { + for my $r (@{$e->{'ports'}}) { + for my $p (expand_range($r)) { + $port_hash{$p} = 1; + } + } + } + my @ports = sort { $a <=> $b } keys %port_hash; + return @ports; +} + +1;