--- nfo/perl/libs/Mail/Audit/Dispatch.pm 2003/01/30 23:20:21 1.5 +++ nfo/perl/libs/Mail/Audit/Dispatch.pm 2003/03/23 21:12:20 1.6 @@ -5,10 +5,13 @@ # with the Perl-module "Mail::Audit" # available from CPAN. # -# $Id: Dispatch.pm,v 1.5 2003/01/30 23:20:21 root Exp $ +# $Id: Dispatch.pm,v 1.6 2003/03/23 21:12:20 root Exp $ # # ============================================================ # $Log: Dispatch.pm,v $ +# Revision 1.6 2003/03/23 21:12:20 root +# + sub jerror and related modifications +# # Revision 1.5 2003/01/30 23:20:21 root # + fixed and enhanced # @@ -148,19 +151,22 @@ # check if $self->{settings}->{HOME} exists if (! -e $self->{settings}->{MAILDIR}) { my $msg = "ERROR: Delivery failed, base directory '$self->{settings}->{MAILDIR}' does not exist."; - $self->report($msg); - $self->forward_delivery(); + $self->jerror($msg); } # 1. include rules or fallback # check if $self->{settings}->{RULESFILE} exists if (-f $self->{settings}->{RULESFILE}) { $self->report("RULES: Loading from \"$self->{settings}->{RULESFILE}\"."); - require $self->{settings}->{RULESFILE}; + my $evalstr = "require '$self->{settings}->{RULESFILE}';"; + eval($evalstr); + if ($@) { + my $msg = "ERROR: Delivery failed, '$self->{settings}->{RULESFILE}' had syntax errors:\n$@"; + $self->jerror($msg); + } } else { #die("$self->{settings}->{RULESFILE} doesn't exist"); - $self->report("Configured rulesfile \"$self->{settings}->{RULESFILE}\" doesn't exist."); - $self->forward_delivery(); + $self->jerror("Configured rulesfile \"$self->{settings}->{RULESFILE}\" doesn't exist."); } # 2. export required stuff to rules namespace @@ -185,6 +191,12 @@ } +sub jerror { + my $self = shift; + my $msg = shift; + $self->report("ERROR: $msg"); + $self->forward_delivery(); +} sub _mail2news { my $self = shift;