From 4f39be09c938888e94e6792a731b538282dd7a3f Mon Sep 17 00:00:00 2001
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Tue, 30 Aug 2016 03:48:12 +0200
Subject: [PATCH] gluon-core: migrate custom batadv interfaces to gluon_mesh
 proto

Users may have defined additional mesh interfaces. Properly migrate these
to avoid subtly breaking the network config (and make them ready for new
mesh protocols).
---
 .../lib/gluon/upgrade/800-migrate-batadv      | 24 +++++++++++++++++++
 1 file changed, 24 insertions(+)
 create mode 100755 package/gluon-core/luasrc/lib/gluon/upgrade/800-migrate-batadv

diff --git a/package/gluon-core/luasrc/lib/gluon/upgrade/800-migrate-batadv b/package/gluon-core/luasrc/lib/gluon/upgrade/800-migrate-batadv
new file mode 100755
index 000000000..7843e6a17
--- /dev/null
+++ b/package/gluon-core/luasrc/lib/gluon/upgrade/800-migrate-batadv
@@ -0,0 +1,24 @@
+#!/usr/bin/lua
+
+local uci = require('luci.model.uci').cursor()
+
+local function migrate_iface(iface)
+	if iface.proto ~= 'batadv' or iface.mesh ~= 'bat0' then
+		return
+	end
+
+	local s = iface['.name']
+
+	uci:set('network', s, 'proto', 'gluon_mesh')
+	uci:set('network', s, 'fixed_mtu', '1')
+
+	if iface.mesh_no_rebroadcast then
+		uci:set('network', s, 'transitive', iface.mesh_no_rebroadcast)
+	end
+
+	uci:delete('network', s, 'mesh')
+	uci:delete('network', s, 'mesh_no_rebroadcast')
+end
+
+uci:foreach('network', 'interface', migrate_iface)
+uci:save('network')
-- 
GitLab