summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfukachan <fukachan>2006-02-24 13:53:51 +0000
committerfukachan <fukachan>2006-02-24 13:53:51 +0000
commit86b07a4eaeb377b544fe824c3536d77b74f4f3d2 (patch)
treeb3b8a201efb6956bc5db4c4e595b3708ed856d0e
parent6779578721756a794830a8908dcc68777e064316 (diff)
downloadfml8-86b07a4eaeb377b544fe824c3536d77b74f4f3d2.tar.gz
fml8-86b07a4eaeb377b544fe824c3536d77b74f4f3d2.tar.bz2
fml8-86b07a4eaeb377b544fe824c3536d77b74f4f3d2.zip
care for combination of PERMIT_XXX_FROM and REJECT_XXX_HANDLER.
-rwxr-xr-xregress/fml4to8/test.pl45
1 files changed, 40 insertions, 5 deletions
diff --git a/regress/fml4to8/test.pl b/regress/fml4to8/test.pl
index f7f13c12..24aa668a 100755
--- a/regress/fml4to8/test.pl
+++ b/regress/fml4to8/test.pl
@@ -1,11 +1,11 @@
#!/usr/bin/env perl
#
-# $FML$
+# $FML: test.pl,v 1.1 2006/02/24 12:49:13 fukachan Exp $
#
use strict;
use Carp;
-use vars qw($counter);
+use vars qw($counter %variable);
my $config_file = shift || "./work/CF";
my $base_dir = shift || "/var/tmp/fml4to8";
@@ -39,7 +39,28 @@ sub read_config
while ($buf = <$rh>) {
if ($buf =~ /^(\S+)\s*=\s*(.*)/) {
my ($name, $value) = ($1, $2);
- expand($name, $value);
+ $variable{ $name } = $value;
+
+ if ($name eq 'PERMIT_POST_FROM' ||
+ $name eq 'PERMIT_COMMAND_FROM') {
+ next LINE;
+ }
+
+ if ($name eq 'REJECT_POST_HANDLER') {
+ my (@v) = _expand( $variable{ PERMIT_POST_FROM } );
+ for my $_v (@v) {
+ expand($name, $value, { PERMIT_POST_FROM => $_v } );
+ }
+ }
+ elsif ($name eq 'REJECT_COMMAND_HANDLER') {
+ my (@v) = _expand( $variable{ PERMIT_COMMAND_FROM } );
+ for my $_v (@v) {
+ expand($name, $value, { PERMIT_COMMAND_FROM => $_v } );
+ }
+ }
+ else {
+ expand($name, $value);
+ }
}
}
@@ -48,10 +69,17 @@ sub read_config
}
+sub _expand
+{
+ my ($value) = @_;
+ return split(/\s+\|\s+/, $value);
+}
+
+
sub expand
{
- my ($name, $value) = @_;
- my (@v) = split(/\s+\|\s+/, $value);
+ my ($name, $value, $opts) = @_;
+ my (@v) = _expand($value);
for my $v (@v) {
$counter++;
@@ -64,6 +92,13 @@ sub expand
print $wh "\n";
print $wh "\$MAIL_LIST = \"elena\\\@fml.org\";\n\n";
+ if (defined $opts && %$opts) {
+ my ($k, $v);
+ while (($k, $v) = each %$opts) {
+ print $wh "\$${k} = \"$v\";\n\n";
+ }
+ }
+
$v =~ s/\s*//g;
if ($v =~ /^\d+$/) {
print $wh "\$${name} = $v;\n\n";