Функция в проекте LuCI

Вот блок кода в проекте LuCI (веб-интерфейс OpenWrt).

Я не понимаю, что делает эта функция, и я не могу найти, где она вызывается. Где эта функция вызывается и что она делает?

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

2 ответа

Решение

Функция p.write(self, section, value) переопределяет абстрактный родительский метод. LuCI является MVC, поэтому Listvalue вызывает функцию записи, когда страница применяется автоматически.

Я не уверен, где он вызывается, но я предполагаю, что на веб-странице конфигурации сети LuCI.

Он записывает в файл конфигурации сети UCI (логически, для физической записи необходим коммит).

Рекомендации

Другие вопросы по тегам