diff options
| author | fukachan <fukachan> | 2002-04-28 13:34:15 +0000 |
|---|---|---|
| committer | fukachan <fukachan> | 2002-04-28 13:34:15 +0000 |
| commit | a1deb717ee1aa15d13d58fbb30b17536f1b401b8 (patch) | |
| tree | 96e10d8cefd582df39208dfcd16142bf16fb4796 /fml | |
| parent | 898e2ca19b8eebaf3d768872997d6ddeaedf5cf6 (diff) | |
| download | fml8-a1deb717ee1aa15d13d58fbb30b17536f1b401b8.tar.gz fml8-a1deb717ee1aa15d13d58fbb30b17536f1b401b8.tar.bz2 fml8-a1deb717ee1aa15d13d58fbb30b17536f1b401b8.zip | |
validate by defined() more
Diffstat (limited to 'fml')
| -rw-r--r-- | fml/lib/FML/Header.pm | 17 | ||||
| -rw-r--r-- | fml/lib/FML/Process/Distribute.pm | 12 | ||||
| -rw-r--r-- | fml/lib/Mail/Message.pm | 47 |
3 files changed, 55 insertions, 21 deletions
diff --git a/fml/lib/FML/Header.pm b/fml/lib/FML/Header.pm index 7936cac6..3ca677a9 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.39 2001/12/23 09:20:41 fukachan Exp $ +# $FML: Header.pm,v 1.40 2002/04/08 12:44:23 fukachan Exp $ # package FML::Header; @@ -138,12 +138,17 @@ sub address_clean_up my @addrlist = Mail::Address->parse($addr); # only the first element in the @addrlist array is effective. - $addr = $addrlist[0]->address; - $addr =~ s/^\s*<//; - $addr =~ s/>\s*$//; + if (defined $addrlist[0]) { + $addr = $addrlist[0]->address; + $addr =~ s/^\s*<//; + $addr =~ s/>\s*$//; - # return the result. - return $addr; + # return the result. + return $addr; + } + else { + return undef; + } } diff --git a/fml/lib/FML/Process/Distribute.pm b/fml/lib/FML/Process/Distribute.pm index 78b77a96..2be6afef 100644 --- a/fml/lib/FML/Process/Distribute.pm +++ b/fml/lib/FML/Process/Distribute.pm @@ -3,7 +3,7 @@ # Copyright (C) 2000,2001,2002 Ken'ichi Fukamachi # All rights reserved. # -# $FML: Distribute.pm,v 1.73 2002/04/18 15:36:30 fukachan Exp $ +# $FML: Distribute.pm,v 1.74 2002/04/23 14:10:33 fukachan Exp $ # package FML::Process::Distribute; @@ -108,8 +108,14 @@ sub verify_request if ($eval) { eval qq{ $eval; }; LogWarn($@) if $@; } $curproc->verify_sender_credential(); - $curproc->simple_loop_check(); - $curproc->_check_filter($args); + + unless ($curproc->is_refused()) { + $curproc->simple_loop_check(); + } + + unless ($curproc->is_refused()) { + $curproc->_check_filter($args); + } $eval = $config->get_hook( 'distribute_verify_request_end_hook' ); if ($eval) { eval qq{ $eval; }; LogWarn($@) if $@; } diff --git a/fml/lib/Mail/Message.pm b/fml/lib/Mail/Message.pm index d6d30d4b..1a9502f5 100644 --- a/fml/lib/Mail/Message.pm +++ b/fml/lib/Mail/Message.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: Message.pm,v 1.58 2002/04/28 10:38:16 fukachan Exp $ +# $FML: Message.pm,v 1.59 2002/04/28 11:25:43 fukachan Exp $ # package Mail::Message; @@ -556,16 +556,21 @@ sub _parse_header my ($self, $r) = @_; # parse the header - my (@h) = split(/\n/, $r->{ header }); - for my $x (@h) { $x .= "\n";} + if (defined $r->{ header }) { + my (@h) = split(/\n/, $r->{ header }); + for my $x (@h) { $x .= "\n";} + + # save unix-from (mail-from) in PCB and remove it in the header + if ($h[0] =~ /^From\s/o) { + $r->{ envelope_sender } = (split(/\s+/, $h[0]))[1]; + shift @h; + } - # save unix-from (mail-from) in PCB and remove it in the header - if ($h[0] =~ /^From\s/o) { - $r->{ envelope_sender } = (split(/\s+/, $h[0]))[1]; - shift @h; + $r->{ header_array } = \@h; + } + else { + $r->{ header_array } = []; } - - $r->{ header_array } = \@h; } @@ -1760,7 +1765,13 @@ get whole body size for this object ($self) sub whole_message_header_size { my ($self) = @_; - $self->{ data_info }->{ header_size }; + + if (defined $self->{ data_info }->{ header_size }) { + return $self->{ data_info }->{ header_size }; + } + else { + return 0; + } } @@ -1771,7 +1782,13 @@ sub whole_message_header_size sub whole_message_body_size { my ($self) = @_; - $self->{ data_info }->{ body_size }; + + if (defined $self->{ data_info }->{ body_size }) { + $self->{ data_info }->{ body_size }; + } + else { + return 0; + } } @@ -1789,7 +1806,13 @@ return reverse_path for this object ($self) sub envelope_sender { my ($self) = @_; - $self->{ data_info }->{ envelope_sender }; + + if (defined $self->{ data_info }->{ envelope_sender }) { + return $self->{ data_info }->{ envelope_sender }; + } + else { + return ''; + } } |
