Allow route cache reading to continue if files missing
authorDirk Koopman <djk@tobit.co.uk>
Fri, 13 Jan 2023 19:23:08 +0000 (19:23 +0000)
committerDirk Koopman <djk@tobit.co.uk>
Fri, 13 Jan 2023 19:23:08 +0000 (19:23 +0000)
perl/Route/Node.pm
perl/Route/User.pm

index baa862ae754ef76279ec4a07dab345457f294c91..630db0468cc5c129908069b6765fc1fef6efe33f 100644 (file)
@@ -411,7 +411,7 @@ sub write_cache
            }
        };
        if (!$@ && @s) {
-               my $fh = IO::File->new(">$cachefn") or confess("writing $cachefn $!");
+               my $fh = IO::File->new(">$cachefn") or carp("writing $cachefn $!");
                print $fh "$_" for (sort @s);
                $fh->close;
        } else {
@@ -431,14 +431,14 @@ sub read_cache
        my $ta = [ gettimeofday ];
        my $count;
        
-       my $fh = IO::File->new("$cachefn") or confess("reading $cachefn $!");
+       my $fh = IO::File->new("$cachefn") or carp("reading $cachefn $!");
        while (my $l = <$fh>) {
                chomp $l;
                my ($k, $v) = split /:/, $l, 2;
-               $list{$k} = bless $json->decode($v) or confess("json error decoding '$v'");
+               $list{$k} = bless $json->decode($v) or carp("json error decoding '$v'");
                ++$count;
        }
-       $fh->close;
+       $fh->close if $fh;;
 
        my $diff = _diffms($ta);
        dbg("Route::Node::read_cache time to read $count records from $cachefn : $diff mS");
index 3a6f4f327b030a628c9f9a0c8f6309f864de4566..d9d5249c459d21c5ade0bd143134af3657b49efe 100644 (file)
@@ -113,7 +113,7 @@ sub write_cache
            }
        };
        if (!$@ && @s) {
-               my $fh = IO::File->new(">$cachefn") or confess("writing $cachefn $!");
+               my $fh = IO::File->new(">$cachefn") or carp("writing $cachefn $!");
                print $fh $_ for (sort @s);
                $fh->close;
        } else {
@@ -132,14 +132,14 @@ sub read_cache
        my $ta = [ gettimeofday ];
        my $count;
        
-       my $fh = IO::File->new("$cachefn") or confess("reading $cachefn $!");
+       my $fh = IO::File->new("$cachefn") or carp("reading $cachefn $!");
        while (my $l = <$fh>) {
                chomp $l;
                my ($k, $v) = split /:/, $l, 2;
-               $list{$k} = bless $json->decode($v) or confess("json error decoding '$v'");
+               $list{$k} = bless $json->decode($v) or carp("json error decoding '$v'");
                ++$count;
        }
-       $fh->close;
+       $fh->close if $fh;
 
        my $diff = _diffms($ta);
        dbg("Route::User::read_cache time to read $count records from $cachefn : $diff mS");