12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- #!/usr/bin/lua
- local sysconfig = require 'gluon.sysconfig'
- -- Are we already set up?
- if sysconfig.lan_ifname or sysconfig.wan_ifname then
- os.exit(0)
- end
- local util = require 'gluon.util'
- local platform = require 'gluon.platform'
- local site = require 'gluon.site_config'
- local fs = require 'nixio.fs'
- local uci = require('simple-uci').cursor()
- local function iface_exists(ifaces)
- if not ifaces then return nil end
- for iface in ifaces:gmatch('%S+') do
- if fs.access('/sys/class/net/' .. iface:gsub('%..*$', '')) then
- return ifaces
- end
- end
- end
- local lan_ifname = iface_exists(uci:get('network', 'lan', 'ifname'))
- local wan_ifname = iface_exists(uci:get('network', 'wan', 'ifname'))
- if platform.match('ar71xx', 'generic', {
- 'cpe210',
- 'cpe510',
- 'wbs210',
- 'wbs510',
- 'airgateway',
- 'nanostation-m',
- 'nanostation-m-xw',
- 'unifi-outdoor-plus',
- 'uap-pro',
- 'unifiac-pro',
- }) then
- lan_ifname, wan_ifname = wan_ifname, lan_ifname
- end
- if wan_ifname and lan_ifname then
- sysconfig.wan_ifname = wan_ifname
- sysconfig.lan_ifname = lan_ifname
- else
- local single_ifname = lan_ifname or wan_ifname
- if site.single_as_lan then
- sysconfig.lan_ifname = single_ifname
- else
- sysconfig.wan_ifname = single_ifname
- end
- end
- uci:delete('network', 'lan')
- uci:delete('network', 'wan')
- uci:save('network')
|