|
From: Bob T. <bt...@us...> - 2004-01-19 19:19:15
|
Update of /cvsroot/benson/benson3/handlers
In directory sc8-pr-cvs1:/tmp/cvs-serv24653/handlers
Modified Files:
A10email.pm
Log Message:
Added the fixed A10email.pm module.
Index: A10email.pm
===================================================================
RCS file: /cvsroot/benson/benson3/handlers/A10email.pm,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -r1.5 -r1.6
*** A10email.pm 16 Feb 2002 17:11:15 -0000 1.5
--- A10email.pm 19 Jan 2004 19:19:09 -0000 1.6
***************
*** 5,18 ****
use POSIX;
! sub handler {
! my ($self,$t) = @_;
my $s = $t->server;
! my $queue = new Benson();
! my %alertlist = %{$queue->sorted_href_alert_list()};
! $s->trace("A10email action handler begins...",3);
!
! open CONFIG, $s->ServerRoot."/etc/email.conf";
while(<CONFIG>) {
my $line = $_;
--- 5,17 ----
use POSIX;
! sub parse_file {
! my ($self, $filename, $t, $list, $emails) = @_;
my $s = $t->server;
! my %alertlist = %{$list};
! $s->trace("A10email opening $filename...",3);
!
! open CONFIG, $filename || return -1;
while(<CONFIG>) {
my $line = $_;
***************
*** 32,36 ****
($t->message =~ m/$message/) && ($total == $count)) {
$s->trace("Matched for $alias",4);
! $self->send_email($alias, $t);
if($pass eq "+") {
--- 31,44 ----
($t->message =~ m/$message/) && ($total == $count)) {
$s->trace("Matched for $alias",4);
! my ($protocol, $parameter) = split /:/, $alias, 2;
! if($protocol eq "file") {
! if($self->parse_file($parameter, $t, $emails) == -1) {
! $s->log("File $parameter not found!", WARNING);
! }
! } elsif($protocol eq "email") {
! $emails->{$parameter} = 1;
! } else {
! $emails->{$alias} = 1;
! }
if($pass eq "+") {
***************
*** 40,43 ****
--- 48,83 ----
}
close CONFIG;
+
+ return 0;
+ }
+
+ sub handler {
+ my ($self,$t) = @_;
+
+ my $s = $t->server;
+ my $queue = new Benson();
+
+ # my %alertlist = %{$queue->sorted_href_alert_list()};
+ my $alertlist = $queue->sorted_href_alert_list();
+ $s->trace("A10email action handler begins...",3);
+ my $identity = $t->identity;
+ my $filename = $s->ServerRoot."/etc/email.conf";
+ my %emails;
+
+ #
+ # Populate hash of emails
+ #
+ if($self->parse_file($filename, $t, $alertlist, \%emails) == -1) {
+ $s->log("File $filename not found!", WARNING);
+ }
+
+ #
+ # Send emails to hash list
+ #
+ foreach my $email (keys %emails) {
+ $s->trace("Sending alert($identity) email to $email", 3);
+ $self->send_email($email, $t);
+ }
+
return OK;
}
***************
*** 59,62 ****
--- 99,103 ----
my $from = "benson\@".$t->agent;
my $to = $alias;
+ my $identity = $t->identity;
my $subject = $t->agent.":".$t->severity.":".$t->subsystem.":".$t->message;
my $message = $t->message;
***************
*** 69,72 ****
--- 110,114 ----
Message: $message
+ Identity: $identity
Timestamp: $timestamp
EOT
|