luci: compatible ujail
This commit is contained in:
parent
7206c464c0
commit
addbeb0f8e
@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-passwall
|
||||
PKG_VERSION:=4.53
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_CONFIG_DEPENDS:= \
|
||||
CONFIG_PACKAGE_$(PKG_NAME)_Transparent_Proxy \
|
||||
|
@ -14,6 +14,9 @@ command_timeout = 300
|
||||
LEDE_BOARD = nil
|
||||
DISTRIB_TARGET = nil
|
||||
|
||||
LOG_FILE = "/tmp/log/" .. appname .. ".log"
|
||||
CACHE_PATH = "/tmp/etc/" .. appname .. "_tmp"
|
||||
|
||||
function base64Decode(text)
|
||||
local raw = text
|
||||
if not text then return '' end
|
||||
@ -68,6 +71,21 @@ function repeat_exist(table, value)
|
||||
return false
|
||||
end
|
||||
|
||||
function remove(...)
|
||||
for index, value in ipairs({...}) do
|
||||
if value and #value > 0 and value ~= "/" then
|
||||
sys.call(string.format("rm -rf %s", value))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function is_install(package)
|
||||
if package and #package > 0 then
|
||||
return sys.call(string.format('opkg list-installed | grep "%s" > /dev/null 2>&1', package)) == 0
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
function get_args(arg)
|
||||
local var = {}
|
||||
for i, arg_k in pairs(arg) do
|
||||
@ -292,7 +310,6 @@ function is_finded(e)
|
||||
return luci.sys.exec('type -t -p "/bin/%s" -p "%s" "%s"' % {e, get_customed_path(e), e}) ~= "" and true or false
|
||||
end
|
||||
|
||||
|
||||
function clone(org)
|
||||
local function copy(org, res)
|
||||
for k,v in pairs(org) do
|
||||
|
@ -13,11 +13,11 @@ local TCP_NODE = var["-TCP_NODE"]
|
||||
local PROXY_MODE = var["-PROXY_MODE"]
|
||||
local NO_PROXY_IPV6 = var["-NO_PROXY_IPV6"]
|
||||
local NO_LOGIC_LOG = var["-NO_LOGIC_LOG"]
|
||||
local LOG_FILE = "/tmp/log/passwall.log"
|
||||
local CACHE_PATH = "/tmp/etc/passwall_tmp"
|
||||
local LOG_FILE = api.LOG_FILE
|
||||
local CACHE_PATH = api.CACHE_PATH
|
||||
local CACHE_FLAG = "dns_" .. FLAG
|
||||
local CACHE_DNS_PATH = CACHE_PATH .. "/" .. CACHE_FLAG
|
||||
local CACHE_MD5_FILE = CACHE_DNS_PATH .. ".md5"
|
||||
local CACHE_TEXT_FILE = CACHE_DNS_PATH .. ".txt"
|
||||
|
||||
local uci = api.uci
|
||||
local sys = api.sys
|
||||
@ -163,17 +163,16 @@ end
|
||||
|
||||
local dnsmasq_default_dns
|
||||
|
||||
local cache_md5 = ""
|
||||
local str = TMP_DNSMASQ_PATH .. DNSMASQ_CONF_FILE .. DEFAULT_DNS .. LOCAL_DNS .. TUN_DNS .. REMOTE_FAKEDNS .. CHINADNS_DNS .. PROXY_MODE .. NO_PROXY_IPV6
|
||||
local md5 = luci.sys.exec("echo -n $(echo '" .. str .. "' | md5sum | awk '{print $1}')")
|
||||
if fs.access(CACHE_MD5_FILE) then
|
||||
for line in io.lines(CACHE_MD5_FILE) do
|
||||
cache_md5 = line
|
||||
local cache_text = ""
|
||||
local new_text = TMP_DNSMASQ_PATH .. DNSMASQ_CONF_FILE .. DEFAULT_DNS .. LOCAL_DNS .. TUN_DNS .. REMOTE_FAKEDNS .. CHINADNS_DNS .. PROXY_MODE .. NO_PROXY_IPV6
|
||||
if fs.access(CACHE_TEXT_FILE) then
|
||||
for line in io.lines(CACHE_TEXT_FILE) do
|
||||
cache_text = line
|
||||
end
|
||||
end
|
||||
|
||||
if cache_md5 ~= md5 then
|
||||
sys.call("rm -rf " .. CACHE_PATH .. "/" .. CACHE_FLAG .. "*")
|
||||
if cache_text ~= new_text then
|
||||
api.remove(CACHE_DNS_PATH .. "*")
|
||||
end
|
||||
|
||||
local global = PROXY_MODE:find("global")
|
||||
@ -409,11 +408,15 @@ if not fs.access(CACHE_DNS_PATH) then
|
||||
server_out:close()
|
||||
ipset_out:close()
|
||||
|
||||
local f_out = io.open(CACHE_MD5_FILE, "a")
|
||||
f_out:write(md5)
|
||||
local f_out = io.open(CACHE_TEXT_FILE, "a")
|
||||
f_out:write(new_text)
|
||||
f_out:close()
|
||||
end
|
||||
if api.is_install("procd\\-ujail") then
|
||||
fs.copyr(CACHE_DNS_PATH, TMP_DNSMASQ_PATH)
|
||||
else
|
||||
fs.symlink(CACHE_DNS_PATH, TMP_DNSMASQ_PATH)
|
||||
end
|
||||
local conf_out = io.open(DNSMASQ_CONF_FILE, "a")
|
||||
conf_out:write(string.format("conf-dir=%s\n", TMP_DNSMASQ_PATH))
|
||||
if dnsmasq_default_dns then
|
||||
|
@ -11,11 +11,12 @@ local TCP_NODE = var["-TCP_NODE"]
|
||||
local PROXY_MODE = var["-PROXY_MODE"]
|
||||
local NO_PROXY_IPV6 = var["-NO_PROXY_IPV6"]
|
||||
local NO_LOGIC_LOG = var["-NO_LOGIC_LOG"]
|
||||
local LOG_FILE = "/tmp/log/passwall.log"
|
||||
local CACHE_PATH = "/tmp/etc/passwall_tmp"
|
||||
local LOG_FILE = api.LOG_FILE
|
||||
local CACHE_PATH = api.CACHE_PATH
|
||||
local CACHE_FLAG = "dns_" .. FLAG
|
||||
local CACHE_DNS_FILE = CACHE_PATH .. "/" .. CACHE_FLAG .. ".conf"
|
||||
local CACHE_MD5_FILE = CACHE_PATH .. "/" .. CACHE_FLAG .. ".md5"
|
||||
local CACHE_DNS_PATH = CACHE_PATH .. "/" .. CACHE_FLAG
|
||||
local CACHE_DNS_FILE = CACHE_DNS_PATH .. ".conf"
|
||||
local CACHE_TEXT_FILE = CACHE_DNS_PATH .. ".txt"
|
||||
local SMARTDNS_PATH = "/tmp/etc/smartdns"
|
||||
|
||||
local uci = api.uci
|
||||
@ -143,17 +144,16 @@ local function check_excluded_domain(domain)
|
||||
return false
|
||||
end
|
||||
|
||||
local cache_md5 = ""
|
||||
local str = SMARTDNS_CONF .. LOCAL_GROUP .. REMOTE_GROUP .. REMOTE_FAKEDNS .. TUN_DNS .. PROXY_MODE .. NO_PROXY_IPV6
|
||||
local md5 = luci.sys.exec("echo -n $(echo '" .. str .. "' | md5sum | awk '{print $1}')")
|
||||
if fs.access(CACHE_MD5_FILE) then
|
||||
for line in io.lines(CACHE_MD5_FILE) do
|
||||
cache_md5 = line
|
||||
local cache_text = ""
|
||||
local new_text = SMARTDNS_CONF .. LOCAL_GROUP .. REMOTE_GROUP .. REMOTE_FAKEDNS .. TUN_DNS .. PROXY_MODE .. NO_PROXY_IPV6
|
||||
if fs.access(CACHE_TEXT_FILE) then
|
||||
for line in io.lines(CACHE_TEXT_FILE) do
|
||||
cache_text = line
|
||||
end
|
||||
end
|
||||
|
||||
if cache_md5 ~= md5 then
|
||||
sys.call("rm -rf " .. CACHE_PATH .. "/" .. CACHE_FLAG .. "*")
|
||||
if cache_text ~= new_text then
|
||||
api.remove(CACHE_DNS_PATH .. "*")
|
||||
end
|
||||
|
||||
local global = PROXY_MODE:find("global")
|
||||
@ -385,8 +385,8 @@ if not fs.access(CACHE_DNS_FILE) then
|
||||
end
|
||||
f_out:close()
|
||||
|
||||
f_out = io.open(CACHE_MD5_FILE, "a")
|
||||
f_out:write(md5)
|
||||
f_out = io.open(CACHE_TEXT_FILE, "a")
|
||||
f_out:write(new_text)
|
||||
f_out:close()
|
||||
end
|
||||
fs.symlink(CACHE_DNS_FILE, SMARTDNS_CONF)
|
||||
|
Loading…
Reference in New Issue
Block a user