summaryrefslogtreecommitdiffstats
path: root/modules/util.pl
diff options
context:
space:
mode:
Diffstat (limited to 'modules/util.pl')
-rw-r--r--modules/util.pl33
1 files changed, 27 insertions, 6 deletions
diff --git a/modules/util.pl b/modules/util.pl
index a385790..4fe63ee 100644
--- a/modules/util.pl
+++ b/modules/util.pl
@@ -1,4 +1,5 @@
package ASM::Util;
+use Array::Utils qw(:all);
use warnings;
use strict;
@@ -7,6 +8,7 @@ my %oq;
%::RISKS =
(
+ 'disable'=> -1, #this isn't really an alert
'debug' => 10,
'info' => 20,
'low' => 30,
@@ -66,8 +68,22 @@ sub maxlen {
sub cs {
my ($module, $chan) = @_;
$chan = lc $chan;
- return $::channels->{channel}->{$chan} if ( defined($::channels->{channel}->{$chan}) );
- return $::channels->{channel}->{default};
+ return $::channels->{channel}->{default} unless defined($::channels->{channel}->{$chan});
+ if ( defined($::channels->{channel}->{$chan}->{link}) ) {
+ return $::channels->{channel}->{ $::channels->{channel}->{$chan}->{link} };
+ }
+ return $::channels->{channel}->{$chan};
+}
+
+sub getLink
+{
+ my ($module, $chan) = @_;
+ $chan = lc $chan;
+ my $link = $::channels->{channel}->{$chan}->{link};
+ if ( defined($link) ) {
+ return $link;
+ }
+ return $chan;
}
#this item is a stub, dur
@@ -126,15 +142,20 @@ sub flood_process {
sub getAlert {
my ($module, $c, $risk, $t) = @_;
- @_ = ();
+ my @disable = ();
+ my @x = ();
$c = lc $c;
foreach my $prisk ( keys %::RISKS) {
if ( $::RISKS{$risk} >= $::RISKS{$prisk} ) {
- push( @_, @{$::channels->{channel}->{master}->{$t}->{$prisk}} ) if defined $::channels->{channel}->{master}->{$t}->{$prisk};
- push( @_, @{cs($module, $c)->{$t}->{$prisk}} ) if defined cs($module, $c)->{$t}->{$prisk};
+ push( @x, @{$::channels->{channel}->{master}->{$t}->{$prisk}} ) if defined $::channels->{channel}->{master}->{$t}->{$prisk};
+ push( @x, @{cs($module, $c)->{$t}->{$prisk}} ) if defined cs($module, $c)->{$t}->{$prisk};
}
}
- return @_;
+ push( @disable, @{$::channels->{channel}->{master}->{$t}->{disable}} ) if defined $::channels->{channel}->{master}->{$t}->{disable};
+ push( @disable, @{cs($module, $c)->{$t}->{disable}} ) if defined cs($module, $c)->{$t}->{disable};
+ @x = unique(@x);
+ @x = array_diff(@x, @disable);
+ return @x;
}
sub commaAndify {