summaryrefslogtreecommitdiffhomepage
path: root/modules/admin-full
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2011-10-26 21:54:51 +0000
committerJo-Philipp Wich <jow@openwrt.org>2011-10-26 21:54:51 +0000
commit017d24c7241ba2393498b3ceb637cb0883c9e114 (patch)
treeb2e6d4fcaddc5963ffc134ce85b3f80064c67c16 /modules/admin-full
parentd60d892385735ef274278cf63d363917eb3e6361 (diff)
modules/admin-full: fix wifi join when "wwan" (or other iface) already exists but only contains the network we intend to replace anyway, also save firewall settings after wifi join
Diffstat (limited to 'modules/admin-full')
-rw-r--r--modules/admin-full/luasrc/model/cbi/admin_network/wifi.lua1
-rw-r--r--modules/admin-full/luasrc/model/cbi/admin_network/wifi_add.lua69
2 files changed, 36 insertions, 34 deletions
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 57697f573..f5d6cf476 100644
--- a/modules/admin-full/luasrc/model/cbi/admin_network/wifi.lua
+++ b/modules/admin-full/luasrc/model/cbi/admin_network/wifi.lua
@@ -25,6 +25,7 @@ m = Map("wireless", "",
"like encryption or operation mode are grouped in the <em>Interface Configuration</em>."))
m:chain("network")
+m:chain("firewall")
local ifsection
diff --git a/modules/admin-full/luasrc/model/cbi/admin_network/wifi_add.lua b/modules/admin-full/luasrc/model/cbi/admin_network/wifi_add.lua
index 9c848f250..ff63c2626 100644
--- a/modules/admin-full/luasrc/model/cbi/admin_network/wifi_add.lua
+++ b/modules/admin-full/luasrc/model/cbi/admin_network/wifi_add.lua
@@ -104,9 +104,6 @@ end
function newnet.parse(self, section)
local net, zone
- local value = self:formvalue(section)
- net = nw:add_network(value, { proto = "dhcp" })
-
if has_firewall then
local zval = fwzone:formvalue(section)
zone = fw:get_zone(zval)
@@ -119,42 +116,46 @@ function newnet.parse(self, section)
end
end
- if not net then
- self.error = { [section] = "missing" }
- else
- local wdev = nw:get_wifidev(m.hidden.device)
+ local wdev = nw:get_wifidev(m.hidden.device)
- wdev:set("disabled", false)
- wdev:set("channel", m.hidden.channel)
+ wdev:set("disabled", false)
+ wdev:set("channel", m.hidden.channel)
- if replace:formvalue(section) then
- local n
- for _, n in ipairs(wdev:get_wifinets()) do
- wdev:del_wifinet(n)
- end
+ if replace:formvalue(section) then
+ local n
+ for _, n in ipairs(wdev:get_wifinets()) do
+ wdev:del_wifinet(n)
end
+ end
- local wconf = {
- device = m.hidden.device,
- ssid = m.hidden.join,
- mode = (m.hidden.mode == "Ad-Hoc" and "adhoc" or "sta"),
- network = net:name()
- }
-
- if m.hidden.wep == "1" then
- wconf.encryption = "wep-open"
- wconf.key = "1"
- wconf.key1 = key and key:formvalue(section) or ""
- elseif (tonumber(m.hidden.wpa_version) or 0) > 0 then
- wconf.encryption = (tonumber(m.hidden.wpa_version) or 0) >= 2 and "psk2" or "psk"
- wconf.key = key and key:formvalue(section) or ""
- else
- wconf.encryption = "none"
- end
+ local wconf = {
+ device = m.hidden.device,
+ ssid = m.hidden.join,
+ mode = (m.hidden.mode == "Ad-Hoc" and "adhoc" or "sta")
+ }
+
+ if m.hidden.wep == "1" then
+ wconf.encryption = "wep-open"
+ wconf.key = "1"
+ wconf.key1 = key and key:formvalue(section) or ""
+ elseif (tonumber(m.hidden.wpa_version) or 0) > 0 then
+ wconf.encryption = (tonumber(m.hidden.wpa_version) or 0) >= 2 and "psk2" or "psk"
+ wconf.key = key and key:formvalue(section) or ""
+ else
+ wconf.encryption = "none"
+ end
- if wconf.mode == "adhoc" then
- wconf.bssid = m.hidden.bssid
- end
+ if wconf.mode == "adhoc" then
+ wconf.bssid = m.hidden.bssid
+ end
+
+ local value = self:formvalue(section)
+ net = nw:add_network(value, { proto = "dhcp" })
+
+ if not net then
+ self.error = { [section] = "missing" }
+ else
+ wconf.network = net:name()
local wnet = wdev:add_wifinet(wconf)
if wnet then