This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "IPFire 2.x development tree".
The branch, next has been updated via 0ca3baedfc623a968c7e38c356352b4f64c9f695 (commit) via f107bb39c53266cd7b2f70c8875dbc07221aeeab (commit) via 035f6c75aed2165a8ecd92571c48daf07edf4ab5 (commit) from 01db691a1ebd569afdc0d9304a67b4e048708b84 (commit)
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- commit 0ca3baedfc623a968c7e38c356352b4f64c9f695 Author: Stefan Schantl stefan.schantl@ipfire.org Date: Fri Jan 11 10:05:24 2019 +0100
Revert "geoip-functions.pl: Re-write code to lookup the iso country code of a given IP-address."
Enhanching the code to fix the lookup will rapidely slow down the lookup speed. Because using the GeoIP2 module is no option ( the reasons have been described in the commit message which will now reverted), we have decided to temporary switch back to the old module until a nice solution has been found.
This reverts commit ff21ff90d24de0f648d24bb906c45738b81ce67a.
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit f107bb39c53266cd7b2f70c8875dbc07221aeeab Author: Stefan Schantl stefan.schantl@ipfire.org Date: Fri Jan 11 10:05:23 2019 +0100
Revert "GeoIP: Drop legacy GeoIP perl module."
This reverts commit 9d1708e081d7e7ba490db3620509dcce29cb0ae8.
Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
commit 035f6c75aed2165a8ecd92571c48daf07edf4ab5 Author: Matthias Fischer matthias.fischer@ipfire.org Date: Fri Jan 11 01:32:37 2019 +0100
xtables-addons: Fix typo in lfs
Just some typos...
Best, Matthias
Signed-off-by: Matthias Fischer matthias.fischer@ipfire.org Signed-off-by: Stefan Schantl stefan.schantl@ipfire.org Signed-off-by: Michael Tremer michael.tremer@ipfire.org
-----------------------------------------------------------------------
Summary of changes: config/cfgroot/geoip-functions.pl | 75 ++++----------------------------------- config/rootfiles/common/GeoIP | 12 +++++++ lfs/{Archive-Zip => GeoIP} | 18 ++++++---- lfs/xtables-addons | 2 +- make.sh | 1 + 5 files changed, 32 insertions(+), 76 deletions(-) create mode 100644 config/rootfiles/common/GeoIP copy lfs/{Archive-Zip => GeoIP} (84%)
Difference in files: diff --git a/config/cfgroot/geoip-functions.pl b/config/cfgroot/geoip-functions.pl index 9f86a09ba..c8ff47d2e 100644 --- a/config/cfgroot/geoip-functions.pl +++ b/config/cfgroot/geoip-functions.pl @@ -23,82 +23,21 @@
package GeoIP;
-require '/var/ipfire/network-functions.pl'; - +use Geo::IP::PurePerl; use Locale::Codes::Country;
-# Path where all the GeoIP related databases are stored. -my $geoip_database_dir = "/var/lib/GeoIP"; - -# Database which contains all IPv4 networks. -my $address_ipv4_database = "GeoLite2-Country-Blocks-IPv4.csv"; - -# Database wich contains the locations data. -my $location_database = "GeoLite2-Country-Locations-en.csv"; +my $database;
sub lookup($) { my $address = shift; - my $location_id; - my $country_code; - - # Check if the given address is valid. - unless(&Network::check_ip_address($address)) { - return; - } - - # Open the address database. - open(ADDRESS, "$geoip_database_dir/$address_ipv4_database") or die "Could not open $geoip_database_dir/$address_ipv4_database. $!\n"; - - # Loop through the file. - while(my $line = <ADDRESS>) { - # Remove newlines. - chomp($line); - - # Split the line content. - my ($network, $geoname_id, $registered_country_geoname_id, $represented_country_geoname_id, $is_anonymous_proxy, $is_satellite_provider) = split(/,/, $line);
- # Check if the given address is part of the current processed network. - if (&Network::ip_address_in_network($address, $network)) { - # Store the geoname_id for this address. - $location_id = $geoname_id; - - # Break loop. - last; - } + # Load the database into memory if not already done + if (!$database) { + $database = Geo::IP::PurePerl->new(GEOIP_MEMORY_CACHE); }
- # Return nothing if no location_id could be found. - return unless($location_id); - - # Close filehandle. - close(ADDRESS); - - # Open the location database. - open(LOCATION, "$geoip_database_dir/$location_database") or die "Could not open $geoip_database_dir/$location_database. $!\n"; - - # Loop through the file. - while(my $line = <LOCATION>) { - # Remove newlines. - chomp($line); - - # Split the line content. - my ($geoname_id, $locale_code, $continent_code, $continent_name, $country_iso_code, $country_name, $is_in_european_union) = split(/,/, $line); - - # Check if the correct location_id has been found. - if ($geoname_id eq $location_id) { - # Store the county code. - $country_code = $country_iso_code; - - # Break loop. - last; - } - } - - # Close filehandle. - close(LOCATION); - - # Return the obtained country code. - return $country_code; + # Return the name of the country + return $database->country_code_by_name($address); }
# Function to get the flag icon for a specified country code. diff --git a/config/rootfiles/common/GeoIP b/config/rootfiles/common/GeoIP new file mode 100644 index 000000000..d76ba645e --- /dev/null +++ b/config/rootfiles/common/GeoIP @@ -0,0 +1,12 @@ +#usr/bin/geoip-lookup +#usr/lib/perl5/site_perl/5.12.3/Geo +#usr/lib/perl5/site_perl/5.12.3/Geo/IP +usr/lib/perl5/site_perl/5.12.3/Geo/IP/PurePerl.pm +#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Geo +#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Geo/IP +#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Geo/IP/PurePerl +#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/Geo/IP/PurePerl/.packlist +#usr/share/GeoIP +usr/share/GeoIP/GeoIP.dat +#usr/share/man/man1/geoip-lookup.1 +#usr/share/man/man3/Geo::IP::PurePerl.3 diff --git a/lfs/GeoIP b/lfs/GeoIP new file mode 100644 index 000000000..ce758d8a5 --- /dev/null +++ b/lfs/GeoIP @@ -0,0 +1,84 @@ +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2007-2018 IPFire Team info@ipfire.org # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see http://www.gnu.org/licenses/. # +# # +############################################################################### + +############################################################################### +# Definitions +############################################################################### + +include Config + +VER = 1.25 +DATVER = 30062018 + +THISAPP = Geo-IP-PurePerl-$(VER) +DL_FILE = $(THISAPP).tar.gz +DL_FROM = $(URL_IPFIRE) +DIR_APP = $(DIR_SRC)/$(THISAPP) +TARGET = $(DIR_INFO)/$(THISAPP) + +############################################################################### +# Top-level Rules +############################################################################### + +objects = $(DL_FILE) GeoIP.dat-$(DATVER).gz + +$(DL_FILE) = $(DL_FROM)/$(DL_FILE) +GeoIP.dat-$(DATVER).gz = $(DL_FROM)/GeoIP.dat-$(DATVER).gz + +$(DL_FILE)_MD5 = a47a1b71f7cd7c46cca9efcc448e0726 +GeoIP.dat-$(DATVER).gz_MD5 = d538e57ad9268fdc7955c6cf9a37c4a9 + +install : $(TARGET) + +check : $(patsubst %,$(DIR_CHK)/%,$(objects)) + +download :$(patsubst %,$(DIR_DL)/%,$(objects)) + +md5 : $(subst %,%_MD5,$(objects)) + +############################################################################### +# Downloading, checking, md5sum +############################################################################### + +$(patsubst %,$(DIR_CHK)/%,$(objects)) : + @$(CHECK) + +$(patsubst %,$(DIR_DL)/%,$(objects)) : + @$(LOAD) + +$(subst %,%_MD5,$(objects)) : + @$(MD5) + +############################################################################### +# Installation Details +############################################################################### + +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) + @$(PREBUILD) + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) + cd $(DIR_APP) && patch -Np0 -i $(DIR_SRC)/src/patches/geoip_1_25_change_database_path.patch + cd $(DIR_APP) && perl Makefile.PL + cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE) + cd $(DIR_APP) && make install + cd $(DIR_APP) && mkdir -p /usr/share/GeoIP && \ + zcat $(DIR_DL)/GeoIP.dat-$(DATVER).gz > /usr/share/GeoIP/GeoIP.dat + cd $(DIR_APP) && chmod 777 /srv/web/ipfire/html/images/flags + @rm -rf $(DIR_APP) + @$(POSTBUILD) diff --git a/lfs/xtables-addons b/lfs/xtables-addons index da67aa761..260820955 100644 --- a/lfs/xtables-addons +++ b/lfs/xtables-addons @@ -96,7 +96,7 @@ ifeq "$(USPACE)" "1" cd $(DIR_APP) && make install
# Install xt_geoip_build. - cd $(DIR_APP) && install -m 755 GeoIP/xt_geoip_build \ + cd $(DIR_APP) && install -m 755 geoip/xt_geoip_build \ /usr/local/bin/ else cd $(DIR_APP) && ./configure \ diff --git a/make.sh b/make.sh index 1d9163dce..601f1675b 100755 --- a/make.sh +++ b/make.sh @@ -1305,6 +1305,7 @@ buildipfire() { lfsmake2 python-daemon lfsmake2 python-ipaddress lfsmake2 glib + lfsmake2 GeoIP lfsmake2 ntp lfsmake2 openssh lfsmake2 fontconfig
hooks/post-receive -- IPFire 2.x development tree