summaryrefslogtreecommitdiff
path: root/fml/lib/FML/Restriction
diff options
context:
space:
mode:
authorfukachan <fukachan>2008-07-06 05:31:47 +0000
committerfukachan <fukachan>2008-07-06 05:31:47 +0000
commit967cb222ffd658dd9d5ce340b06026200960d7c9 (patch)
tree1f99521e90d5621d65ec23a4ad81b773a9ce3c22 /fml/lib/FML/Restriction
parent781354189b9da6def424bf1392009f5144d003e6 (diff)
downloadfml8-967cb222ffd658dd9d5ce340b06026200960d7c9.tar.gz
fml8-967cb222ffd658dd9d5ce340b06026200960d7c9.tar.bz2
fml8-967cb222ffd658dd9d5ce340b06026200960d7c9.zip
define "isolate" operation template.
"isolate" differs "hold". "isolate" sets apart spam candidates from normal incoming messages, whereas "hold" moves the incoming message to "hold" queue, which does not move until someone changes the state.
Diffstat (limited to 'fml/lib/FML/Restriction')
-rw-r--r--fml/lib/FML/Restriction/Post.pm31
1 files changed, 30 insertions, 1 deletions
diff --git a/fml/lib/FML/Restriction/Post.pm b/fml/lib/FML/Restriction/Post.pm
index 45a3cd35..a6a3b2f9 100644
--- a/fml/lib/FML/Restriction/Post.pm
+++ b/fml/lib/FML/Restriction/Post.pm
@@ -4,7 +4,7 @@
# All rights reserved. This program is free software; you can
# redistribute it and/or modify it under the same terms as Perl itself.
#
-# $FML: Post.pm,v 1.28 2008/06/28 20:06:21 fukachan Exp $
+# $FML: Post.pm,v 1.29 2008/07/03 20:45:09 fukachan Exp $
#
package FML::Restriction::Post;
@@ -193,6 +193,8 @@ sub reject
hold messages in the hold queue.
+XXX DO NOTHING NOW. "HOLD" NAME IS PRESERVED FOR LATER USE.
+
=cut
@@ -213,6 +215,33 @@ sub hold
}
+=head1 EXTENSION: ISOLATE CASE
+
+=head2 isolate()
+
+isolate messages in the isolated queue.
+This operation is used for messages such as spam candidates.
+
+=cut
+
+
+# Descriptions: isolate irrespective of other conditions.
+# Arguments: OBJ($self) STR($rule) STR($sender)
+# Side Effects: none
+# Return Value: ARRAY(STR, STR)
+sub isolate
+{
+ my ($self, $rule, $sender) = @_;
+ my $curproc = $self->{ _curproc };
+
+ # XXX the deny reason is first match.
+ unless ($curproc->restriction_state_get_isolate_reason()) {
+ $curproc->restriction_state_set_isolate_reason($rule);
+ }
+ return("matched", "isolate");
+}
+
+
=head1 EXTENSION: IGNORE CASE
=head2 ignore