libs/core: several fixes for firewall model
This commit is contained in:
parent
5b63f544f5
commit
aab6378bc3
1 changed files with 10 additions and 11 deletions
|
@ -339,11 +339,8 @@ function zone.add_network(self, net)
|
||||||
|
|
||||||
nets[#nets+1] = net
|
nets[#nets+1] = net
|
||||||
|
|
||||||
if #nets > 0 then
|
_M:del_network(net)
|
||||||
self:set("network", table.concat(nets, " "))
|
self:set("network", table.concat(nets, " "))
|
||||||
else
|
|
||||||
self:set("network", " ")
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -375,6 +372,10 @@ function zone.get_networks(self)
|
||||||
return nets
|
return nets
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function zone.clear_networks(self)
|
||||||
|
self:set("network", " ")
|
||||||
|
end
|
||||||
|
|
||||||
function zone.get_forwardings_by(self, what)
|
function zone.get_forwardings_by(self, what)
|
||||||
local name = self:name()
|
local name = self:name()
|
||||||
local forwards = { }
|
local forwards = { }
|
||||||
|
@ -399,7 +400,7 @@ function zone.add_forwarding_to(self, dest)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if not exist and dest ~= self:name() then
|
if not exist and dest ~= self:name() and _valid_id(dest) then
|
||||||
local s = uci_r:section("firewall", "forwarding", nil, {
|
local s = uci_r:section("firewall", "forwarding", nil, {
|
||||||
src = self:name(),
|
src = self:name(),
|
||||||
dest = dest
|
dest = dest
|
||||||
|
@ -419,7 +420,7 @@ function zone.add_forwarding_from(self, src)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if not exist and src ~= self:name() then
|
if not exist and src ~= self:name() and _valid_id(src) then
|
||||||
local s = uci_r:section("firewall", "forwarding", nil, {
|
local s = uci_r:section("firewall", "forwarding", nil, {
|
||||||
src = src,
|
src = src,
|
||||||
dest = self:name()
|
dest = self:name()
|
||||||
|
@ -432,11 +433,9 @@ end
|
||||||
function zone.del_forwardings_by(self, what)
|
function zone.del_forwardings_by(self, what)
|
||||||
local name = self:name()
|
local name = self:name()
|
||||||
|
|
||||||
uci_r:foreach("firewall", "forwarding",
|
uci_r:delete_all("firewall", "forwarding",
|
||||||
function(s)
|
function(s)
|
||||||
if s.src and s.dest and s[what] == name then
|
return (s.src and s.dest and s[what] == name)
|
||||||
uci_r:delete("firewall", s['.name'])
|
|
||||||
end
|
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue