diff options
| author | fukachan <fukachan> | 2006-02-24 13:53:51 +0000 |
|---|---|---|
| committer | fukachan <fukachan> | 2006-02-24 13:53:51 +0000 |
| commit | 86b07a4eaeb377b544fe824c3536d77b74f4f3d2 (patch) | |
| tree | b3b8a201efb6956bc5db4c4e595b3708ed856d0e | |
| parent | 6779578721756a794830a8908dcc68777e064316 (diff) | |
| download | fml8-86b07a4eaeb377b544fe824c3536d77b74f4f3d2.tar.gz fml8-86b07a4eaeb377b544fe824c3536d77b74f4f3d2.tar.bz2 fml8-86b07a4eaeb377b544fe824c3536d77b74f4f3d2.zip | |
care for combination of PERMIT_XXX_FROM and REJECT_XXX_HANDLER.
| -rwxr-xr-x | regress/fml4to8/test.pl | 45 |
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"; |
