summaryrefslogtreecommitdiff
path: root/fml/lib/Netlib
diff options
context:
space:
mode:
authorfukachan <fukachan>2001-01-19 14:48:49 +0000
committerfukachan <fukachan>2001-01-19 14:48:49 +0000
commit47a5b3930cd6f1a66810299c45a794efb705b3d6 (patch)
tree7bbecc9ac20bb662ddb1acdf0187aef8f56b7887 /fml/lib/Netlib
parent4919e9c841db46667e682283904ecea191ab2be3 (diff)
downloadfml8-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.pm19
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) {