summaryrefslogtreecommitdiff
path: root/fml
diff options
context:
space:
mode:
authorfukachan <fukachan>2001-12-23 09:20:41 +0000
committerfukachan <fukachan>2001-12-23 09:20:41 +0000
commit04cb8de0162bf2d3acc6ce19226b5e93c8e05cc1 (patch)
treed8a6077cbae6d7d5bed20afc5579b3783a26d1ec /fml
parent34c85054ab72e6de478260ab299b8c9f55d883d2 (diff)
downloadfml8-04cb8de0162bf2d3acc6ce19226b5e93c8e05cc1.tar.gz
fml8-04cb8de0162bf2d3acc6ce19226b5e93c8e05cc1.tar.bz2
fml8-04cb8de0162bf2d3acc6ce19226b5e93c8e05cc1.zip
update documents, comments
Diffstat (limited to 'fml')
-rw-r--r--fml/lib/FML/Article.pm30
-rw-r--r--fml/lib/FML/CGI/Configure.pm41
-rw-r--r--fml/lib/FML/CGI/Scheduler.pm37
-rw-r--r--fml/lib/FML/CGI/ThreadTrack.pm36
-rw-r--r--fml/lib/FML/Command/Attribute.pm37
-rw-r--r--fml/lib/FML/Command/SendFile.pm41
-rw-r--r--fml/lib/FML/Header.pm93
7 files changed, 236 insertions, 79 deletions
diff --git a/fml/lib/FML/Article.pm b/fml/lib/FML/Article.pm
index 2ba35278..5c585ed3 100644
--- a/fml/lib/FML/Article.pm
+++ b/fml/lib/FML/Article.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: Article.pm,v 1.26 2001/11/27 11:22:09 fukachan Exp $
+# $FML: Article.pm,v 1.27 2001/12/22 09:21:00 fukachan Exp $
#
package FML::Article;
@@ -47,7 +47,7 @@ message $curproc->{ incoming_message }.
# Descriptions: constructor
# Arguments: OBJ($self) OBJ($curproc)
# Side Effects: none
-# Return Value: FML::Article object
+# Return Value: OBJ(FML::Article)
sub new
{
my ($self, $curproc) = @_;
@@ -94,8 +94,8 @@ This routine uses C<File::Sequence> module.
# Descriptions: determine article id (sequence number)
# Arguments: OBJ($self)
-# Side Effects: record the current article sequence number
-# Return Value: number (sequence identifier)
+# Side Effects: save and update the current article sequence number
+# Return Value: NUM(sequence identifier)
sub increment_id
{
my ($self) = @_;
@@ -124,7 +124,7 @@ return the current article sequence number.
# Descriptions: return the article id (sequence number)
# Arguments: OBJ($self)
# Side Effects: none
-# Return Value: number (sequence number)
+# Return Value: NUM(sequence number)
sub id
{
my ($self) = @_;
@@ -144,7 +144,7 @@ If the variable C<$use_spool> is 'yes', this routine works.
# Descriptions: spool in the article
# Arguments: OBJ($self) NUM($id)
-# Side Effects:
+# Side Effects: create article in ML spool
# Return Value: none
sub spool_in
{
@@ -183,6 +183,9 @@ sub spool_in
=head2 speculate_max_id($spool_dir)
+scan the spool_dir and get max number among files in it It must be the
+max (latest) article number in its folder.
+
=cut
@@ -214,21 +217,6 @@ sub speculate_max_id
}
-=head1 Data IN/OUT among modules
-
-=head2 Style
-
- OO
-
-=head2 Data IN
-
- $curproc
-
-=head2 Data OUT
-
- $config->{ sequence_file } (increment number)
- $config->{ spool_dir } (create file)
-
=head1 SEE ALSO
L<FML::Header>,
diff --git a/fml/lib/FML/CGI/Configure.pm b/fml/lib/FML/CGI/Configure.pm
index 01accde5..6f8ade4d 100644
--- a/fml/lib/FML/CGI/Configure.pm
+++ b/fml/lib/FML/CGI/Configure.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: Configure.pm,v 1.6 2001/11/17 04:03:36 fukachan Exp $
+# $FML: Configure.pm,v 1.7 2001/12/22 09:21:02 fukachan Exp $
#
package FML::CGI::Configure;
@@ -22,20 +22,20 @@ use FML::Process::CGI;
FML::CGI::Configure - provides functions for makefml CGI interface
- XXX NOT YET IMPLEMENTED
-
=head1 SYNOPSIS
- $makefml = new FML::CGI::Configure;
- $makefml->new();
- $makefml->run();
+ $obj = new FML::CGI::Configure;
+ $obj->prepare();
+ $obj->verify_request();
+ $obj->run();
+ $obj->finish();
+
+run() executes html_start(), run_cgi() and html_end() described below.
See L<FML::Process::Flow> for flow details.
=head1 DESCRIPTION
-C<NOT YET IMPLEMENTED>.
-
=head2 CLASS HIERARCHY
C<FML::CGI::Configure> is a subclass of C<FML::Process::CGI>.
@@ -61,6 +61,10 @@ This module has routines needed for CGI.
=cut
+# Descriptions: print out HTML header + body former part
+# Arguments: OBJ($curproc) HASH_REF($args)
+# Side Effects: none
+# Return Value: none
sub html_start
{
my ($curproc, $args) = @_;
@@ -82,6 +86,10 @@ sub html_start
}
+# Descriptions: print out body latter part
+# Arguments: OBJ($curproc) HASH_REF($args)
+# Side Effects: none
+# Return Value: none
sub html_end
{
my ($curproc, $args) = @_;
@@ -96,6 +104,10 @@ sub html_end
}
+# Descriptions: print out navigation bar
+# Arguments: OBJ($curproc) HASH_REF($args)
+# Side Effects: none
+# Return Value: none
sub _show_guide
{
my ($curproc, $args) = @_;
@@ -104,6 +116,11 @@ sub _show_guide
}
+# Descriptions: main routine for makefml.cgi.
+# kick off suitable FML::Command finally via _execulte_command().
+# Arguments: OBJ($curproc) HASH_REF($args)
+# Side Effects: none
+# Return Value: none
sub run_cgi
{
my ($curproc, $args) = @_;
@@ -130,6 +147,10 @@ sub run_cgi
}
+# Descriptions: execute FML::Command
+# Arguments: OBJ($curproc) HASH_REF($args) HASH_REF($command_args)
+# Side Effects: load module
+# Return Value: none
sub _execute_command
{
my ($curproc, $args, $command_args) = @_;
@@ -157,6 +178,10 @@ sub _execute_command
}
+# Descriptions: show menu
+# Arguments: OBJ($curproc) HASH_REF($args)
+# Side Effects: none
+# Return Value: none
sub _show_menu
{
my ($curproc, $args) = @_;
diff --git a/fml/lib/FML/CGI/Scheduler.pm b/fml/lib/FML/CGI/Scheduler.pm
index 58d4a3d3..8cd22db8 100644
--- a/fml/lib/FML/CGI/Scheduler.pm
+++ b/fml/lib/FML/CGI/Scheduler.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: Scheduler.pm,v 1.6 2001/11/13 15:18:31 fukachan Exp $
+# $FML: Scheduler.pm,v 1.7 2001/12/22 09:21:02 fukachan Exp $
#
package FML::CGI::Scheduler;
@@ -13,26 +13,27 @@ use vars qw(@ISA @EXPORT @EXPORT_OK $AUTOLOAD);
use Carp;
use CGI qw/:standard/; # load standard CGI routines
-
use FML::Process::CGI;
@ISA = qw(FML::Process::CGI);
=head1 NAME
-FML::CGI::Scheduler - CGI module demo to show your schedule
+FML::CGI::Scheduler - demonstration CGI module to show schedule (HTML TABLE)
=head1 SYNOPSIS
- $ticket = new FML::CGI::Scheduler;
- $ticket->new();
- $ticket->run();
+ $obj = new FML::CGI::Scheduler;
+ $obj->prepare();
+ $obj->verify_request();
+ $obj->run();
+ $obj->finish();
-See L<FML::Process::Flow> for flow methods details.
+run() executes html_start(), run_cgi() and html_end() described below.
-=head1 DESCRIPTION
+See L<FML::Process::Flow> for flow details.
-C<NOT YET IMPLEMENTED>.
+=head1 DESCRIPTION
=head2 CLASS HIERARCHY
@@ -43,11 +44,15 @@ C<FML::CGI::Scheduler> is a subclass of C<FML::Process::CGI>.
Almost methods common for CGI or HTML are forwarded to
C<FML::Process::CGI> base class.
-This module has routines needed for CGI.
+This module has routines needed for CGI main methond run().
=cut
+# Descriptions: print out HTML header + body former part
+# Arguments: OBJ($curproc) HASH_REF($args)
+# Side Effects: none
+# Return Value: none
sub html_start
{
my ($curproc, $args) = @_;
@@ -69,6 +74,10 @@ sub html_start
}
+# Descriptions: print out body latter part
+# Arguments: OBJ($curproc) HASH_REF($args)
+# Side Effects: none
+# Return Value: none
sub html_end
{
my ($curproc, $args) = @_;
@@ -83,6 +92,10 @@ sub html_end
}
+# Descriptions: print out navigation bar
+# Arguments: OBJ($curproc) HASH_REF($args)
+# Side Effects: none
+# Return Value: none
sub _show_guide
{
my ($curproc, $args) = @_;
@@ -93,6 +106,10 @@ sub _show_guide
}
+# Descriptions: main routine for calender (HTML TABLE format)
+# Arguments: OBJ($curproc) HASH_REF($args)
+# Side Effects: none
+# Return Value: none
sub run_cgi
{
my ($curproc, $args) = @_;
diff --git a/fml/lib/FML/CGI/ThreadTrack.pm b/fml/lib/FML/CGI/ThreadTrack.pm
index 26578fed..cd14b37a 100644
--- a/fml/lib/FML/CGI/ThreadTrack.pm
+++ b/fml/lib/FML/CGI/ThreadTrack.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: ThreadTrack.pm,v 1.11 2001/11/19 11:36:47 fukachan Exp $
+# $FML: ThreadTrack.pm,v 1.12 2001/12/22 09:21:02 fukachan Exp $
#
package FML::CGI::ThreadTrack;
@@ -13,7 +13,6 @@ use vars qw(@ISA @EXPORT @EXPORT_OK $AUTOLOAD);
use Carp;
use CGI qw/:standard/; # load standard CGI routines
-
use FML::Process::CGI;
@ISA = qw(FML::Process::CGI);
@@ -24,16 +23,18 @@ FML::CGI::ThreadTrack - CGI details to control thread system
=head1 SYNOPSIS
- $thread = new FML::CGI::ThreadTrack;
- $thread->new();
- $thread->run();
+ $obj = new FML::CGI::ThreadTrack;
+ $obj->prepare();
+ $obj->verify_request();
+ $obj->run();
+ $obj->finish();
+
+run() executes html_start(), run_cgi() and html_end() described below.
See L<FML::Process::Flow> for flow details.
=head1 DESCRIPTION
-C<NOT YET IMPLEMENTED>.
-
=head2 CLASS HIERARCHY
C<FML::CGI::ThreadTrack> is a subclass of C<FML::Process::CGI>.
@@ -46,6 +47,10 @@ C<FML::Process::CGI> base class.
=cut
+# Descriptions: print out HTML header + body former part
+# Arguments: OBJ($curproc) HASH_REF($args)
+# Side Effects: none
+# Return Value: none
sub html_start
{
my ($curproc, $args) = @_;
@@ -65,6 +70,10 @@ sub html_start
}
+# Descriptions: print out body latter part
+# Arguments: OBJ($curproc) HASH_REF($args)
+# Side Effects: none
+# Return Value: none
sub html_end
{
my ($curproc, $args) = @_;
@@ -78,6 +87,11 @@ sub html_end
}
+# Descriptions: main routine for thread control
+# run_cgi() can process request: list, show, change_status
+# Arguments: OBJ($curproc) HASH_REF($args)
+# Side Effects: none
+# Return Value: none
sub run_cgi
{
my ($curproc, $args) = @_;
@@ -123,6 +137,10 @@ sub run_cgi
}
+# Descriptions: prepare basic parameter for Mail::ThreadTrack module
+# Arguments: OBJ($curproc) HASH_REF($args)
+# Side Effects: none
+# Return Value: HASH_REF
sub _build_param
{
my ($curproc, $args) = @_;
@@ -159,6 +177,10 @@ sub _build_param
}
+# Descriptions: print navigation bar
+# Arguments: OBJ($curproc) HASH_REF($args)
+# Side Effects: none
+# Return Value: none
sub _show_guide
{
my ($curproc, $args) = @_;
diff --git a/fml/lib/FML/Command/Attribute.pm b/fml/lib/FML/Command/Attribute.pm
index 694f5688..f6fa42be 100644
--- a/fml/lib/FML/Command/Attribute.pm
+++ b/fml/lib/FML/Command/Attribute.pm
@@ -4,13 +4,36 @@
# All rights reserved. This program is free software; you can
# redistribute it and/or modify it under the same terms as Perl itself.
#
-# $FML: Attribute.pm,v 1.1 2001/10/17 10:24:26 fukachan Exp $
+# $FML: Attribute.pm,v 1.2 2001/12/22 09:21:03 fukachan Exp $
#
package FML::Command::Attribute;
use strict;
use vars qw($FML_USER_COMMAND $FML_ADMIN_COMMAND);
+=head1 NAME
+
+FML::Command::Attribute - define attributes for each command
+
+=head1 SYNOPSIS
+
+ $r = $obj->get_attribute($mode, $comname, 'require_lock');
+ lock() if $r;
+
+=head1 DESCRIPTION
+
+get attribute for command under ucrrent mode.
+do something following the attribute value.
+
+=head1 METHOD
+
+=head2 get_attribute(mode, comname, attribute)
+
+return attribute for (mode, comname, attribute) combination.
+
+=cut
+
+
$FML_USER_COMMAND = {
'__default__' => {
'require_lock' => 1,
@@ -22,6 +45,10 @@ $FML_USER_COMMAND = {
};
+# Descriptions: return attribute for (mode, comname, attribute) combination
+# Arguments: OBJ($self) STR($mode) STR($comname) STR($attribute)
+# Side Effects: none
+# Return Value: STR
sub get_attribute
{
my ($self, $mode, $comname, $attribute) = @_;
@@ -59,14 +86,6 @@ sub get_attribute
}
-=head1 NAME
-
-FML::Command::Attribute - attribute for each command
-
-=head1 SYNOPSIS
-
-=head1 DESCRIPTION
-
=head1 AUTHOR
Ken'ichi Fukamachi
diff --git a/fml/lib/FML/Command/SendFile.pm b/fml/lib/FML/Command/SendFile.pm
index 6af79298..0ba266a7 100644
--- a/fml/lib/FML/Command/SendFile.pm
+++ b/fml/lib/FML/Command/SendFile.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: SendFile.pm,v 1.4 2001/10/17 03:05:12 fukachan Exp $
+# $FML: SendFile.pm,v 1.5 2001/12/22 09:21:03 fukachan Exp $
#
package FML::Command::SendFile;
@@ -17,30 +17,36 @@ use FML::Log qw(Log LogWarn LogError);
=head1 NAME
-FML::Command::SendFile - utility functions to send back specified file
+FML::Command::SendFile - utility functions to send back file(s)
=head1 SYNOPSIS
-not yet implemented
+For example, See L<FML::Command::User::get> and
+L<FML::Command::Admin::get>..
+
+ sub process
+ {
+ my ($self, $curproc, $command_args) = @_;
+ $self->send_article($curproc, $command_args);
+ }
=head1 DESCRIPTION
+This module provides several utility functions to send back article
+and file in C<$ml_home_dir>.
+
=head1 METHODS
=head2 C<send_article($curproc, $command_args)>
-send back articles.
-
-used in
-C<FML::Command::User>
-and
-C<FML::Command::Admin>
-modules.
+send back articles. This is used in C<FML::Command::User> and
+C<FML::Command::Admin> modules.
=cut
+
# Descriptions: send back articles
-# Arguments: $self $curproc $command_args
+# Arguments: OBJ($self) OBJ($curproc) HASH_REF($command_args)
# Side Effects: none
# Return Value: none
sub send_article
@@ -80,9 +86,9 @@ sub send_article
# Descriptions: check the argument and expand it if needed
-# Arguments: $self $curproc $filename_string
+# Arguments: OBJ($self) OBJ($curproc) STR($fn)
# Side Effects: none
-# Return Value: HASH ARRAY as [ $fist .. $last ]
+# Return Value: HASH_ARRAY as [ $fist .. $last ]
sub _is_valid_argument
{
my ($self, $curproc, $fn) = @_;
@@ -126,9 +132,9 @@ sub _is_valid_argument
# Descriptions: make an array from $fist to $last number
-# Arguments: $first_number $last_number
+# Arguments: NUM($first_number) NUM($last_number)
# Side Effects: none
-# Return Value: HASH ARRAY as [ $first .. $last ]
+# Return Value: HASH_ARRAY as [ $first .. $last ]
sub _expand_range
{
my ($first, $last) = @_;
@@ -145,8 +151,9 @@ send back file specified as C<$command_args->{ _file_to_send }>.
=cut
-# Descriptions:
-# Arguments: $self $curproc $command_args
+
+# Descriptions: send arbitrary file in $ml_home_dir.
+# Arguments: OBJ($self) OBJ($curproc) HASH_REF($command_args)
# Side Effects: none
# Return Value: none
sub send_file
diff --git a/fml/lib/FML/Header.pm b/fml/lib/FML/Header.pm
index de85286e..c9e2cc22 100644
--- a/fml/lib/FML/Header.pm
+++ b/fml/lib/FML/Header.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: Header.pm,v 1.37 2001/05/27 14:27:53 fukachan Exp $
+# $FML: Header.pm,v 1.38 2001/12/22 09:21:01 fukachan Exp $
#
package FML::Header;
@@ -56,9 +56,9 @@ forward the request up to superclass C<Mail::header::new()>.
# Descriptions: forward new() request to the base class
-# Arguments: $self $args
+# Arguments: OBJ($self) HASH_REF($args)
# Side Effects: none
-# Return Value: none
+# Return Value: OBJ
sub new
{
my ($self, $args) = @_;
@@ -68,6 +68,10 @@ sub new
}
+# Descriptions: dummy
+# Arguments: OBJ($self) HASH_REF($args)
+# Side Effects: none
+# Return Value: none
sub DESTROY {}
@@ -89,6 +93,11 @@ alias of C<Mail::Header::set($key, $value)>.
=cut
+
+# Descriptions: get() wrapper to remove \n$
+# Arguments: OBJ($self) ARRAY(@x)
+# Side Effects: none
+# Return Value: STR
sub get
{
my ($self, @x) = @_;
@@ -98,6 +107,10 @@ sub get
}
+# Descriptions: set() wrapper
+# Arguments: OBJ($self) ARRAY(@x)
+# Side Effects: none
+# Return Value: none
sub set
{
my ($self, @x) = @_;
@@ -113,6 +126,10 @@ It parse it by C<Mail::Address::parse()> and nuke < and >.
=cut
+# Descriptions: utility to remove ^\s*< and >\s*$
+# Arguments: OBJ($self) STR($addr)
+# Side Effects: none
+# Return Value: STR
sub address_clean_up
{
my ($self, $addr) = @_;
@@ -141,10 +158,11 @@ return the C<boundary> defind in the header's Content-Type field.
=cut
+
# Descriptions: return the type defind in the header's Content-Type field.
-# Arguments: $self
+# Arguments: OBJ($header)
# Side Effects: extra spaces in the type to return is removed.
-# Return Value: none
+# Return Value: STR or UNDEF
sub data_type
{
my ($header) = @_;
@@ -158,9 +176,9 @@ sub data_type
# Descriptions: return boundary defined in Content-Type
-# Arguments: $self $args
+# Arguments: OBJ($header)
# Side Effects: none.
-# Return Value: none
+# Return Value: STR or UNDEF
sub mime_boundary
{
my ($header) = @_;
@@ -196,6 +214,10 @@ add X-ML-Count:
=cut
+# Descriptions: add "X-ML-Name: elena" to header
+# Arguments: OBJ($header) OBJ($config) HASH_REF($args)
+# Side Effects: update $header
+# Return Value: none
sub add_fml_ml_name
{
my ($header, $config, $args) = @_;
@@ -203,6 +225,10 @@ sub add_fml_ml_name
}
+# Descriptions: add "X-Mail-Count: NUM" to header
+# Arguments: OBJ($header) OBJ($config) HASH_REF($args)
+# Side Effects: update $header
+# Return Value: none
sub add_fml_traditional_article_id
{
my ($header, $config, $args) = @_;
@@ -210,6 +236,10 @@ sub add_fml_traditional_article_id
}
+# Descriptions: add "X-ML-Count: NUM" to header
+# Arguments: OBJ($header) OBJ($config) HASH_REF($args)
+# Side Effects: update $header
+# Return Value: none
sub add_fml_article_id
{
my ($header, $config, $args) = @_;
@@ -238,6 +268,10 @@ add X-Sequence.
=cut
+# Descriptions: add "X-ML-Server: fml .." and "List-Software: fml .." to header
+# Arguments: OBJ($header) OBJ($config) HASH_REF($args)
+# Side Effects: update $header
+# Return Value: none
sub add_software_info
{
my ($header, $config, $args) = @_;
@@ -258,6 +292,10 @@ sub add_software_info
}
+# Descriptions: add List-* to header
+# Arguments: OBJ($header) OBJ($config) HASH_REF($args)
+# Side Effects: update $header
+# Return Value: none
sub add_rfc2369
{
my ($header, $config, $args) = @_;
@@ -302,6 +340,10 @@ sub add_rfc2369
}
+# Descriptions: add "X-Sequence: elena NUM" to header
+# Arguments: OBJ($header) OBJ($config) HASH_REF($args)
+# Side Effects: update $header
+# Return Value: none
sub add_x_sequence
{
my ($header, $config, $args) = @_;
@@ -322,6 +364,10 @@ add or replace C<Reply-To:>.
=cut
+# Descriptions: rewrite subject if needed
+# Arguments: OBJ($header) OBJ($config) HASH_REF($args)
+# Side Effects: update $header
+# Return Value: none
sub rewrite_subject_tag
{
my ($header, $config, $args) = @_;
@@ -337,6 +383,10 @@ sub rewrite_subject_tag
}
+# Descriptions: rewrite Reply-To: if needed
+# Arguments: OBJ($header) OBJ($config) HASH_REF($args)
+# Side Effects: update $header
+# Return Value: none
sub rewrite_reply_to
{
my ($header, $config, $args) = @_;
@@ -362,6 +412,11 @@ The keys are space separeted.
=cut
+
+# Descriptions: remove some header fields defined in $config
+# Arguments: OBJ($header) OBJ($config) HASH_REF($args)
+# Side Effects: update $header
+# Return Value: none
sub delete_unsafe_header_fields
{
my ($header, $config, $args) = @_;
@@ -385,6 +440,10 @@ References: fields.
=cut
+# Descriptions: remove tag like string in $str
+# Arguments: OBJ($header) STR($str)
+# Side Effects: none
+# Return Value: STR
sub delete_subject_tag_like_string
{
my ($header, $str) = @_;
@@ -395,6 +454,11 @@ sub delete_subject_tag_like_string
}
+# Descriptions: extract Message-ID:'s in $header from
+# In-Reply-To: and References: fields.
+# Arguments: OBJ($header)
+# Side Effects: none
+# Return Value: HASH_ARRAY
sub extract_message_id_references
{
my ($header) = @_;
@@ -439,6 +503,11 @@ C<address_for_post> address.
=cut
+# Descriptions: check whether message-id is duplicated or not
+# against mail loop.
+# Arguments: OBJ($header) OBJ($config) HASH_REF($args)
+# Side Effects: update cache
+# Return Value: STR or 0
sub verify_message_id_uniqueness
{
my ($header, $config, $args) = @_;
@@ -469,6 +538,11 @@ sub verify_message_id_uniqueness
return $dup;
}
+
+# Descriptions: check X-ML-Info: duplication against mail loop
+# Arguments: OBJ($header) OBJ($config) HASH_REF($args)
+# Side Effects: none
+# Return Value: 1 or 0
sub verify_x_ml_info_uniqueness
{
my ($header, $config, $args) = @_;
@@ -483,6 +557,11 @@ sub verify_x_ml_info_uniqueness
}
}
+
+# Descriptions: check mail loop by List-Post: field
+# Arguments: OBJ($header) OBJ($config) HASH_REF($args)
+# Side Effects: none
+# Return Value: 1 or 0
sub verify_list_post_uniqueness
{
my ($header, $config, $args) = @_;