diff options
-rw-r--r-- | applications/luci-radvd/luasrc/model/cbi/radvd.lua | 62 | ||||
-rw-r--r-- | applications/luci-radvd/luasrc/model/cbi/radvd/rdnss.lua | 2 |
2 files changed, 8 insertions, 56 deletions
diff --git a/applications/luci-radvd/luasrc/model/cbi/radvd.lua b/applications/luci-radvd/luasrc/model/cbi/radvd.lua index 10d087084..a43e8d954 100644 --- a/applications/luci-radvd/luasrc/model/cbi/radvd.lua +++ b/applications/luci-radvd/luasrc/model/cbi/radvd.lua @@ -132,13 +132,13 @@ o = s2:option(DummyValue, "interface", translate("Interface")) o.template = "cbi/network_netinfo" o.width = "10%" -o = s2:option(DummyValue, "prefix", translate("Prefix")) -o.width = "60%" -function o.cfgvalue(self, section) - local v = m.uci:get_list("radvd", section, "prefix") +pfx = s2:option(DummyValue, "prefix", translate("Prefix")) +pfx.width = "60%" +function pfx.cfgvalue(self, section) + local v = m.uci:get_list("radvd", section, self.option) local l = { } - if not v then + if not v or #v == 0 or (#v == 1 and #v[1] == 0) then local net = nm:get_network(m.uci:get("radvd", section, "interface")) if net then local ifc = nm:get_interface(net:ifname()) @@ -220,24 +220,7 @@ o.width = "10%" o = s3:option(DummyValue, "prefix", translate("Prefix")) o.width = "60%" -function o.cfgvalue(self, section) - local v = m.uci:get_list("radvd", section, "prefix") - local l = { } - if v then - for v in ut.imatch(v) do - v = luci.ip.IPv6(v) - if v then - l[#l+1] = v:string() - end - end - end - - if #l == 0 then - l[1] = "?" - end - - return table.concat(l, ", ") -end +o.cfgvalue = pfx.cfgvalue o = s3:option(DummyValue, "AdvRouteLifetime", translate("Lifetime")) function o.cfgvalue(self, section) @@ -285,38 +268,7 @@ o.width = "10%" o = s4:option(DummyValue, "addr", translate("Address")) o.width = "60%" -function o.cfgvalue(self, section) - local v = m.uci:get_list("radvd", section, "addr") - local l = { } - if not v then - local net = nm:get_network(m.uci:get("radvd", section, "interface")) - if net then - local ifc = nm:get_interface(net:ifname()) - if ifc then - local adr - for _, adr in ipairs(ifc:ip6addrs()) do - if not adr:is6linklocal() then - v = adr:network(128):string() - break - end - end - end - end - end - - for v in ut.imatch(v) do - v = luci.ip.IPv6(v) - if v then - l[#l+1] = v:network(128):string() - end - end - - if #l == 0 then - l[1] = "?" - end - - return table.concat(l, ", ") -end +o.cfgvalue = pfx.cfgvalue o = s4:option(DummyValue, "AdvRDNSSLifetime", translate("Lifetime")) function o.cfgvalue(self, section) diff --git a/applications/luci-radvd/luasrc/model/cbi/radvd/rdnss.lua b/applications/luci-radvd/luasrc/model/cbi/radvd/rdnss.lua index 5313bbe3f..b9704cdb4 100644 --- a/applications/luci-radvd/luasrc/model/cbi/radvd/rdnss.lua +++ b/applications/luci-radvd/luasrc/model/cbi/radvd/rdnss.lua @@ -82,7 +82,7 @@ o.datatype = "ip6addr" o.placeholder = translate("default") function o.cfgvalue(self, section) local l = { } - local v = m.uci:get_list("radvd", section, "prefix") + local v = m.uci:get_list("radvd", section, "addr") for v in utl.imatch(v) do l[#l+1] = v end |