diff options
author | Sergey Poznyakoff <gray@gnu.org> | 2014-10-20 08:17:52 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org> | 2014-10-20 08:17:52 +0300 |
commit | d8f25ca5f84413187ba4a41c09d552beeb2c0658 (patch) | |
tree | 20ebadad1161af784104d7b42a7b1723af80ee82 | |
parent | 8e38121f066cfde244782b05416f10e41803dd4c (diff) | |
download | dnstools-d8f25ca5f84413187ba4a41c09d552beeb2c0658.tar.gz dnstools-d8f25ca5f84413187ba4a41c09d552beeb2c0658.tar.bz2 |
whoseip: ensure database consistency during export
* whoseip/Whoseip/DB.pm (ipdb_export): Operate on locked database.
-rw-r--r-- | whoseip/Whoseip/DB.pm | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/whoseip/Whoseip/DB.pm b/whoseip/Whoseip/DB.pm index 21a4192..a455a01 100644 --- a/whoseip/Whoseip/DB.pm +++ b/whoseip/Whoseip/DB.pm @@ -932,21 +932,22 @@ to recreate the database via B<Whoseip::DB::ipdb_import>. sub ipdb_export { my ($dbf, $fd) = @_; $fd = *STDOUT unless defined($fd); + ipdb_locker($dbf, lock => LOCK_EX); my $ug = new Data::UUID; - print $fd "# Whoseip dump from file $dbf->{filename}\n"; print $fd "# UUID ".$ug->to_string($dbf->{uuid})."\n"; local $Data::Dumper::Indent = 0; local $Data::Dumper::Terse = 1; foreach my $off (values %{$dbf->{rootidx}}) { ipdb_dump_page($dbf, $off, $fd); } + ipdb_locker($dbf, lock => LOCK_UN); } =pod =head1 B<$res = Whoseip::DB::ipdb_import(I<$dbf>>[B<, I<$fd>>]B<);> |