LuCI项目中的函数

这是在 LuCI (OpenWrt web UI)项目中的一个代码块。

我不理解这个函数在干什么,也无法找到它被调用的位置。这个函数在哪里被调用,它在做什么?

p = s:option(ListValue, "proto", translate("Protocol"))
p.override_values = true

p:value("pppoe", "PPPoE")
p:value("pptp",  "PPTP")

function p.write(self, section, value)
    if value == "pptp" or value == "pppoe" then
        self.map:set(section, "peerdns", "1")
        self.map:set(section, "defaultroute", "1")
    end
    return ListValue.write(self, section, value)
end
点赞
用户3861843
用户3861843

我不确定它在哪里被调用,但我认为是从 LuCI 网络配置网页。

它将写入 UCI 网络配置文件(逻辑上,需要提交以进行物理写入)。

参考文献

2014-07-21 23:42:47
用户3618389
用户3618389

函数 p.write(self, section, value) 覆盖了抽象父方法。LuCI 是一个 MVC,因此当页面应用自动化时,Listvalue 调用写入函数。

2015-01-09 16:08:05