X-Git-Url: http://git.archive.openwrt.org/?a=blobdiff_plain;f=modules%2Fadmin-full%2Fluasrc%2Fcontroller%2Fadmin%2Fnetwork.lua;h=a79d080a7ca51c69d799e279f615a1ab61dac484;hb=eea1f8b6795593c659658f4ef74ae074ee3ab740;hp=9d9aab4a2c77e50e5ea45dbefc8d600ad7915fe1;hpb=2829139f35a6123b0e40c16cf2813fed808d61e6;p=project%2Fluci.git diff --git a/modules/admin-full/luasrc/controller/admin/network.lua b/modules/admin-full/luasrc/controller/admin/network.lua index 9d9aab4a2..a79d080a7 100644 --- a/modules/admin-full/luasrc/controller/admin/network.lua +++ b/modules/admin-full/luasrc/controller/admin/network.lua @@ -31,7 +31,7 @@ function index() local page page = node("admin", "network") - page.target = alias("admin", "network", "network") + page.target = firstchild() page.title = _("Network") page.order = 50 page.index = true @@ -198,9 +198,21 @@ end function wifi_delete(network) local ntm = require "luci.model.network".init() - - ntm:del_wifinet(network) - ntm:save("wireless") + local wnet = ntm:get_wifinet(network) + if wnet then + local dev = wnet:get_device() + local net = wnet:get_network() + if dev then + luci.sys.call("env -i /sbin/wifi down %q" % dev:name()) + ntm:del_wifinet(network) + ntm:commit("wireless") + if net:is_empty() then + ntm:del_network(net:name()) + ntm:commit("network") + end + luci.sys.call("env -i /sbin/wifi up %q" % dev:name()) + end + end luci.http.redirect(luci.dispatcher.build_url("admin/network/wireless")) end @@ -215,8 +227,7 @@ function iface_status() local net = netm:get_network(iface) local device = net and net:get_interface() if device then - local device = net:get_interface() - local data = { + local data = { id = iface, proto = net:proto(), uptime = net:uptime(), @@ -269,6 +280,12 @@ function iface_status() end rv[#rv+1] = data + else + rv[#rv+1] = { + id = iface, + name = iface, + type = "ethernet" + } end end @@ -356,11 +373,13 @@ function wifi_reconnect() local net = netmd:get_wifinet(wnet) local dev = net:get_device() if dev and net then + luci.sys.call("env -i /sbin/wifi down >/dev/null 2>/dev/null") + dev:set("disabled", nil) net:set("disabled", (mode == "wireless_shutdown") and 1 or nil) netmd:commit("wireless") - luci.sys.call("(env -i /sbin/wifi down; env -i /sbin/wifi up) >/dev/null 2>/dev/null") + luci.sys.call("env -i /sbin/wifi up >/dev/null 2>/dev/null") luci.http.status(200, (mode == "wireless_shutdown") and "Shutdown" or "Reconnected") return