summaryrefslogtreecommitdiff
path: root/fml/lib
diff options
context:
space:
mode:
authorfukachan <fukachan>2001-02-19 04:01:02 +0000
committerfukachan <fukachan>2001-02-19 04:01:02 +0000
commit46b13c96fd22935d5f86d9de09682ace30786d1d (patch)
tree868a8992b7df789ae613837c52dcc194b5151ae1 /fml/lib
parentd7588bd3e3fa65388758d695f50e322df3d9ed00 (diff)
downloadfml8-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.pm13
-rw-r--r--fml/lib/FML/Process/Distribute.pm1
-rw-r--r--fml/lib/FML/Process/Flow.pm4
-rw-r--r--fml/lib/FML/Process/Kernel.pm18
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
{