diff options
| author | fukachan <fukachan> | 2001-02-19 04:01:02 +0000 |
|---|---|---|
| committer | fukachan <fukachan> | 2001-02-19 04:01:02 +0000 |
| commit | 46b13c96fd22935d5f86d9de09682ace30786d1d (patch) | |
| tree | 868a8992b7df789ae613837c52dcc194b5151ae1 /fml/lib | |
| parent | d7588bd3e3fa65388758d695f50e322df3d9ed00 (diff) | |
| download | fml8-46b13c96fd22935d5f86d9de09682ace30786d1d.tar.gz fml8-46b13c96fd22935d5f86d9de09682ace30786d1d.tar.bz2 fml8-46b13c96fd22935d5f86d9de09682ace30786d1d.zip | |
add prototype of mail loop checks e.g. message-id, X-ML-Info duplication
Diffstat (limited to 'fml/lib')
| -rw-r--r-- | fml/lib/FML/Header.pm | 13 | ||||
| -rw-r--r-- | fml/lib/FML/Process/Distribute.pm | 1 | ||||
| -rw-r--r-- | fml/lib/FML/Process/Flow.pm | 4 | ||||
| -rw-r--r-- | fml/lib/FML/Process/Kernel.pm | 18 |
4 files changed, 30 insertions, 6 deletions
diff --git a/fml/lib/FML/Header.pm b/fml/lib/FML/Header.pm index a8087601..b1c2b742 100644 --- a/fml/lib/FML/Header.pm +++ b/fml/lib/FML/Header.pm @@ -35,7 +35,7 @@ use Mail::Header; use FML::Log qw(Log); require Exporter; -@ISA = qw(Exporter Mail::Header); +@ISA = qw(Mail::Header Exporter); sub new @@ -151,10 +151,13 @@ sub rewrite_subject_tag my ($header, $config, $args) = @_; my $pkg = "FML::Header::Subject"; - eval qq{ require $pkg}; $pkg->import(); - - # subject tag - $pkg->rewrite_subject_tag($header, $config, $args); + eval qq{ require $pkg; $pkg->import();}; + unless ($@) { + $pkg->rewrite_subject_tag($header, $config, $args); + } + else { + Log("Error: cannot load $pkg"); + } } diff --git a/fml/lib/FML/Process/Distribute.pm b/fml/lib/FML/Process/Distribute.pm index 2652386a..c8568544 100644 --- a/fml/lib/FML/Process/Distribute.pm +++ b/fml/lib/FML/Process/Distribute.pm @@ -58,6 +58,7 @@ sub verify_request { my ($curproc, $args) = @_; $curproc->verify_sender_credential(); + $curproc->simple_loop_check(); } diff --git a/fml/lib/FML/Process/Flow.pm b/fml/lib/FML/Process/Flow.pm index e01bddb2..d88d11d0 100644 --- a/fml/lib/FML/Process/Flow.pm +++ b/fml/lib/FML/Process/Flow.pm @@ -69,7 +69,9 @@ sub ProcessStart # e.g. parse the incoming message (e.g. STDIN) $process->prepare($args); - # validate the request e.g. permit post from the sender ... + # validate the request, for example, + # permit post from the sender, + # check the mail loop or not ... $process->verify_request($args); # start main transaction diff --git a/fml/lib/FML/Process/Kernel.pm b/fml/lib/FML/Process/Kernel.pm index 2fe7ded3..83110fde 100644 --- a/fml/lib/FML/Process/Kernel.pm +++ b/fml/lib/FML/Process/Kernel.pm @@ -197,6 +197,24 @@ sub sender_is_member } +sub simple_loop_check +{ + my ($curproc, $args) = @_; + my $config = $curproc->{ config }; + my $r_msg = $curproc->{ incoming_message }; + my $header = $r_msg->{ header }; + + for my $rule (split(/\s+/, $config->{ header_check_rules })) { + if ($header->can($rule)) { + $header->$rule($config, $args); + } + else { + Log("header->${rule}() is undefined"); + } + } +} + + # fml5::init_main() routine sub load_config_files { |
