[v2,1/3] location-functions.pl: add functions for fetching AS information

Message ID 6a9f9a66-1105-0844-7f56-826b22adfaff@ipfire.org
State Accepted
Commit 7b82ca1fc831af523f612cd9635fc45aa3a8e6ca
Headers
Series [v2,1/3] location-functions.pl: add functions for fetching AS information |

Commit Message

Peter Müller Nov. 11, 2020, 2:14 p.m. UTC
  The second version of this patch only unifies the licence banner, but
leaves GPLv2 untouched. In addition, functions have been changed to use
a script-wide location database handle, as introduced in commit
b62d7e0cc71cc1ff23d66dd8baf0f5f3c5c7a29b.

Signed-off-by: Peter Müller <peter.mueller@ipfire.org>
---
 config/cfgroot/location-functions.pl | 68 +++++++++++++++++++---------
 1 file changed, 46 insertions(+), 22 deletions(-)
  

Patch

diff --git a/config/cfgroot/location-functions.pl b/config/cfgroot/location-functions.pl
index fdf2c6efe..b7465c5ef 100644
--- a/config/cfgroot/location-functions.pl
+++ b/config/cfgroot/location-functions.pl
@@ -1,25 +1,23 @@ 
 #!/usr/bin/perl -w
-############################################################################
-#                                                                          #
-# This file is part of the IPFire Firewall.                                #
-#                                                                          #
-# IPFire 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 2 of the License, or        #
-# (at your option) any later version.                                      #
-#                                                                          #
-# IPFire 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 IPFire; if not, write to the Free Software                    #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA #
-#                                                                          #
-# Copyright (C) 2015 - 2020 IPFire Team <info@ipfire.org>.                 #
-#                                                                          #
-############################################################################
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2020  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 2 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/>.       #
+#                                                                             #
+###############################################################################
 
 package Location::Functions;
 
@@ -86,7 +84,7 @@  sub verify ($) {
 }
 
 #
-## Function to the the country code of a given address.
+## Function to get the country code of a given address.
 #
 sub lookup_country_code($$) {
 	my ($address) = @_;
@@ -236,6 +234,32 @@  sub address_has_flags($) {
 	return @flags;
 }
 
+#
+## Function to get the Autonomous System Number of a given address.
+#
+sub lookup_asn($) {
+	my ($address) = @_;
+
+	# Lookup the given address.
+	my $asn = &Location::lookup_asn($db_handle, $address);
+
+	# Return the number of the Autonomous System
+	return $asn;
+}
+
+#
+## Function to get the name of an Autonomous System.
+#
+sub get_as_name($) {
+	my ($asn) = @_;
+
+	# Fetch the name of this AS...
+	my $as_name = &Location::get_as_name($db_handle, $asn);
+
+	# Return the name of the Autonomous System
+	return $as_name;
+}
+
 # Custom END declaration which will be executed when perl
 # ends, to release the database handle to libloc.
 END {