From: Steven Barth Date: Wed, 16 Jul 2008 18:54:10 +0000 (+0000) Subject: modules/admin-mini: Added Wifi configuration X-Git-Tag: 0.8.0~636 X-Git-Url: https://git.archive.openwrt.org/?p=project%2Fluci.git;a=commitdiff_plain;h=8d1aff78b17d6f7437d776bdf53a6aa2112f31db modules/admin-mini: Added Wifi configuration several smaller bugfixes and enhancements --- diff --git a/i18n/english/luasrc/i18n/admin-core.en.lua b/i18n/english/luasrc/i18n/admin-core.en.lua index 165210fa1..6ea99fe14 100644 --- a/i18n/english/luasrc/i18n/admin-core.en.lua +++ b/i18n/english/luasrc/i18n/admin-core.en.lua @@ -230,4 +230,7 @@ a_n_routes = "Static Routes" a_n_routes1 = [[With Static Routes you can specify through which interface and gateway a certain host or network can be reached.]] a_n_r_target1 = "host-IP or network" -a_n_r_netmask1 = "if target is a network" \ No newline at end of file +a_n_r_netmask1 = "if target is a network" + +m_n_local = "Local Network" +m_n_inet = "Internet Connection" \ No newline at end of file diff --git a/i18n/german/luasrc/i18n/admin-core.de.lua b/i18n/german/luasrc/i18n/admin-core.de.lua index 0bfad2af3..b29c4be58 100644 --- a/i18n/german/luasrc/i18n/admin-core.de.lua +++ b/i18n/german/luasrc/i18n/admin-core.de.lua @@ -113,6 +113,7 @@ a_st_i_status1 = [[Hier finden sich Informationen über den aktuellen Status des Prozessortakt, Speicherauslastung und Netzwerkschnittstellen.]] a_st_i_status2 = [[Zusätzlich können hier Protokolldaten, des Kernels und diverser Systemdienste eingesehen werden, um deren Zustand zu kontrollieren.]] +a_w_devices1 = "An dieser Stelle können eingebaute WLAN-Geräte konfiguriert werden." a_w_apisolation = [[AP-Isolation]] a_w_apisolation1 = [[Unterbindet Client-Client-Verkehr]] a_w_athburst = [[Atheros-Frameburst]] @@ -244,3 +245,5 @@ texteditor = [[Texteditor]] uci_applied = [[Die folgenden Änderungen wurden übernommen]] uci_reverted = [[Die folgenden Änderungen wurden verworfen]] +m_n_local = "Lokales Netz" +m_n_inet = "Internetverbindung" \ No newline at end of file diff --git a/libs/cbi/luasrc/cbi.lua b/libs/cbi/luasrc/cbi.lua index b9383a3ec..6aec2fbbb 100644 --- a/libs/cbi/luasrc/cbi.lua +++ b/libs/cbi/luasrc/cbi.lua @@ -356,10 +356,9 @@ function NamedSection.parse(self) return end else -- Create and apply default values - if luci.http.formvalue("cbi.cns."..path) and self:create(s) then - for k,v in pairs(self.children) do - v:write(s, v.default) - end + if luci.http.formvalue("cbi.cns."..path) then + self:create(s) + return end end end @@ -643,10 +642,6 @@ function DummyValue.parse(self) end -function DummyValue.render(self, s) - luci.template.render(self.template, {self=self, section=s}) -end - --[[ Flag - A flag being enabled or disabled diff --git a/libs/http/luasrc/http/protocol.lua b/libs/http/luasrc/http/protocol.lua index ccf40bd2e..542c3147e 100644 --- a/libs/http/luasrc/http/protocol.lua +++ b/libs/http/luasrc/http/protocol.lua @@ -661,7 +661,7 @@ function urldecode_message_body( source, msg ) -- Create a throttling LTN12 source -- See explaination in mimedecode_message_body(). local tsrc = function() - if msg._urldecbuffer ~= nil and #msg._urldecbuffer > TSRC_BLOCKSIZE then + if msg._urldecbuffer ~= nil and #msg._urldecbuffer > 0 then return "" else return source() diff --git a/modules/admin-mini/luasrc/controller/mini/network.lua b/modules/admin-mini/luasrc/controller/mini/network.lua index 3de052644..d59dbe7e4 100644 --- a/modules/admin-mini/luasrc/controller/mini/network.lua +++ b/modules/admin-mini/luasrc/controller/mini/network.lua @@ -20,6 +20,6 @@ function index() local i18n = luci.i18n.translate entry({"mini", "network"}, alias("mini", "network", "basic"), i18n("network"), 20) - entry({"mini", "network", "basic"}, cbi("mini-network/basic"), i18n("basicsettings"), 10) - entry({"mini", "network", "dhcp"}, cbi("mini-network/dhcp"), "DHCP", 20) + entry({"mini", "network", "basic"}, cbi("mini/network"), i18n("basicsettings"), 10) + entry({"mini", "network", "dhcp"}, cbi("mini/dhcp"), "DHCP", 20) end \ No newline at end of file diff --git a/modules/admin-mini/luasrc/controller/mini/wifi.lua b/modules/admin-mini/luasrc/controller/mini/wifi.lua new file mode 100644 index 000000000..91183199b --- /dev/null +++ b/modules/admin-mini/luasrc/controller/mini/wifi.lua @@ -0,0 +1,22 @@ +--[[ +LuCI - Lua Configuration Interface + +Copyright 2008 Steven Barth +Copyright 2008 Jo-Philipp Wich + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +$Id$ +]]-- +module("luci.controller.mini.wifi", package.seeall) + +function index() + luci.i18n.loadc("admin-core") + local i18n = luci.i18n.translate + + entry({"mini", "wifi"}, cbi("mini/wifi"), i18n("wifi", "Drahtlos"), 30) +end \ No newline at end of file diff --git a/modules/admin-mini/luasrc/model/cbi/mini-network/basic.lua b/modules/admin-mini/luasrc/model/cbi/mini-network/basic.lua deleted file mode 100644 index d7c1ce84b..000000000 --- a/modules/admin-mini/luasrc/model/cbi/mini-network/basic.lua +++ /dev/null @@ -1,80 +0,0 @@ ---[[ -LuCI - Lua Configuration Interface - -Copyright 2008 Steven Barth -Copyright 2008 Jo-Philipp Wich - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -$Id$ -]]-- -m = Map("network", "Network") - -s = m:section(NamedSection, "lan", "interface", "Local Network") -s:option(Value, "ipaddr", translate("ipaddress")) -s:option(Value, "netmask", translate("netmask")) -gw = s:option(Value, "gateway", translate("gateway") .. translate("cbi_optional")) -gw.rmempty = true -dns = s:option(Value, "dns", translate("dnsserver") .. translate("cbi_optional")) -dns.rmempty = true - - -s = m:section(NamedSection, "wan", "interface", "Internet Connection") -p = s:option(ListValue, "proto", translate("protocol")) -p:value("none", "disabled") -p:value("static", translate("manual", "manual")) -p:value("dhcp", translate("automatic", "automatic")) -p:value("pppoe", "PPPoE") -p:value("pptp", "PPTP") - -ip = s:option(Value, "ipaddr", translate("ipaddress")) -ip:depends("proto", "static") - -nm = s:option(Value, "netmask", translate("netmask")) -nm:depends("proto", "static") - -gw = s:option(Value, "gateway", translate("gateway")) -gw:depends("proto", "static") -gw.rmempty = true - -dns = s:option(Value, "dns", translate("dnsserver")) -dns:depends("proto", "static") -dns.rmempty = true - -usr = s:option(Value, "username", translate("username")) -usr:depends("proto", "pppoe") -usr:depends("proto", "pptp") - -pwd = s:option(Value, "password", translate("password")) -pwd:depends("proto", "pppoe") -pwd:depends("proto", "pptp") - -kea = s:option(Value, "keepalive", "Keep-Alive" .. translate("cbi_optional")) -kea:depends("proto", "pppoe") -kea:depends("proto", "pptp") -kea.rmempty = true - - -cod = s:option(Value, "demand", "Dial on Demand" .. translate("cbi_optional")) -cod:depends("proto", "pppoe") -cod:depends("proto", "pptp") -cod.rmempty = true - -srv = s:option(Value, "server", "PPTP-Server") -srv:depends("proto", "pptp") -srv.rmempty = true - -mtu = s:option(Value, "mtu", "MTU" .. translate("cbi_optional")) -mtu:depends("proto", "static") -mtu:depends("proto", "dhcp") -mtu:depends("proto", "pppoe") -mtu:depends("proto", "pptp") -mtu.rmempty = true - - - -return m \ No newline at end of file diff --git a/modules/admin-mini/luasrc/model/cbi/mini-network/dhcp.lua b/modules/admin-mini/luasrc/model/cbi/mini-network/dhcp.lua deleted file mode 100644 index 5a27f1e68..000000000 --- a/modules/admin-mini/luasrc/model/cbi/mini-network/dhcp.lua +++ /dev/null @@ -1,65 +0,0 @@ ---[[ -LuCI - Lua Configuration Interface - -Copyright 2008 Steven Barth -Copyright 2008 Jo-Philipp Wich - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -$Id$ -]]-- -require("luci.model.uci") -require("luci.sys") - -m = Map("dhcp", "DHCP") - -s = m:section(TypedSection, "dhcp", "DHCP-Server") -s.anonymous = true -s:depends("interface", "lan") - -enable = s:option(ListValue, "ignore", "", "") -enable:value(0, "enabled") -enable:value(1, "disabled") - -start = s:option(Value, "start", "First address") -start.rmempty = true -start:depends("ignore", "0") - - -limit = s:option(Value, "limit", "Number of leases", "") -limit:depends("ignore", "0") - -function limit.cfgvalue(self, section) - local value = Value.cfgvalue(self, section) - - if value then - return tonumber(value) + 1 - end -end - -function limit.write(self, section, value) - value = tonumber(value) - 1 - return Value.write(self, section, value) -end - -limit.rmempty = true - -time = s:option(Value, "leasetime") -time:depends("ignore", "0") -time.rmempty = true - -m2 = Map("luci_ethers", translate("luci_ethers")) - -s = m2:section(TypedSection, "static_lease", "") -s.addremove = true -s.anonymous = true -s.template = "cbi/tblsection" - -s:option(Value, "macaddr", translate("macaddress")) -s:option(Value, "ipaddr", translate("ipaddress")) - -return m, m2 \ No newline at end of file diff --git a/modules/admin-mini/luasrc/model/cbi/mini/dhcp.lua b/modules/admin-mini/luasrc/model/cbi/mini/dhcp.lua new file mode 100644 index 000000000..5a27f1e68 --- /dev/null +++ b/modules/admin-mini/luasrc/model/cbi/mini/dhcp.lua @@ -0,0 +1,65 @@ +--[[ +LuCI - Lua Configuration Interface + +Copyright 2008 Steven Barth +Copyright 2008 Jo-Philipp Wich + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +$Id$ +]]-- +require("luci.model.uci") +require("luci.sys") + +m = Map("dhcp", "DHCP") + +s = m:section(TypedSection, "dhcp", "DHCP-Server") +s.anonymous = true +s:depends("interface", "lan") + +enable = s:option(ListValue, "ignore", "", "") +enable:value(0, "enabled") +enable:value(1, "disabled") + +start = s:option(Value, "start", "First address") +start.rmempty = true +start:depends("ignore", "0") + + +limit = s:option(Value, "limit", "Number of leases", "") +limit:depends("ignore", "0") + +function limit.cfgvalue(self, section) + local value = Value.cfgvalue(self, section) + + if value then + return tonumber(value) + 1 + end +end + +function limit.write(self, section, value) + value = tonumber(value) - 1 + return Value.write(self, section, value) +end + +limit.rmempty = true + +time = s:option(Value, "leasetime") +time:depends("ignore", "0") +time.rmempty = true + +m2 = Map("luci_ethers", translate("luci_ethers")) + +s = m2:section(TypedSection, "static_lease", "") +s.addremove = true +s.anonymous = true +s.template = "cbi/tblsection" + +s:option(Value, "macaddr", translate("macaddress")) +s:option(Value, "ipaddr", translate("ipaddress")) + +return m, m2 \ No newline at end of file diff --git a/modules/admin-mini/luasrc/model/cbi/mini/network.lua b/modules/admin-mini/luasrc/model/cbi/mini/network.lua new file mode 100644 index 000000000..dcd93a307 --- /dev/null +++ b/modules/admin-mini/luasrc/model/cbi/mini/network.lua @@ -0,0 +1,73 @@ +--[[ +LuCI - Lua Configuration Interface + +Copyright 2008 Steven Barth +Copyright 2008 Jo-Philipp Wich + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +$Id$ +]]-- +m = Map("network", "Network") + +s = m:section(NamedSection, "lan", "interface", translate("m_n_local")) +s:option(Value, "ipaddr", translate("ipaddress")) +s:option(Value, "netmask", translate("netmask")) +gw = s:option(Value, "gateway", translate("gateway") .. translate("cbi_optional")) +gw.rmempty = true +dns = s:option(Value, "dns", translate("dnsserver") .. translate("cbi_optional")) +dns.rmempty = true + + +s = m:section(NamedSection, "wan", "interface", translate("m_n_inet")) +p = s:option(ListValue, "proto", translate("protocol")) +p:value("none", "disabled") +p:value("static", translate("manual", "manual")) +p:value("dhcp", translate("automatic", "automatic")) +p:value("pppoe", "PPPoE") +p:value("pptp", "PPTP") + +ip = s:option(Value, "ipaddr", translate("ipaddress")) +ip:depends("proto", "static") + +nm = s:option(Value, "netmask", translate("netmask")) +nm:depends("proto", "static") + +gw = s:option(Value, "gateway", translate("gateway")) +gw:depends("proto", "static") +gw.rmempty = true + +dns = s:option(Value, "dns", translate("dnsserver")) +dns:depends("proto", "static") +dns.rmempty = true + +usr = s:option(Value, "username", translate("username")) +usr:depends("proto", "pppoe") +usr:depends("proto", "pptp") + +pwd = s:option(Value, "password", translate("password")) +pwd:depends("proto", "pppoe") +pwd:depends("proto", "pptp") + +kea = s:option(Value, "keepalive", "Keep-Alive" .. translate("cbi_optional")) +kea:depends("proto", "pppoe") +kea:depends("proto", "pptp") +kea.rmempty = true + + +cod = s:option(Value, "demand", "Dial on Demand" .. translate("cbi_optional")) +cod:depends("proto", "pppoe") +cod:depends("proto", "pptp") +cod.rmempty = true + +srv = s:option(Value, "server", "PPTP-Server") +srv:depends("proto", "pptp") +srv.rmempty = true + + + +return m \ No newline at end of file diff --git a/modules/admin-mini/luasrc/model/cbi/mini/wifi.lua b/modules/admin-mini/luasrc/model/cbi/mini/wifi.lua new file mode 100644 index 000000000..d75ead282 --- /dev/null +++ b/modules/admin-mini/luasrc/model/cbi/mini/wifi.lua @@ -0,0 +1,103 @@ +--[[ +LuCI - Lua Configuration Interface + +Copyright 2008 Steven Barth +Copyright 2008 Jo-Philipp Wich + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +$Id$ +]]-- +m = Map("wireless", translate("wifi"), translate("a_w_devices1")) + +s = m:section(TypedSection, "wifi-device", translate("devices")) + +en = s:option(Flag, "disabled", translate("enable")) +en.enabled = "0" +en.disabled = "1" + +mode = s:option(ListValue, "mode", translate("mode")) +mode:value("", "standard") +mode:value("11b", "802.11b") +mode:value("11g", "802.11g") +mode:value("11a", "802.11a") +mode:value("11bg", "802.11b+g") +mode.rmempty = true + +s:option(Value, "channel", translate("a_w_channel")) + + + +s = m:section(TypedSection, "wifi-iface", translate("m_n_local")) +s.anonymous = true + +s:option(Value, "ssid", translate("a_w_netid")).maxlength = 32 + +local devs = {} +luci.model.uci.foreach("wireless", "wifi-device", + function (section) + table.insert(devs, section[".name"]) + end) + +if #devs > 1 then + device = s:option(DummyValue, "device", translate("device")) +else + s.defaults.device = devs[1] +end + +mode = s:option(ListValue, "mode", translate("mode")) +mode:value("ap", "Access Point") +mode:value("adhoc", "Ad-Hoc") +mode:value("sta", "Client") + +function mode.write(self, section, value) + if value == "sta" then + luci.model.uci.set("network", "wan", "type", "bridge") + luci.model.uci.set("wireless", section, "network", "wan") + else + luci.model.uci.delete("network", "wan", "type") + luci.model.uci.set("wireless", section, "network", "lan") + end + luci.model.uci.save("network") + return ListValue.write(self, section, value) +end + +encr = s:option(ListValue, "encryption", translate("encryption")) +encr:value("none", "keine") +encr:value("wep", "WEP") +encr:value("psk", "WPA-PSK") +encr:value("wpa", "WPA-Radius") +encr:value("psk2", "WPA2-PSK") +encr:value("wpa2", "WPA2-Radius") + +key = s:option(Value, "key", translate("key")) +key:depends("encryption", "wep") +key:depends("encryption", "psk") +key:depends("encryption", "wpa") +key:depends("encryption", "psk2") +key:depends("encryption", "wpa2") +key.rmempty = true + +server = s:option(Value, "server", translate("a_w_radiussrv")) +server:depends("encryption", "wpa") +server:depends("encryption", "wpa2") +server.rmempty = true + +port = s:option(Value, "port", translate("a_w_radiusport")) +port:depends("encryption", "wpa") +port:depends("encryption", "wpa2") +port.rmempty = true + +iso = s:option(Flag, "isolate", translate("a_w_apisolation"), translate("a_w_apisolation1")) +iso.rmempty = true +iso:depends("mode", "ap") + +hide = s:option(Flag, "hidden", translate("a_w_hideessid")) +hide.rmempty = true +hide:depends("mode", "ap") + +return m \ No newline at end of file