diff options
author | Jo-Philipp Wich <jo@mein.io> | 2018-06-06 21:44:12 +0200 |
---|---|---|
committer | Jo-Philipp Wich <jo@mein.io> | 2018-06-06 21:45:49 +0200 |
commit | 7be3f0400c95f810651e7e8c70add589176ae04b (patch) | |
tree | 9fd905bdede0015312f6edbce652d3283b33431f /modules/luci-base | |
parent | 4cd08258bbe145384145933e8f061351bc9a82ad (diff) |
luci-base: fix some minor luci.model.uci issues
- Properly serialize option delete changelogs
- Do not perform a section create if a nil value is passed to set()
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Diffstat (limited to 'modules/luci-base')
-rw-r--r-- | modules/luci-base/luasrc/model/uci.lua | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/modules/luci-base/luasrc/model/uci.lua b/modules/luci-base/luasrc/model/uci.lua index 461ba9d5a..92c0d8f69 100644 --- a/modules/luci-base/luasrc/model/uci.lua +++ b/modules/luci-base/luasrc/model/uci.lua @@ -8,7 +8,7 @@ local table = require "table" local setmetatable, rawget, rawset = setmetatable, rawget, rawset local require, getmetatable, assert = require, getmetatable, assert -local error, pairs, ipairs = error, pairs, ipairs +local error, pairs, ipairs, select = error, pairs, ipairs, select local type, tostring, tonumber, unpack = type, tostring, tonumber, unpack -- The typical workflow for UCI is: Get a cursor instance from the @@ -106,7 +106,7 @@ function changes(self, config) local _, change for _, change in ipairs(changes) do local operation, section, option, value = unpack(change) - if option and value and operation ~= "add" then + if option and operation ~= "add" then res[package][section] = res[package][section] or { } if operation == "list-add" then @@ -373,15 +373,15 @@ function add(self, config, stype) return self:section(config, stype) end -function set(self, config, section, option, value) - if value == nil then +function set(self, config, section, option, ...) + if select('#', ...) == 0 then local sname, err = self:section(config, option, section) return (not not sname), err else local _, err = call("set", { config = config, section = section, - values = { [option] = value } + values = { [option] = select(1, ...) } }) return (err == nil), ERRSTR[err] end |