From c3f8b808ec6656c21c110ec39b1a7d6808b16a5d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fabian=20Bl=C3=A4se?= <fabian@blaese.de>
Date: Sun, 8 Sep 2019 15:09:41 +0200
Subject: [PATCH] fff-gateway: Add sanity checks
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This adds two checks:
- Does gateway config exist?
- Does gateway config version match?

Signed-off-by: Fabian Bläse <fabian@blaese.de>
Tested-by: Fabian Bläse <fabian@blaese.de>
Reviewed-by: Robert Langhammer <rlanghammer@web.de>
---
 .../files/etc/gateway.d/01-version            | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)
 create mode 100644 src/packages/fff/fff-gateway/files/etc/gateway.d/01-version

diff --git a/src/packages/fff/fff-gateway/files/etc/gateway.d/01-version b/src/packages/fff/fff-gateway/files/etc/gateway.d/01-version
new file mode 100644
index 00000000..15531795
--- /dev/null
+++ b/src/packages/fff/fff-gateway/files/etc/gateway.d/01-version
@@ -0,0 +1,19 @@
+configure() {
+	local expected_version=1
+	local config_version=$(uci -q get gateway.meta.config_version)
+
+	# check if gateway config exists
+	if ! uci show gateway > /dev/null; then
+		echo "ERROR: Gateway config could not be parsed or does not exist."
+
+		exit 1
+	fi
+
+	# check version of configuration
+	if [ "$config_version" != "$expected_version" ]; then
+		echo "ERROR: Invalid config version. Expected '$expected_version', got '$config_version'."
+		echo "Please check what has been changed and adjust your config appropriately."
+
+		exit 1
+	fi
+}
-- 
GitLab