Fix GeoIP2 database file extraction (#764)

This commit is contained in:
Vincent Herbet 2019-10-17 15:42:27 +02:00 committed by Arkshine
parent 5e48c9b6db
commit 6fb27a03a7

View File

@ -7,7 +7,7 @@ use File::Basename;
use File::stat; use File::stat;
use File::Temp qw/ tempfile :seekable/; use File::Temp qw/ tempfile :seekable/;
use Net::FTP; use Net::FTP;
use IO::Uncompress::Gunzip qw(gunzip $GunzipError); use Archive::Tar;
use Time::localtime; use Time::localtime;
my ($ftp_file, $ftp_host, $ftp_user, $ftp_pass, $ftp_path); my ($ftp_file, $ftp_host, $ftp_user, $ftp_pass, $ftp_path);
@ -72,12 +72,10 @@ if (-e $geoIPfile) {
unlink($geoIPfile); unlink($geoIPfile);
} }
open(my $fh, ">", $geoIPfile) my $next = Archive::Tar->iter('../GeoLite2-Country.tar.gz', 1, {filter => qr/\.mmdb$/});
or die "cannot open $geoIPfile for writing: $!"; while (my $file = $next->()) {
binmode($fh); $file->extract($geoIPfile) or warn "Extraction failed";
gunzip '../GeoLite2-Country.tar.gz' => $fh }
or die "gunzip failed: $GunzipError\n";
close($fh);
my (@packages,@mac_exclude); my (@packages,@mac_exclude);
@packages = ('base', 'cstrike', 'dod', 'esf', 'ns', 'tfc', 'ts'); @packages = ('base', 'cstrike', 'dod', 'esf', 'ns', 'tfc', 'ts');