020-interfaces 969 B

1234567891011121314151617181920212223242526272829303132333435
  1. #!/usr/bin/lua
  2. local sysconfig = require 'gluon.sysconfig'
  3. local gluon_util = require 'gluon.util'
  4. local platform = require 'gluon.platform'
  5. local uci = require('luci.model.uci').cursor()
  6. if not (sysconfig.lan_ifname or sysconfig.wan_ifname) then
  7. local function iface_exists(name)
  8. return (gluon_util.exec('ip', 'link', 'show', 'dev', (name:gsub('%..*$', ''))) == 0)
  9. end
  10. local lan_ifname = uci:get('network', 'lan', 'ifname')
  11. local wan_ifname = uci:get('network', 'wan', 'ifname')
  12. if platform.match('ar71xx', 'generic', {'cpe510', 'nanostation-m', 'nanostation-m-xw', 'unifi-outdoor-plus', 'uap-pro', 'unifiac-pro'}) then
  13. lan_ifname, wan_ifname = wan_ifname, lan_ifname
  14. end
  15. if wan_ifname and iface_exists(wan_ifname) then
  16. sysconfig.wan_ifname = wan_ifname
  17. sysconfig.lan_ifname = lan_ifname
  18. else
  19. sysconfig.wan_ifname = lan_ifname
  20. end
  21. uci:delete('network', 'lan')
  22. uci:delete('network', 'wan')
  23. uci:save('network')
  24. end