protocols/core: fix defaultroute setting for DHCP interfaces
[project/luci.git] / protocols / core / luasrc / model / cbi / admin_network / proto_dhcp.lua
index aaac14e..391eb1e 100644 (file)
@@ -1,7 +1,7 @@
 --[[
 LuCI - Lua Configuration Interface
 
-Copyright 2011 Jo-Philipp Wich <xm@subsignal.org>
+Copyright 2011-2012 Jo-Philipp Wich <xm@subsignal.org>
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@ 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
+local bcast, defaultroute, peerdns, dns, metric, clientid, vendorclass
 
 
 hostname = section:taboption("general", Value, "hostname",
@@ -43,50 +43,24 @@ bcast = section:taboption("advanced", Flag, "broadcast",
 bcast.default = bcast.disabled
 
 
-no_gw = section:taboption("advanced", Flag, "gateway",
+defaultroute = section:taboption("advanced", Flag, "gateway",
        translate("Use default gateway"),
        translate("If unchecked, no default route is configured"))
 
-no_gw.default = no_gw.enabled
+defaultroute.default = defaultroute.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",
+peerdns = section:taboption("advanced", Flag, "peerdns",
        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
+peerdns.default = peerdns.enabled
 
 
 dns = section:taboption("advanced", DynamicList, "dns",
        translate("Use custom DNS servers"))
 
-dns:depends("_no_dns", "")
+dns:depends("peerdns", "")
 dns.datatype = "ipaddr"
 dns.cast     = "string"