--[[ 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, no_dns, dns, 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 no_dns = section:taboption("advanced", Flag, "_no_dns", translate("Use DNS servers advertised by peer"), translate("If unchecked, the advertised DNS server addresses are ignored")) no_dns.default = no_dns.enabled function no_dns.cfgvalue(self, section) local addr for addr in luci.util.imatch(m:get(section, "dns")) do return self.disabled end return self.enabled end function no_dns.remove(self, section) return m:del(section, "dns") end function no_dns.write() end dns = section:taboption("advanced", DynamicList, "dns", translate("Use custom DNS servers")) dns:depends("_no_dns", "") dns.datatype = "ipaddr" dns.cast = "string" 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, "vendorid", 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)"