X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXMsg.pm;h=39bd3065ab57e0fd3e4af2550d41107c6877b842;hb=093ac03207bd4468fa89dc7438936b245a92cbe5;hp=76048eee9c30873fb7b07848c9a6be950fc3324f;hpb=295091c6014aadfa875b2617b2062b2d2daaced2;p=spider.git diff --git a/perl/DXMsg.pm b/perl/DXMsg.pm index 76048eee..39bd3065 100644 --- a/perl/DXMsg.pm +++ b/perl/DXMsg.pm @@ -30,7 +30,7 @@ use Carp; use strict; use vars qw(%work @msg $msgdir %valid %busy $maxage $last_clean - @badmsg $badmsgfn); + @badmsg $badmsgfn $forwardfn @forward); %work = (); # outstanding jobs @msg = (); # messages we have @@ -38,8 +38,10 @@ use vars qw(%work @msg $msgdir %valid %busy $maxage $last_clean $msgdir = "$main::root/msg"; # directory contain the msgs $maxage = 30 * 86400; # the maximum age that a message shall live for if not marked $last_clean = 0; # last time we did a clean +@forward = (); # msg forward table -$badmsgfn = "$main::data/badmsg.pl"; # list of TO address we wont store +$badmsgfn = "$msgdir/badmsg.pl"; # list of TO address we wont store +$forwardfn = "$msgdir/forward.pl"; # the forwarding table %valid = ( fromnode => '9,From Node', @@ -104,7 +106,7 @@ sub workclean sub process { my ($self, $line) = @_; - my @f = split /[\^\~]/, $line; + my @f = split /\^/, $line; my ($pcno) = $f[0] =~ /^PC(\d\d)/; # just get the number SWITCH: { @@ -634,8 +636,11 @@ sub init my @dir; my $ref; - do "$badmsgfn" if -e "$badmsgfn"; - print "$@\n" if $@; + # load various control files + my @in = load_badmsg(); + print "@in\n" if @in; + @in = load_forward(); + print "@in\n" if @in; # read in the directory opendir($dir, $msgdir) or confess "can't open $msgdir $!"; @@ -644,7 +649,7 @@ sub init @msg = (); for (sort @dir) { - next unless /^m\d+/o; + next unless /^m\d+$/o; $ref = read_msg_header("$msgdir/$_"); next unless $ref; @@ -793,6 +798,24 @@ sub dir $ref->to, $ref->from, cldate($ref->t), ztime($ref->t), $ref->subject; } +# load the forward table +sub load_forward +{ + my @out; + do "$forwardfn" if -e "$forwardfn"; + push @out, $@ if $@; + return @out; +} + +# load the bad message table +sub load_badmsg +{ + my @out; + do "$badmsgfn" if -e "$badmsgfn"; + push @out, $@ if $@; + return @out; +} + no strict; sub AUTOLOAD {