X-Git-Url: http://git.archive.openwrt.org/?a=blobdiff_plain;f=protocols%2Fcore%2Fluasrc%2Fmodel%2Fcbi%2Fadmin_network%2Fproto_dhcp.lua;fp=protocols%2Fcore%2Fluasrc%2Fmodel%2Fcbi%2Fadmin_network%2Fproto_dhcp.lua;h=566ea2331a11fe13a3fd03f7b0177b6c3aed0a94;hb=1ffe61277e656943128cafc70e35ee05669d1cce;hp=0000000000000000000000000000000000000000;hpb=9ebf90071996df0916d9617e6a935f669812a8b9;p=project%2Fluci.git diff --git a/protocols/core/luasrc/model/cbi/admin_network/proto_dhcp.lua b/protocols/core/luasrc/model/cbi/admin_network/proto_dhcp.lua new file mode 100644 index 000000000..566ea2331 --- /dev/null +++ b/protocols/core/luasrc/model/cbi/admin_network/proto_dhcp.lua @@ -0,0 +1,88 @@ +--[[ +LuCI - Lua Configuration Interface + +Copyright 2011 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 +]]-- + +local map, section, net = ... +local ifc = net:get_interface() + +local hostname, accept_ra, send_rs +local bcast, no_gw, metric, clientid, vendorclass + + +hostname = section:taboption("general", Value, "hostname", + translate("Hostname to send when requesting DHCP")) + +hostname.placeholder = luci.sys.hostname() +hostname.datatype = "hostname" + + +if luci.model.network:has_ipv6() then + + accept_ra = s:taboption("general", Flag, "accept_ra", translate("Accept router advertisements")) + accept_ra.default = accept_ra.enabled + + + send_rs = s:taboption("general", Flag, "send_rs", translate("Send router solicitations")) + send_rs.default = send_rs.disabled + send_rs:depends("accept_ra", "") + +end + +bcast = section:taboption("advanced", Flag, "broadcast", + translate("Use broadcast flag"), + translate("Required for certain ISPs, e.g. Charter with DOCSIS 3")) + +bcast.default = bcast.disabled + + +no_gw = section:taboption("advanced", Flag, "gateway", + translate("Use default gateway"), + translate("If unchecked, no default route is configured")) + +no_gw.default = no_gw.enabled + +function no_gw.cfgvalue(...) + return Flag.cfgvalue(...) == "0.0.0.0" and "0" or "1" +end + +function no_gw.write(self, section, value) + if value == "1" then + m:set(section, "gateway", nil) + else + m:set(section, "gateway", "0.0.0.0") + end +end + + +metric = section:taboption("advanced", Value, "metric", + translate("Use gateway metric")) + +metric.placeholder = "0" +metric.datatype = "uinteger" +metric:depends("gateway", "1") + + +clientid = section:taboption("advanced", Value, "clientid", + translate("Client ID to send when requesting DHCP")) + + +vendorclass = section:taboption("advanced", Value, "vendorclass", + translate("Vendor Class to send when requesting DHCP")) + + +macaddr = section:taboption("advanced", Value, "macaddr", translate("Override MAC address")) +macaddr.placeholder = ifc and ifc:mac() or "00:00:00:00:00:00" +macaddr.datatype = "macaddr" + + +mtu = section:taboption("advanced", Value, "mtu", translate("Override MTU")) +mtu.placeholder = "1500" +mtu.datatype = "max(1500)"