From: Jo-Philipp Wich Date: Tue, 26 Jun 2012 21:49:18 +0000 (+0000) Subject: modules/admin-full: extend wifi model to allow assigning multiple networks X-Git-Tag: 0.11.0~575 X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fluci.git;a=commitdiff_plain;h=2e924f7aa5d7c5c8ac2cc8f3490dfadf6fbfcccf modules/admin-full: extend wifi model to allow assigning multiple networks --- diff --git a/modules/admin-full/luasrc/model/cbi/admin_network/wifi.lua b/modules/admin-full/luasrc/model/cbi/admin_network/wifi.lua index b407408a3..d57c91f20 100644 --- a/modules/admin-full/luasrc/model/cbi/admin_network/wifi.lua +++ b/modules/admin-full/luasrc/model/cbi/admin_network/wifi.lua @@ -14,6 +14,7 @@ $Id$ local wa = require "luci.tools.webadmin" local nw = require "luci.model.network" +local ut = require "luci.util" local fs = require "nixio.fs" arg[1] = arg[1] or "" @@ -415,7 +416,8 @@ network = s:taboption("general", Value, "network", translate("Network"), network.rmempty = true network.template = "cbi/network_netlist" -network.widget = "radio" +network.widget = "checkbox" +network.novirtual = true function network.write(self, section, value) local i = nw:get_interface(section) @@ -430,10 +432,18 @@ function network.write(self, section, value) if n then n:del_interface(i) end end else - local n = nw:get_network(value) - if n then - n:set("type", "bridge") - n:add_interface(i) + local v + for _, v in ipairs(i:get_networks()) do + v:del_interface(i) + end + for v in ut.imatch(value) do + local n = nw:get_network(v) + if n then + if not n:is_empty() then + n:set("type", "bridge") + end + n:add_interface(i) + end end end end @@ -718,8 +728,8 @@ if hwtype == "atheros" or hwtype == "mac80211" or hwtype == "prism2" then local supplicant = fs.access("/usr/sbin/wpa_supplicant") local hostapd = fs.access("/usr/sbin/hostapd") - -- Probe EAP support - local has_ap_eap = (os.execute("hostapd -veap >/dev/null 2>/dev/null") == 0) + -- Probe EAP support + local has_ap_eap = (os.execute("hostapd -veap >/dev/null 2>/dev/null") == 0) local has_sta_eap = (os.execute("wpa_supplicant -veap >/dev/null 2>/dev/null") == 0) if hostapd and supplicant then