diff --git a/luci-app-omr-bypass/luasrc/controller/omr-bypass.lua b/luci-app-omr-bypass/luasrc/controller/omr-bypass.lua
index 1b29d4cc7..7bb049a4a 100644
--- a/luci-app-omr-bypass/luasrc/controller/omr-bypass.lua
+++ b/luci-app-omr-bypass/luasrc/controller/omr-bypass.lua
@@ -1,4 +1,5 @@
local ucic = luci.model.uci.cursor()
+local dt = require "luci.cbi.datatypes"
module("luci.controller.omr-bypass", package.seeall)
function index()
@@ -12,16 +13,29 @@ function bypass_add()
if (type(hosts) ~= "table") then
hosts = {hosts}
end
- local ipset = ""
+ local domains_ipset = ""
+ local ip_ipset = {}
for _, k in pairs(hosts) do
if k ~= "" then
- ipset = ipset .. '/' .. k
+ if dt.ipaddr(k) then
+ table.insert(ip_ipset, k)
+ else
+ domains_ipset = domains_ipset .. '/' .. k
+ end
end
end
- ucic:set_list("dhcp",ucic:get_first("dhcp","dnsmasq"),"ipset",ipset .. "/ss_rules_dst_bypass")
+ ucic:delete("omr-bypass","ips","ip")
+ if table.getn(ip_ipset) > 0 then
+ for _, i in pairs(ip_ipset) do
+ ucic:set_list("omr-bypass","ips","ip",ip_ipset)
+ end
+ end
+ ucic:save("omr-bypass")
+ ucic:commit("omr-bypass")
+ ucic:set_list("dhcp",ucic:get_first("dhcp","dnsmasq"),"ipset",domains_ipset .. "/ss_rules_dst_bypass")
ucic:save("dhcp")
ucic:commit("dhcp")
- luci.sys.exec("/etc/init.d/dnsmasq restart")
+ --luci.sys.exec("/etc/init.d/dnsmasq restart")
luci.http.redirect(luci.dispatcher.build_url("admin/services/omr-bypass"))
return
end
\ No newline at end of file
diff --git a/luci-app-omr-bypass/luasrc/view/omr-bypass/bypass.htm b/luci-app-omr-bypass/luasrc/view/omr-bypass/bypass.htm
index 2ac8b2b00..ab8442f04 100644
--- a/luci-app-omr-bypass/luasrc/view/omr-bypass/bypass.htm
+++ b/luci-app-omr-bypass/luasrc/view/omr-bypass/bypass.htm
@@ -5,6 +5,7 @@
<%
local uci = require("luci.model.uci").cursor()
local hosts = uci:get_list("dhcp", uci:get_first("dhcp","dnsmasq"), "ipset")
+ local ips = uci:get_list("omr-bypass", "ips", "ip")
%>
<% if stderr and #stderr > 0 then %>