diff options
| author | fukachan <fukachan> | 2001-01-19 14:48:49 +0000 |
|---|---|---|
| committer | fukachan <fukachan> | 2001-01-19 14:48:49 +0000 |
| commit | 47a5b3930cd6f1a66810299c45a794efb705b3d6 (patch) | |
| tree | 7bbecc9ac20bb662ddb1acdf0187aef8f56b7887 /fml/lib/Netlib | |
| parent | 4919e9c841db46667e682283904ecea191ab2be3 (diff) | |
| download | fml8-47a5b3930cd6f1a66810299c45a794efb705b3d6.tar.gz fml8-47a5b3930cd6f1a66810299c45a794efb705b3d6.tar.bz2 fml8-47a5b3930cd6f1a66810299c45a794efb705b3d6.zip | |
check we can open $map
Diffstat (limited to 'fml/lib/Netlib')
| -rw-r--r-- | fml/lib/Netlib/SMTP.pm | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/fml/lib/Netlib/SMTP.pm b/fml/lib/Netlib/SMTP.pm index 543d9888..b0a8a7ea 100644 --- a/fml/lib/Netlib/SMTP.pm +++ b/fml/lib/Netlib/SMTP.pm @@ -250,10 +250,24 @@ sub deliver push(@maps, $map); } + MAP: for my $map ( @maps ) { # uniq $map next if $used_map{ $map }; $used_map{ $map } = 1; + + # try to open $map + eval q{ + use IO::MapAdapter; + my $obj = new IO::MapAdapter $map; + if (defined $obj) { + $obj->open || croak("cannot open $map"); + } + }; + if ($@) { + Log("Error: cannot open and ignore $map"); + next MAP; + } $self->_set_target_map($map); $self->_set_map_status($map, 'not done'); @@ -467,7 +481,10 @@ sub _send_recipient_list_by_recipient_map my $num_recipients = 0; my $recipient_limit = $self->{_recipient_limit}; - $obj->open; + $obj->open || do { + $self->_error_why( $obj->error ); + return undef; + }; # roll back the previous file offset if ($self->_get_map_position($map) > 0) { |
