200-wireless 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #!/usr/bin/lua
  2. local util = require 'gluon.util'
  3. local uci = require('luci.model.uci').cursor()
  4. local site = require 'gluon.site_config'
  5. local sysconfig = require 'gluon.sysconfig'
  6. -- Initial
  7. if not sysconfig.gluon_version then
  8. uci:delete_all('wireless', 'wifi-iface')
  9. end
  10. local function get_channel(radio, config)
  11. if uci:get_first('gluon-core', 'wireless', 'preserve_channels') then
  12. return uci:get('wireless', radio, 'channel') or config.channel
  13. else
  14. return config.channel
  15. end
  16. end
  17. local function configure_radio(radio, index, config)
  18. if config then
  19. local channel = get_channel(radio, config)
  20. uci:delete('wireless', radio, 'disabled')
  21. uci:set('wireless', radio, 'channel', channel)
  22. uci:set('wireless', radio, 'htmode', 'HT20')
  23. uci:set('wireless', radio, 'country', site.regdom)
  24. if config.supported_rates then
  25. uci:set_list('wireless', radio, 'supported_rates', config.supported_rates)
  26. else
  27. uci:delete('wireless', radio, 'supported_rates')
  28. end
  29. if config.basic_rate then
  30. uci:set_list('wireless', radio, 'basic_rate', config.basic_rate)
  31. else
  32. uci:delete('wireless', radio, 'basic_rate')
  33. end
  34. end
  35. end
  36. util.iterate_radios(configure_radio)
  37. uci:save('wireless')