Metabrik-Repository
view release on metacpan or search on metacpan
lib/Metabrik/Network/Sinfp3.pm view on Meta::CPAN
'Net::SinFP3::Input::Signature' => [ ],
'Net::SinFP3::DB::SinFP3' => [ ],
'Net::SinFP3::Mode::Active' => [ ],
'Net::SinFP3::Search::Active' => [ ],
'Net::SinFP3::Search::Null' => [ ],
'Net::SinFP3::Output::Console' => [ ],
'Net::SinFP3::Output::Pcap' => [ ],
'Net::SinFP3::Output::Simple' => [ ],
'Metabrik::Client::Www' => [ ],
},
};
}
sub brik_use_properties {
my $self = shift;
return {
attributes_default => {
device => defined($self->global) && $self->global->device || 'eth0',
},
};
}
sub brik_init {
my $self = shift;
my $datadir = $self->datadir;
my $file = $datadir.'/'.$self->db;
my $threshold = $self->threshold;
my $best_score_only = $self->best_score_only;
if (! -f $file) {
$self->update or return;
}
my $log = Net::SinFP3::Log::Null->new(
level => $self->log->level,
) or return $self->log->error('brik_init: log::null failed');
$log->init;
my $global = Net::SinFP3::Global->new(
log => $log,
ipv6 => 0,
dnsReverse => 0,
threshold => $threshold,
bestScore => $best_score_only,
) or return $self->log->error('brik_init: global failed');
my $db = Net::SinFP3::DB::SinFP3->new(
global => $global,
file => $file,
) or return $self->log->error('brik_init: db::sinfp3 failed');
$db->init;
$global->db($db);
$self->_global($global);
return $self->SUPER::brik_init(@_);
}
sub update {
my $self = shift;
my $db = $self->db;
my $datadir = $self->datadir;
my $url = $self->_update_url;
my $cw = Metabrik::Client::Www->new_from_brik_init($self) or return;
my $files = $cw->mirror($url, $db, $datadir) or return;
if (@$files > 0) {
$self->log->info("update: $db updated");
}
return "$datadir/$db";
}
sub active_ipv4 {
my $self = shift;
my ($target, $port) = @_;
$target ||= $self->target;
$port ||= $self->port;
$self->brik_help_run_must_be_root('active_ipv4') or return;
$self->brik_help_run_undef_arg('active_ipv4', $target) or return;
$self->brik_help_run_undef_arg('active_ipv4', $port) or return;
my $device = $self->device;
my $threshold = $self->threshold;
my $datadir = $self->datadir;
my $file = $datadir.'/'.$self->db;
$self->brik_help_run_file_not_found('active_ipv4', $file) or return;
my $log = Net::SinFP3::Log::Console->new(
level => $self->log->level,
);
my $global = Net::SinFP3::Global->new(
log => $log,
target => $target,
port => $port,
ipv6 => 0,
dnsReverse => 0,
worker => 'single',
device => $device,
threshold => $threshold,
) or return $self->log->error("active: global failed");
my $input = Net::SinFP3::Input::IpPort->new(
global => $global,
);
my $db = Net::SinFP3::DB::SinFP3->new(
global => $global,
file => $file,
);
my $mode = Net::SinFP3::Mode::Active->new(
global => $global,
doP1 => 1,
( run in 1.023 second using v1.01-cache-2.11-cpan-39bf76dae61 )