From 5e44f7cddeed45566271f69c9f00a5151ca4ebfd Mon Sep 17 00:00:00 2001
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Sun, 14 Jun 2020 12:11:32 +0200
Subject: [PATCH] gluon-core: get LAN and WAN interfaces from board.json

Instead of looking at the initial UCI config, we can read this
information from board.json.
---
 package/gluon-core/luasrc/lib/gluon/upgrade/020-interfaces | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/package/gluon-core/luasrc/lib/gluon/upgrade/020-interfaces b/package/gluon-core/luasrc/lib/gluon/upgrade/020-interfaces
index 1e101f702..d10d3cbeb 100755
--- a/package/gluon-core/luasrc/lib/gluon/upgrade/020-interfaces
+++ b/package/gluon-core/luasrc/lib/gluon/upgrade/020-interfaces
@@ -11,9 +11,12 @@ end
 local platform = require 'gluon.platform'
 local site = require 'gluon.site'
 
+local json = require 'jsonc'
 local uci = require('simple-uci').cursor()
 local unistd = require 'posix.unistd'
 
+local board_data = json.load('/etc/board.json')
+local network_data = (board_data or {}).network
 
 local function iface_exists(ifaces)
 	if not ifaces then return nil end
@@ -26,8 +29,8 @@ local function iface_exists(ifaces)
 end
 
 
-local lan_ifname = iface_exists(uci:get('network', 'lan', 'ifname'))
-local wan_ifname = iface_exists(uci:get('network', 'wan', 'ifname'))
+local lan_ifname = iface_exists((network_data.lan or {}).ifname)
+local wan_ifname = iface_exists((network_data.wan or {}).ifname)
 
 if platform.match('ar71xx', 'generic', {
 	'cpe210',
-- 
GitLab