]> git.ipfire.org Git - ipfire-2.x.git/commitdiff
Add convert-to-location converter.
authorStefan Schantl <stefan.schantl@ipfire.org>
Mon, 15 Jun 2020 16:03:11 +0000 (18:03 +0200)
committerStefan Schantl <stefan.schantl@ipfire.org>
Mon, 15 Jun 2020 16:21:57 +0000 (18:21 +0200)
Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
config/backup/backup.pl
config/rootfiles/common/stage2
src/scripts/convert-to-location [new file with mode: 0755]

index 5b5734044642a70a33c8c226cd96ebbe98c5c717..d2e5312526bfa8f9a18523573b80dc20e9da4e3a 100644 (file)
@@ -139,6 +139,9 @@ restore_backup() {
                rm -rf "/var/ipfire/portfw"
        fi
 
+       # Convert location
+       convert-to-location
+
        # Reload firewall
        firewallctrl
 
index a5967060be993e977f2da78676075d8615276455..2c4f715dd52b5d0cb0c9831255bf3e2db020a5dd 100644 (file)
@@ -93,6 +93,7 @@ usr/local/bin/connscheduler
 usr/local/bin/consort.sh
 usr/local/bin/convert-dns-settings
 usr/local/bin/convert-ovpn
+usr/local/bin/convert-to-location
 usr/local/bin/filesystem-cleanup
 usr/local/bin/hddshutdown
 usr/local/bin/ipsec-interfaces
diff --git a/src/scripts/convert-to-location b/src/scripts/convert-to-location
new file mode 100755 (executable)
index 0000000..2d83007
--- /dev/null
@@ -0,0 +1,50 @@
+#!/bin/bash
+
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2020 IPFire Development 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/>.       #
+#                                                                             #
+###############################################################################
+
+CONF_DIR="/var/ipfire"
+FW_CONF_DIR="$CONF_DIR/firewall"
+HOSTS_CONF_DIR="$CONF_DIR/fwhosts"
+
+# Check if the old blocking configuration file exists.
+if [ -f "$FW_CONF_DIR/geoipblock" ]; then
+       # Convert variable, if blocking is enabled or not.
+       sed -i 's/GEOIPBLOCK/LOCATIONBLOCK/g' "$FW_CONF_DIR/geoipblock"
+
+       # Rename file to the new name.
+       mv "$FW_CONF_DIR/geoipblock" "$FW_CONF_DIR/locationblock"
+
+       # Loop through the firewall config directory.
+       for file in "$FW_CONF_DIR/config" "$FW_CONF_DIR/input" "$FW_CONF_DIR/outgoing"; do
+               # Convert pattern which indicates location based rules to the new
+               # ones.
+               sed -i 's/cust_geoip/cust_location/g' "$FW_CONF_DIR/$file"
+       done
+
+       # Rename indicator for location based groups to the new one.
+       sed -i 's/GeoIP Group/Location Group/g' "$HOSTS_CONF_DIR/customgeoipgrp"
+
+       # Rename file to the new name.
+       mv "$HOSTS_CONF_DIR/customgeoipgrp" "$HOSTS_CONF_DIR/customlocationgrp"
+fi
+
+# Finished.
+exit 0