public inbox for ipfire-scm@lists.ipfire.org
 help / color / mirror / Atom feed
* [git.ipfire.org] IPFire 2.x development tree branch, next, updated. 7b97337afb4576d4bacbe854e8822e97b4cd1a40
@ 2020-11-09 14:11 Michael Tremer
  0 siblings, 0 replies; only message in thread
From: Michael Tremer @ 2020-11-09 14:11 UTC (permalink / raw)
  To: ipfire-scm

[-- Attachment #1: Type: text/plain, Size: 19791 bytes --]

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  7b97337afb4576d4bacbe854e8822e97b4cd1a40 (commit)
       via  07e42be9783ddfe2c6e49d98676fcdb7f2dfecd7 (commit)
       via  427190d5789b02331cb91d72f0fb7f97374a0aa0 (commit)
       via  5bf91fe1b1fb04e9dd422bdc1638e2592fd073b8 (commit)
       via  f46fd078148d4c6959e7ab3c52f1911bd8fea9a6 (commit)
       via  b62d7e0cc71cc1ff23d66dd8baf0f5f3c5c7a29b (commit)
      from  9141282b09db282ae202302e25da4ed924e8deec (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 7b97337afb4576d4bacbe854e8822e97b4cd1a40
Author: Michael Tremer <michael.tremer(a)ipfire.org>
Date:   Mon Nov 9 14:11:16 2020 +0000

    core153: Ship location changes
    
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit 07e42be9783ddfe2c6e49d98676fcdb7f2dfecd7
Author: Stefan Schantl <stefan.schantl(a)ipfire.org>
Date:   Sat Nov 7 19:47:24 2020 +0100

    Adjust CGI files to work with latest location-function.pl changes.
    
    Fixes #12515.
    
    Signed-off-by: Stefan Schantl <stefan.schantl(a)ipfire.org>
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit 427190d5789b02331cb91d72f0fb7f97374a0aa0
Author: Stefan Schantl <stefan.schantl(a)ipfire.org>
Date:   Sat Nov 7 19:47:23 2020 +0100

    locations-functions.pl: Allow get_locations() function to skip special locations.
    
    When adding "no_special_locations" to the function call as argument
    the special locations liks "A1, A2, A3 etc" will not be added to the
    returned array as available locations.
    
    Signed-off-by: Stefan Schantl <stefan.schantl(a)ipfire.org>
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit 5bf91fe1b1fb04e9dd422bdc1638e2592fd073b8
Author: Stefan Schantl <stefan.schantl(a)ipfire.org>
Date:   Sat Nov 7 19:47:22 2020 +0100

    location-functions.pl: Add get_continent_code() function.
    
    This tiny function is used to get the continent code for a given
    country code.
    
    Signed-off-by: Stefan Schantl <stefan.schantl(a)ipfire.org>
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit f46fd078148d4c6959e7ab3c52f1911bd8fea9a6
Author: Stefan Schantl <stefan.schantl(a)ipfire.org>
Date:   Sat Nov 7 19:47:21 2020 +0100

    location-functions.pl: Add END block to release the database handle.
    
    Reference #12515.
    
    Signed-off-by: Stefan Schantl <stefan.schantl(a)ipfire.org>
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

commit b62d7e0cc71cc1ff23d66dd8baf0f5f3c5c7a29b
Author: Stefan Schantl <stefan.schantl(a)ipfire.org>
Date:   Sat Nov 7 19:47:20 2020 +0100

    location-functions.pl: Use a single script-wide db_handle.
    
    Create and use a single script-wide database handle for libloc to
    prevent from creating multiple ones.
    
    This helps saving memory, especially on small systems.
    
    Reference #12515.
    
    Signed-off-by: Stefan Schantl <stefan.schantl(a)ipfire.org>
    Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>

-----------------------------------------------------------------------

Summary of changes:
 config/cfgroot/location-functions.pl             | 45 ++++++++++++++++++------
 config/rootfiles/core/153/filelists/files        | 10 ++++++
 html/cgi-bin/connections.cgi                     |  7 ++--
 html/cgi-bin/country.cgi                         |  5 +--
 html/cgi-bin/dns.cgi                             |  5 +--
 html/cgi-bin/ipinfo.cgi                          |  5 ++-
 html/cgi-bin/logs.cgi/firewalllog.dat            |  6 ++--
 html/cgi-bin/logs.cgi/firewalllogcountry.dat     |  5 +--
 html/cgi-bin/logs.cgi/firewalllogip.dat          |  6 ++--
 html/cgi-bin/logs.cgi/showrequestfromcountry.dat |  7 ++--
 html/cgi-bin/ovpnmain.cgi                        |  5 +--
 html/cgi-bin/remote.cgi                          |  6 +---
 html/cgi-bin/tor.cgi                             |  7 ++--
 lfs/tor                                          |  2 +-
 14 files changed, 63 insertions(+), 58 deletions(-)

Difference in files:
diff --git a/config/cfgroot/location-functions.pl b/config/cfgroot/location-functions.pl
index 2cfe7f908..fdf2c6efe 100644
--- a/config/cfgroot/location-functions.pl
+++ b/config/cfgroot/location-functions.pl
@@ -55,6 +55,9 @@ our $keyfile = "$location_dir/signing-key.pem";
 # Directory which contains the exported databases.
 our $xt_geoip_db_directory = "/usr/share/xt_geoip/";
 
+# Create libloc database handle.
+my $db_handle = &init();
+
 #
 ## Tiny function to init the location database.
 #
@@ -86,7 +89,7 @@ sub verify ($) {
 ## Function to the the country code of a given address.
 #
 sub lookup_country_code($$) {
-	my ($db_handle, $address) = @_;
+	my ($address) = @_;
 
 	# Lookup the given address.
 	my $country_code = &Location::lookup_country_code($db_handle, $address);
@@ -174,22 +177,37 @@ sub get_full_country_name($) {
 
 # Function to get all available locations.
 sub get_locations() {
-	# Create libloc database handle.
-	my $db_handle = &init();
+	my ($mode) = @_;
+
+	# Set default mode to add_special_locations.
+	$mode = $mode ? $mode : "add_special_locations";
 
 	# Get locations which are stored in the location database.
-	my @database_locations = &Location::database_countries($db_handle);
+	my @locations = &Location::database_countries($db_handle);
 
-	# Merge special locations array and the database locations array.
-	my @locations = (@special_locations, @database_locations);
+	# Check if the special locations should be added.
+	if ($mode ne "no_special_locations") {
+		# Merge special locations array and the database locations array.
+		@locations = (@special_locations, @locations);
+	}
 
 	# Sort locations array in alphabetical order.
 	my @sorted_locations = sort(@locations);
 
-	# Return the array..
+	# Return the array.
 	return @sorted_locations;
 }
 
+# Function to get the continent code of a given country code.
+sub get_continent_code($) {
+	my ($country_code) = @_;
+
+	# Use location module to grab the continent code.
+	my $continent_code = &Location::get_continent_code($db_handle, $country_code);
+
+	return $continent_code;
+}
+
 # Function to check if a given address has one ore more special flags.
 sub address_has_flags($) {
 	my ($address) = @_;
@@ -197,9 +215,6 @@ sub address_has_flags($) {
 	# Array to store the flags of the address.
 	my @flags;
 
-	# Init libloc database handle.
-	my $db_handle = &init();
-
 	# Loop through the hash of possible network flags.
 	foreach my $flag (keys(%network_flags)) {
 		# Check if the address has the current flag.
@@ -221,4 +236,14 @@ sub address_has_flags($) {
 	return @flags;
 }
 
+# Custom END declaration which will be executed when perl
+# ends, to release the database handle to libloc.
+END {
+	# Check if a database handle exists.
+	if ($db_handle) {
+		# Destroy libloc database handle.
+		&Location::DESTROY($db_handle);
+	}
+}
+
 1;
diff --git a/config/rootfiles/core/153/filelists/files b/config/rootfiles/core/153/filelists/files
index 1a95431f0..04605c232 100644
--- a/config/rootfiles/core/153/filelists/files
+++ b/config/rootfiles/core/153/filelists/files
@@ -3,9 +3,19 @@ etc/ntp.conf
 etc/os-release
 etc/system-release
 etc/sysctl.conf
+srv/web/ipfire/cgi-bin/connections.cgi
+srv/web/ipfire/cgi-bin/country.cgi
 srv/web/ipfire/cgi-bin/credits.cgi
 srv/web/ipfire/cgi-bin/dns.cgi
 srv/web/ipfire/cgi-bin/index.cgi
+srv/web/ipfire/cgi-bin/ipinfo.cgi
 srv/web/ipfire/cgi-bin/location-block.cgi
+srv/web/ipfire/cgi-bin/logs.cgi/firewalllog.dat
+srv/web/ipfire/cgi-bin/logs.cgi/firewalllogcountry.dat
+srv/web/ipfire/cgi-bin/logs.cgi/firewalllogip.dat
+srv/web/ipfire/cgi-bin/logs.cgi/showrequestfromcountry.dat
+srv/web/ipfire/cgi-bin/ovpnmain.cgi
+srv/web/ipfire/cgi-bin/remote.cgi
 srv/web/ipfire/cgi-bin/vpnmain.cgi
+var/ipfire/location-functions.pl
 var/ipfire/langs
diff --git a/html/cgi-bin/connections.cgi b/html/cgi-bin/connections.cgi
index 6c55bd7a0..8613b9d9b 100644
--- a/html/cgi-bin/connections.cgi
+++ b/html/cgi-bin/connections.cgi
@@ -86,9 +86,6 @@ if ( $debug ){
 my @dummy = ( ${Header::table1colour} );
 undef (@dummy);
 
-# Init libloc database connection.
-my $libloc_db_handle = &Location::Functions::init();
-
 # check sorting arguments
 if ( $cgiin{'sort_field'} ~~ [ '1','2','3','4','5','6','7','8','9' ] ) {
 	$SORT_FIELD = $cgiin{'sort_field'};
@@ -554,9 +551,9 @@ foreach my $line (@conntrack) {
 	my $bytes_out = format_bytes($bytes[1]);
 
 	# enumerate location information
-	my $srcccode = &Location::Functions::lookup_country_code($libloc_db_handle, $sip_ret);
+	my $srcccode = &Location::Functions::lookup_country_code($sip_ret);
 	my $src_flag_icon = &Location::Functions::get_flag_icon($srcccode);
-	my $dstccode = &Location::Functions::lookup_country_code($libloc_db_handle, $dip_ret);
+	my $dstccode = &Location::Functions::lookup_country_code($dip_ret);
 	my $dst_flag_icon = &Location::Functions::get_flag_icon($dstccode);
 
 	# Format TTL
diff --git a/html/cgi-bin/country.cgi b/html/cgi-bin/country.cgi
index b519d89b3..b1c72bb22 100644
--- a/html/cgi-bin/country.cgi
+++ b/html/cgi-bin/country.cgi
@@ -52,11 +52,8 @@ print<<END;
 	</tr>
 END
 
-# Init libloc database connection.
-my $db_handle = &Location::Functions::init();
-
 # Get a list of all supported country codes.
-my @countries = &Location::database_countries($db_handle);
+my @countries = &Location::database_countries();
 
 # Loop through whole country list.
 foreach my $country (@countries) {
diff --git a/html/cgi-bin/dns.cgi b/html/cgi-bin/dns.cgi
index 13dd9d6a0..762e77ff1 100755
--- a/html/cgi-bin/dns.cgi
+++ b/html/cgi-bin/dns.cgi
@@ -269,9 +269,6 @@ my %dns_servers = ();
 # Read-in config file.
 &General::readhasharray("$servers_file", \%dns_servers);
 
-# Libloc database handle
-my $libloc_db_handle = &Location::Functions::init();
-
 &Header::openpage($Lang::tr{'dns title'}, 1, '');
 
 &Header::openbigbox('100%', 'left', '', $errormessage);
@@ -598,7 +595,7 @@ END
 				}
 
 				# collect more information about name server (rDNS, country code)
-				my $ccode = &Location::Functions::lookup_country_code($libloc_db_handle, $nameserver);
+				my $ccode = &Location::Functions::lookup_country_code($nameserver);
 				my $flag_icon = &Location::Functions::get_flag_icon($ccode);
 
 				my $rdns;
diff --git a/html/cgi-bin/ipinfo.cgi b/html/cgi-bin/ipinfo.cgi
index d8cb6c6b7..ecc7c436c 100644
--- a/html/cgi-bin/ipinfo.cgi
+++ b/html/cgi-bin/ipinfo.cgi
@@ -62,12 +62,11 @@ if (&General::validip($addr)) {
 	if (!$hostname) { $hostname = $Lang::tr{'lookup failed'}; }
 
 	# enumerate location information for IP address...
-	my $db_handle = &Location::Functions::init();
-	my $ccode = &Location::Functions::lookup_country_code($db_handle, $addr);
+	my $ccode = &Location::Functions::lookup_country_code($addr);
 	my @network_flags = &Location::Functions::address_has_flags($addr);
 
 	# Try to get the continent of the country code.
-	my $continent = &Location::get_continent_code($db_handle, $ccode);
+	my $continent = &Location::Functions::get_continent_code($ccode);
 
 	# Check if a whois server for the continent is known.
 	if($whois_servers_by_continent{$continent}) {
diff --git a/html/cgi-bin/logs.cgi/firewalllog.dat b/html/cgi-bin/logs.cgi/firewalllog.dat
index 2b690e35b..361bf0432 100644
--- a/html/cgi-bin/logs.cgi/firewalllog.dat
+++ b/html/cgi-bin/logs.cgi/firewalllog.dat
@@ -24,9 +24,6 @@ require "${General::swroot}/location-functions.pl";
 require "${General::swroot}/lang.pl";
 require "${General::swroot}/header.pl";
 
-# Libloc database handle.
-my $libloc_db_handle = &Location::Functions::init();
-
 my %color = ();
 my %mainsettings = ();
 &General::readhash("${General::swroot}/main/settings", \%mainsettings);
@@ -354,7 +351,8 @@ foreach $_ (@log)
 	$srcport=$1 if $packet =~ /SPT=(\d+)/;
 	$dstport=$1 if $packet =~ /DPT=(\d+)/;
 
-	my $ccode = &Location::Functions::lookup_country_code($libloc_db_handle, $srcaddr);
+	# Get the country code.
+	my $ccode = &Location::Functions::lookup_country_code($srcaddr);
 
 	my $servi = uc(getservbyport($srcport, lc($proto)));
 	if ($servi ne '' && $srcport < 1024) {
diff --git a/html/cgi-bin/logs.cgi/firewalllogcountry.dat b/html/cgi-bin/logs.cgi/firewalllogcountry.dat
index 701abab2c..e3901b945 100644
--- a/html/cgi-bin/logs.cgi/firewalllogcountry.dat
+++ b/html/cgi-bin/logs.cgi/firewalllogcountry.dat
@@ -22,9 +22,6 @@ require "${General::swroot}/location-functions.pl";
 require "${General::swroot}/lang.pl";
 require "${General::swroot}/header.pl";
 
-# Libloc database handle.
-my $libloc_db_handle = &Location::Functions::init();
-
 use POSIX();
 
 my %cgiparams=();
@@ -311,7 +308,7 @@ foreach $_ (@log)
 		# Traffic from red
 		if($srcaddr ne '') {
 			# srcaddr is set
-			my $ccode = &Location::Functions::lookup_country_code($libloc_db_handle, $srcaddr);
+			my $ccode = &Location::Functions::lookup_country_code($srcaddr);
 			if ($ccode eq '') {
 				$ccode = 'unknown';
 			}
diff --git a/html/cgi-bin/logs.cgi/firewalllogip.dat b/html/cgi-bin/logs.cgi/firewalllogip.dat
index 670d72a52..6de4081af 100644
--- a/html/cgi-bin/logs.cgi/firewalllogip.dat
+++ b/html/cgi-bin/logs.cgi/firewalllogip.dat
@@ -22,9 +22,6 @@ require "${General::swroot}/location-functions.pl";
 require "${General::swroot}/lang.pl";
 require "${General::swroot}/header.pl";
 
-# Libloc database handle.
-my $libloc_db_handle = &Location::Functions::init();
-
 use POSIX();
 
 my %cgiparams=();
@@ -438,7 +435,8 @@ for($s=0;$s<$lines;$s++)
 	$col="bgcolor='$color{\"color$colorIndex\"}'";
 	print "<tr>";
 
-	my $ccode = &Location::Functions::lookup_country_code($libloc_db_handle, $key[$s]);
+	# Get country code.
+	my $ccode = &Location::Functions::lookup_country_code($key[$s]);
   
 	$color++;
 	print "<td align='center' $col><form method='post' action='showrequestfromip.dat'><input type='hidden' name='MONTH' value='$cgiparams{'MONTH'}'> <input type='hidden' name='DAY' value='$cgiparams{'DAY'}'> <input type='hidden' name='ip' value='$key[$s]'> <input type='submit' value='$Lang::tr{'details'}'></form></td>";
diff --git a/html/cgi-bin/logs.cgi/showrequestfromcountry.dat b/html/cgi-bin/logs.cgi/showrequestfromcountry.dat
index 4d80e77a4..2a246ec60 100644
--- a/html/cgi-bin/logs.cgi/showrequestfromcountry.dat
+++ b/html/cgi-bin/logs.cgi/showrequestfromcountry.dat
@@ -19,9 +19,6 @@ require "${General::swroot}/location-functions.pl";
 require "${General::swroot}/lang.pl";
 require "${General::swroot}/header.pl";
 
-# Libloc database handle.
-my $libloc_db_handle = &Location::Functions::init();
-
 use POSIX();
 
 #workaround to suppress a warning when a variable is used only once
@@ -181,7 +178,7 @@ if (!$skip)
 			}
 			elsif($srcaddr ne '') {
 				# or srcaddr matches country code
-				my $ccode = &Location::Functions::lookup_country_code($libloc_db_handle, $srcaddr);
+				my $ccode = &Location::Functions::lookup_country_code($srcaddr);
 				if($ccode eq uc($country)){
 					$log[$lines] = $_;
 					$lines++;
@@ -352,7 +349,7 @@ foreach $_ (@slice)
 	if($iface eq $country || $srcaddr ne '') {
 		my $ccode='';
 		if($iface ne $country) {
-			$ccode = &Location::Functions::lookup_country_code($libloc_db_handle, $srcaddr);
+			$ccode = &Location::Functions::lookup_country_code($srcaddr);
 		}
 		if($iface eq $country || $ccode eq uc($country)) {
 			my $chain = '';
diff --git a/html/cgi-bin/ovpnmain.cgi b/html/cgi-bin/ovpnmain.cgi
index e7bc505e7..8626a94ca 100644
--- a/html/cgi-bin/ovpnmain.cgi
+++ b/html/cgi-bin/ovpnmain.cgi
@@ -3002,9 +3002,6 @@ END
 	&Header::openbigbox('100%', 'LEFT', '', '');
     &Header::openbox('100%', 'LEFT', $Lang::tr{'ovpn con stat'});
 
-    # Libloc database handle.
-    my $libloc_db_handle = &Location::Functions::init();
-
 #
 #	<td><b>$Lang::tr{'protocol'}</b></td>
 # protocol temp removed 
@@ -3055,7 +3052,7 @@ END
 		    $users[$uid]{'Proto'} = $proto;
 
 		    # get country code for "RealAddress"...
-		    my $ccode = &Location::Functions::lookup_country_code($libloc_db_handle, (split ':', $users[$uid]{'RealAddress'})[0]);
+		    my $ccode = &Location::Functions::lookup_country_code((split ':', $users[$uid]{'RealAddress'})[0]);
 		    my $flag_icon = &Location::Functions::get_flag_icon($ccode);
 		    $users[$uid]{'Country'} = "<a href='country.cgi#$ccode'><img src='$flag_icon' border='0' align='absmiddle' alt='$ccode' title='$ccode' /></a>";
 		    $uid++;
diff --git a/html/cgi-bin/remote.cgi b/html/cgi-bin/remote.cgi
index 9c742669b..a27e10de9 100644
--- a/html/cgi-bin/remote.cgi
+++ b/html/cgi-bin/remote.cgi
@@ -277,10 +277,6 @@ sub printactivelogins()
 		print "<tr bgcolor='$table_colour'><td colspan='5'>$Lang::tr{'ssh no active logins'}</td></tr>\n";
 	} else {
 		# list active logins...
-
-		# Libloc database handle.
-		my $libloc_db_handle = &Location::Functions::init();
-
 		foreach my $line (@output)
 		{
 			my @arry = split(/\ +/, $line);
@@ -291,7 +287,7 @@ sub printactivelogins()
 			$remoteip =~ s/[()]//g;
 
 			# display more information about that IP adress...
-			my $ccode = &Location::Functions::lookup_country_code($libloc_db_handle, $remoteip);
+			my $ccode = &Location::Functions::lookup_country_code($remoteip);
 			my $flag_icon = &Location::Functions::get_flag_icon($ccode);
 
 			# get rDNS...
diff --git a/html/cgi-bin/tor.cgi b/html/cgi-bin/tor.cgi
index 14bfcfe90..983bb30c9 100644
--- a/html/cgi-bin/tor.cgi
+++ b/html/cgi-bin/tor.cgi
@@ -30,9 +30,6 @@ require "${General::swroot}/location-functions.pl";
 require "${General::swroot}/lang.pl";
 require "${General::swroot}/header.pl";
 
-# Init libloc database connection.
-my $db_handle = &Location::Functions::init();
-
 #workaround to suppress a warning when a variable is used only once
 my @dummy = ( ${Header::colouryellow} );
 undef (@dummy);
@@ -322,7 +319,7 @@ END
 					<select name='TOR_EXIT_COUNTRY'>
 						<option value=''>- $Lang::tr{'tor exit country any'} -</option>
 END
-		my @country_codes = &Location::database_countries($db_handle);
+		my @country_codes = &Location::Functions::get_locations("no_special_locations");
 		foreach my $country_code (@country_codes) {
 			# Convert country code into upper case format.
 			$country_code = uc($country_code);
@@ -912,7 +909,7 @@ sub TorNodeDescription() {
 			$node->{'address'} = $3;
 			$node->{'port'}    = $4;
 
-			my $country_code = &Location::Functions::lookup_country_code($db_handle, $node->{'address'});
+			my $country_code = &Location::Functions::lookup_country_code($node->{'address'});
 			$node->{'country_code'} = $country_code;
 
 		# Flags
diff --git a/lfs/tor b/lfs/tor
index 5610c17d1..b7c28495d 100644
--- a/lfs/tor
+++ b/lfs/tor
@@ -32,7 +32,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = tor
-PAK_VER    = 54
+PAK_VER    = 55
 
 DEPS       = libseccomp
 


hooks/post-receive
--
IPFire 2.x development tree

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2020-11-09 14:11 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-09 14:11 [git.ipfire.org] IPFire 2.x development tree branch, next, updated. 7b97337afb4576d4bacbe854e8822e97b4cd1a40 Michael Tremer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox