Merge Mainline
This commit is contained in:
commit
0817390727
@ -7,11 +7,10 @@ ifdef CONFIG_TESTING_KERNEL
|
||||
endif
|
||||
|
||||
LINUX_VERSION-4.14 = .193
|
||||
LINUX_VERSION-4.19 = .139
|
||||
LINUX_VERSION-4.19 = .140
|
||||
LINUX_VERSION-5.4 = .58
|
||||
|
||||
LINUX_KERNEL_HASH-4.14.193 = 0b0fb41d4430e1a42738b341cbfd2f41951aa5cd02acabbd53f076119c8b9f03
|
||||
LINUX_KERNEL_HASH-4.19.139 = 9c4ebf21fe949f80fbcfbbd6e7fe181040d325e89475e230ab53ef01f9d55605
|
||||
LINUX_KERNEL_HASH-4.19.140 = ca0ff9a7bf005bef10af477b8e7bdd6e466b20c388d862426fd8842511f18ea8
|
||||
LINUX_KERNEL_HASH-5.4.58 = 702fe2af119375387b314481b603d8ce71e71b4e5bae4cb70a980e0951b21647
|
||||
|
||||
remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1))))
|
||||
|
||||
@ -62,7 +62,8 @@ o = s:option(Value, "name", translate("Group Name"))
|
||||
o.rmempty = false
|
||||
|
||||
o = s:option(Value, "test_url", translate("Test URL"))
|
||||
o.default = "http://www.gstatic.com/generate_204"
|
||||
o:value("http://www.gstatic.com/generate_204")
|
||||
o:value("https://cp.cloudflare.com/generate_204")
|
||||
o.rmempty = false
|
||||
o:depends("type", "url-test")
|
||||
o:depends("type", "fallback")
|
||||
|
||||
@ -89,7 +89,8 @@ o:value("true", translate("Enable"))
|
||||
o.default=true
|
||||
|
||||
o = s:option(Value, "health_check_url", translate("Health Check URL"))
|
||||
o.default = "http://www.gstatic.com/generate_204"
|
||||
o:value("http://www.gstatic.com/generate_204")
|
||||
o:value("https://cp.cloudflare.com/generate_204")
|
||||
o.rmempty = false
|
||||
|
||||
o = s:option(Value, "health_check_interval", translate("Health Check Interval(s)"))
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
#!/bin/sh
|
||||
. /lib/functions.sh
|
||||
|
||||
CFG_FILE=$(uci get openclash.config.config_path 2>/dev/null)
|
||||
@ -11,8 +11,7 @@ get_nextlen()
|
||||
return
|
||||
fi
|
||||
|
||||
for i in $@
|
||||
do
|
||||
for i in $@; do
|
||||
if [ -z "$group_len" ]; then
|
||||
break
|
||||
fi
|
||||
|
||||
@ -235,7 +235,7 @@ do
|
||||
echo "正在读取【$CONFIG_NAME】-【$provider_name】代理集配置..." >$START_LOG
|
||||
|
||||
#代理集存在时获取代理集编号
|
||||
provider_nums=$(grep -Fw "$provider_name" "$match_provider" |awk -F '.' '{print $1}')
|
||||
provider_nums=$(grep -Fw "$provider_name" "$match_provider" 2>/dev/null|awk -F '.' '{print $1}')
|
||||
if [ "$servers_update" -eq 1 ] && [ ! -z "$provider_nums" ]; then
|
||||
sed -i "/^${provider_nums}\./c\#match#" "$match_provider" 2>/dev/null
|
||||
uci_set="uci -q set openclash.@proxy-provider["$provider_nums"]."
|
||||
@ -321,7 +321,7 @@ done
|
||||
if [ "$servers_if_update" = "1" ]; then
|
||||
echo "删除【$CONFIG_NAME】订阅中已不存在的代理集..." >$START_LOG
|
||||
sed -i '/#match#/d' "$match_provider" 2>/dev/null
|
||||
cat $match_provider |awk -F '.' '{print $1}' |sort -rn |while read line
|
||||
cat $match_provider 2>/dev/null|awk -F '.' '{print $1}' |sort -rn |while read line
|
||||
do
|
||||
if [ -z "$line" ]; then
|
||||
continue
|
||||
@ -504,7 +504,7 @@ do
|
||||
fi
|
||||
|
||||
#节点存在时获取节点编号
|
||||
server_num=$(grep -Fw "$server_name" "$match_servers" |awk -F '.' '{print $1}')
|
||||
server_num=$(grep -Fw "$server_name" "$match_servers" 2>/dev/null|awk -F '.' '{print $1}')
|
||||
if [ "$servers_update" -eq 1 ] && [ ! -z "$server_num" ]; then
|
||||
sed -i "/^${server_num}\./c\#match#" "$match_servers" 2>/dev/null
|
||||
fi
|
||||
|
||||
@ -18,7 +18,7 @@ UCI_ADD_LIST="uci add_list openclash.config.new_servers_group"
|
||||
UCI_SET="uci set openclash.config."
|
||||
MIX_PROXY=$(uci get openclash.config.mix_proxies 2>/dev/null)
|
||||
servers_name="/tmp/servers_name.list"
|
||||
proxy_provider_name="/tmp/match_servers_name.list"
|
||||
proxy_provider_name="/tmp/provider_name.list"
|
||||
|
||||
if [ ! -z "$UPDATE_CONFIG_FILE" ]; then
|
||||
CONFIG_FILE="$UPDATE_CONFIG_FILE"
|
||||
@ -50,25 +50,6 @@ yml_proxy_provider_set()
|
||||
config_get "health_check_url" "$section" "health_check_url" ""
|
||||
config_get "health_check_interval" "$section" "health_check_interval" ""
|
||||
|
||||
if [ ! -z "$if_game_proxy" ] && [ "$if_game_proxy" != "$name" ] && [ "$if_game_proxy_type" = "proxy-provider" ]; then
|
||||
return
|
||||
fi
|
||||
|
||||
if [ "$MIX_PROXY" != "1" ] && [ ! -z "$config" ] && [ "$config" != "$CONFIG_NAME" ] && [ "$config" != "all" ]; then
|
||||
return
|
||||
fi
|
||||
|
||||
if [ "$config" = "$CONFIG_NAME" ] || [ "$config" = "all" ]; then
|
||||
if [ -n "$(grep -w "path: $path" "$PROXY_PROVIDER_FILE" 2>/dev/null)" ]; then
|
||||
return
|
||||
elif [ "$(grep -Fw "$name" "$proxy_provider_name" |wc -l 2>/dev/null)" -ge 2 ] && [ -z "$(grep -w "path: $path" "$PROXY_PROVIDER_FILE" 2>/dev/null)" ]; then
|
||||
sed -i "1,/${name}/{//d}" "$proxy_provider_name" 2>/dev/null
|
||||
return
|
||||
elif [ "$(grep -Fw "$name" "$proxy_provider_name" |wc -l 2>/dev/null)" -eq 1 ] && [ -z "$(grep -w "path: $path" "$PROXY_PROVIDER_FILE" 2>/dev/null)" ]; then
|
||||
return
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$enabled" = "0" ]; then
|
||||
return
|
||||
fi
|
||||
@ -91,6 +72,23 @@ yml_proxy_provider_set()
|
||||
return
|
||||
fi
|
||||
|
||||
if [ ! -z "$if_game_proxy" ] && [ "$if_game_proxy" != "$name" ] && [ "$if_game_proxy_type" = "proxy-provider" ]; then
|
||||
return
|
||||
fi
|
||||
|
||||
if [ "$MIX_PROXY" != "1" ] && [ ! -z "$config" ] && [ "$config" != "$CONFIG_NAME" ] && [ "$config" != "all" ]; then
|
||||
return
|
||||
fi
|
||||
|
||||
if [ "$config" = "$CONFIG_NAME" ] || [ "$config" = "all" ]; then
|
||||
if [ -n "$(grep -w "path: $path" "$PROXY_PROVIDER_FILE" 2>/dev/null)" ]; then
|
||||
return
|
||||
elif [ "$(grep -Fw "$name" "$proxy_provider_name" |wc -l 2>/dev/null)" -ge 2 ] && [ -z "$(grep -w "path: $path" "$PROXY_PROVIDER_FILE" 2>/dev/null)" ]; then
|
||||
sed -i "1,/${name}/{//d}" "$proxy_provider_name" 2>/dev/null
|
||||
return
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "正在写入【$type】-【$name】代理集到配置文件【$CONFIG_NAME】..." >$START_LOG
|
||||
echo "$name" >> /tmp/Proxy_Provider
|
||||
|
||||
@ -174,31 +172,6 @@ yml_servers_set()
|
||||
config_get "http_path" "$section" "http_path" ""
|
||||
config_get "keep_alive" "$section" "keep_alive" ""
|
||||
config_get "servername" "$section" "servername" ""
|
||||
|
||||
if [ ! -z "$if_game_proxy" ] && [ "$if_game_proxy" != "$name" ] && [ "$if_game_proxy_type" = "proxy" ]; then
|
||||
return
|
||||
fi
|
||||
|
||||
if [ "$MIX_PROXY" != "1" ] && [ ! -z "$config" ] && [ "$config" != "$CONFIG_NAME" ] && [ "$config" != "all" ]; then
|
||||
return
|
||||
fi
|
||||
|
||||
if [ "$config" = "$CONFIG_NAME" ] || [ "$config" = "all" ]; then
|
||||
if [ "$(grep -Fw "$name" "$servers_name" |wc -l 2>/dev/null)" -ge 2 ] && [ -n "$(grep -w "name: \"$name\"" "$SERVER_FILE" 2>/dev/null)" ]; then
|
||||
return
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$config" = "$CONFIG_NAME" ] || [ "$config" = "all" ]; then
|
||||
if [ -n "$(grep -w "name: \"$name\"" "$SERVER_FILE" 2>/dev/null)" ]; then
|
||||
return
|
||||
elif [ "$(grep -Fw "$name" "$servers_name" |wc -l 2>/dev/null)" -ge 2 ] && [ -z "$(grep -w "name: \"$name\"" "$SERVER_FILE" 2>/dev/null)" ]; then
|
||||
sed -i "1,/${name}/{//d}" "$servers_name" 2>/dev/null
|
||||
return
|
||||
elif [ "$(grep -Fw "$name" "$servers_name" |wc -l 2>/dev/null)" -ge 1 ] && [ -z "$(grep -w "name: \"$name\"" "$SERVER_FILE" 2>/dev/null)" ]; then
|
||||
return
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$enabled" = "0" ]; then
|
||||
return
|
||||
@ -226,6 +199,29 @@ yml_servers_set()
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -z "$if_game_proxy" ] && [ "$if_game_proxy" != "$name" ] && [ "$if_game_proxy_type" = "proxy" ]; then
|
||||
return
|
||||
fi
|
||||
|
||||
if [ "$MIX_PROXY" != "1" ] && [ ! -z "$config" ] && [ "$config" != "$CONFIG_NAME" ] && [ "$config" != "all" ]; then
|
||||
return
|
||||
fi
|
||||
|
||||
if [ "$config" = "$CONFIG_NAME" ] || [ "$config" = "all" ]; then
|
||||
if [ "$(grep -Fw "$name" "$servers_name" |wc -l 2>/dev/null)" -ge 2 ] && [ -n "$(grep -w "name: \"$name\"" "$SERVER_FILE" 2>/dev/null)" ]; then
|
||||
return
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$config" = "$CONFIG_NAME" ] || [ "$config" = "all" ]; then
|
||||
if [ -n "$(grep -w "name: \"$name\"" "$SERVER_FILE" 2>/dev/null)" ]; then
|
||||
return
|
||||
elif [ "$(grep -Fw "$name" "$servers_name" |wc -l 2>/dev/null)" -ge 2 ] && [ -z "$(grep -w "name: \"$name\"" "$SERVER_FILE" 2>/dev/null)" ]; then
|
||||
sed -i "1,/${name}/{//d}" "$servers_name" 2>/dev/null
|
||||
return
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "正在写入【$type】-【$name】节点到配置文件【$CONFIG_NAME】..." >$START_LOG
|
||||
|
||||
if [ "$obfs" != "none" ] && [ -n "$obfs" ]; then
|
||||
@ -579,8 +575,8 @@ sed -i "s/^ \{0,\}/ - /" /tmp/Proxy_Provider 2>/dev/null #添加参数
|
||||
if [ "$(grep "-" /tmp/Proxy_Provider 2>/dev/null |wc -l)" -eq 0 ]; then
|
||||
rm -rf $PROXY_PROVIDER_FILE
|
||||
rm -rf /tmp/Proxy_Provider
|
||||
rm -rf $proxy_provider_name
|
||||
fi
|
||||
rm -rf $proxy_provider_name
|
||||
|
||||
#proxy
|
||||
rule_sources=$(uci get openclash.config.rule_sources 2>/dev/null)
|
||||
@ -594,8 +590,8 @@ if [ -s "/tmp/Proxy_Server" ]; then
|
||||
else
|
||||
rm -rf $SERVER_FILE
|
||||
rm -rf /tmp/Proxy_Server
|
||||
rm -rf $servers_name
|
||||
fi
|
||||
rm -rf $servers_name
|
||||
|
||||
#一键创建配置文件
|
||||
if [ "$rule_sources" = "ConnersHua" ] && [ "$servers_if_update" != "1" ] && [ -z "$if_game_proxy" ]; then
|
||||
@ -618,7 +614,7 @@ EOF
|
||||
fi
|
||||
cat /tmp/Proxy_Provider >> $SERVER_FILE 2>/dev/null
|
||||
cat >> "$SERVER_FILE" <<-EOF
|
||||
url: http://www.gstatic.com/generate_204
|
||||
url: https://cp.cloudflare.com/generate_204
|
||||
interval: "600"
|
||||
- name: Proxy
|
||||
type: select
|
||||
@ -706,7 +702,7 @@ EOF
|
||||
fi
|
||||
cat /tmp/Proxy_Provider >> $SERVER_FILE 2>/dev/null
|
||||
cat >> "$SERVER_FILE" <<-EOF
|
||||
url: http://www.gstatic.com/generate_204
|
||||
url: https://cp.cloudflare.com/generate_204
|
||||
interval: "600"
|
||||
- name: Proxy
|
||||
type: select
|
||||
@ -940,7 +936,7 @@ EOF
|
||||
fi
|
||||
cat /tmp/Proxy_Provider >> $SERVER_FILE 2>/dev/null
|
||||
cat >> "$SERVER_FILE" <<-EOF
|
||||
url: http://www.gstatic.com/generate_204
|
||||
url: https://cp.cloudflare.com/generate_204
|
||||
interval: "600"
|
||||
- name: Proxy
|
||||
type: select
|
||||
|
||||
@ -3189,6 +3189,9 @@ input[name="nslookup"] {
|
||||
outline: 0;
|
||||
box-shadow: none;
|
||||
}
|
||||
select {
|
||||
background-color: #1e1e1e !important;
|
||||
}
|
||||
#cbi-dropbear h2,
|
||||
#cbi-dropbear .cbi-map-descr,
|
||||
#cbi-dropbear .cbi-map-descr abbr,
|
||||
|
||||
@ -4067,6 +4067,10 @@ input[name="nslookup"] {
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
select {
|
||||
background-color: #1e1e1e !important;
|
||||
}
|
||||
|
||||
#cbi-dropbear h2,
|
||||
#cbi-dropbear .cbi-map-descr,
|
||||
#cbi-dropbear .cbi-map-descr abbr,
|
||||
|
||||
@ -7,8 +7,8 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-passwall
|
||||
PKG_VERSION:=3.9
|
||||
PKG_RELEASE:=38
|
||||
PKG_DATE:=20200817
|
||||
PKG_RELEASE:=39
|
||||
PKG_DATE:=20200819
|
||||
|
||||
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
|
||||
|
||||
|
||||
@ -18,23 +18,26 @@ function index()
|
||||
if nixio.fs.access("/etc/config/passwall_show") then
|
||||
entry({"admin", "services", appname}, alias("admin", "services", appname, "settings"), _("Pass Wall"), 1).dependent = true
|
||||
end
|
||||
entry({"admin", "services", appname, "settings"}, cbi("passwall/global"), _("Basic Settings"), 1).dependent = true
|
||||
entry({"admin", "services", appname, "node_list"}, cbi("passwall/node_list"), _("Node List"), 2).dependent = true
|
||||
entry({"admin", "services", appname, "auto_switch"}, cbi("passwall/auto_switch"), _("Auto Switch"), 3).leaf = true
|
||||
entry({"admin", "services", appname, "other"}, cbi("passwall/other", {autoapply = true}), _("Other Settings"), 92).leaf = true
|
||||
--[[ Client ]]
|
||||
entry({"admin", "services", appname, "settings"}, cbi(appname .. "/client/global"), _("Basic Settings"), 1).dependent = true
|
||||
entry({"admin", "services", appname, "node_list"}, cbi(appname .. "/client/node_list"), _("Node List"), 2).dependent = true
|
||||
entry({"admin", "services", appname, "auto_switch"}, cbi(appname .. "/client/auto_switch"), _("Auto Switch"), 3).leaf = true
|
||||
entry({"admin", "services", appname, "other"}, cbi(appname .. "/client/other", {autoapply = true}), _("Other Settings"), 92).leaf = true
|
||||
if nixio.fs.access("/usr/sbin/haproxy") then
|
||||
entry({"admin", "services", appname, "haproxy"}, cbi("passwall/haproxy"), _("Load Balancing"), 93).leaf = true
|
||||
entry({"admin", "services", appname, "haproxy"}, cbi(appname .. "/client/haproxy"), _("Load Balancing"), 93).leaf = true
|
||||
end
|
||||
entry({"admin", "services", appname, "node_subscribe"}, cbi("passwall/node_subscribe"), _("Node Subscribe"), 94).dependent = true
|
||||
entry({"admin", "services", appname, "app_update"}, cbi("passwall/app_update"), _("App Update"), 95).leaf = true
|
||||
entry({"admin", "services", appname, "rule"}, cbi("passwall/rule"), _("Rule Manage"), 96).leaf = true
|
||||
entry({"admin", "services", appname, "rule_list"}, cbi("passwall/rule_list"), _("Rule List Manage"), 97).leaf = true
|
||||
entry({"admin", "services", appname, "node_config"}, cbi("passwall/node_config")).leaf = true
|
||||
entry({"admin", "services", appname, "shunt_rules"}, cbi("passwall/shunt_rules")).leaf = true
|
||||
entry({"admin", "services", appname, "acl"}, cbi("passwall/acl"), _("Access control"), 98).leaf = true
|
||||
entry({"admin", "services", appname, "server"}, cbi("passwall/server/index"), _("Server-Side"), 99).leaf = true
|
||||
entry({"admin", "services", appname, "log"}, form("passwall/log"), _("Watch Logs"), 999).leaf = true
|
||||
entry({"admin", "services", appname, "server_user"}, cbi("passwall/server/user")).leaf = true
|
||||
entry({"admin", "services", appname, "node_subscribe"}, cbi(appname .. "/client/node_subscribe"), _("Node Subscribe"), 94).dependent = true
|
||||
entry({"admin", "services", appname, "app_update"}, cbi(appname .. "/client/app_update"), _("App Update"), 95).leaf = true
|
||||
entry({"admin", "services", appname, "rule"}, cbi(appname .. "/client/rule"), _("Rule Manage"), 96).leaf = true
|
||||
entry({"admin", "services", appname, "rule_list"}, cbi(appname .. "/client/rule_list"), _("Rule List Manage"), 97).leaf = true
|
||||
entry({"admin", "services", appname, "node_config"}, cbi(appname .. "/client/node_config")).leaf = true
|
||||
entry({"admin", "services", appname, "shunt_rules"}, cbi(appname .. "/client/shunt_rules")).leaf = true
|
||||
entry({"admin", "services", appname, "acl"}, cbi(appname .. "/client/acl"), _("Access control"), 98).leaf = true
|
||||
entry({"admin", "services", appname, "log"}, form(appname .. "/client/log"), _("Watch Logs"), 999).leaf = true
|
||||
|
||||
--[[ Server ]]
|
||||
entry({"admin", "services", appname, "server"}, cbi(appname .. "/server/index"), _("Server-Side"), 99).leaf = true
|
||||
entry({"admin", "services", appname, "server_user"}, cbi(appname .. "/server/user")).leaf = true
|
||||
|
||||
--[[ API ]]
|
||||
entry({"admin", "services", appname, "server_user_status"}, call("server_user_status")).leaf = true
|
||||
@ -56,8 +59,6 @@ function index()
|
||||
entry({"admin", "services", appname, "clear_all_nodes"}, call("clear_all_nodes")).leaf = true
|
||||
entry({"admin", "services", appname, "delete_select_nodes"}, call("delete_select_nodes")).leaf = true
|
||||
entry({"admin", "services", appname, "update_rules"}, call("update_rules")).leaf = true
|
||||
entry({"admin", "services", appname, "luci_check"}, call("luci_check")).leaf = true
|
||||
entry({"admin", "services", appname, "luci_update"}, call("luci_update")).leaf = true
|
||||
entry({"admin", "services", appname, "kcptun_check"}, call("kcptun_check")).leaf = true
|
||||
entry({"admin", "services", appname, "kcptun_update"}, call("kcptun_update")).leaf = true
|
||||
entry({"admin", "services", appname, "brook_check"}, call("brook_check")).leaf = true
|
||||
@ -169,7 +170,7 @@ function connect_status()
|
||||
local e = {}
|
||||
e.use_time = ""
|
||||
local url = luci.http.formvalue("url")
|
||||
local result = luci.sys.exec('curl --connect-timeout 5 -o /dev/null -I -skL -w "%{http_code}:%{time_starttransfer}" ' .. url)
|
||||
local result = luci.sys.exec('curl --connect-timeout 3 -o /dev/null -I -skL -w "%{http_code}:%{time_starttransfer}" ' .. url)
|
||||
local code = tonumber(luci.sys.exec("echo -n '" .. result .. "' | awk -F ':' '{print $1}'") or "0")
|
||||
if code ~= 0 then
|
||||
local use_time = luci.sys.exec("echo -n '" .. result .. "' | awk -F ':' '{print $2}'")
|
||||
|
||||
@ -0,0 +1,43 @@
|
||||
local d = require "luci.dispatcher"
|
||||
local appname = "passwall"
|
||||
|
||||
m = Map(appname, "V2ray" .. translate("Shunt") .. translate("Rule"))
|
||||
m.redirect = d.build_url("admin", "services", appname)
|
||||
|
||||
s = m:section(NamedSection, arg[1], "shunt_rules", "")
|
||||
s.addremove = false
|
||||
s.dynamic = false
|
||||
|
||||
remarks = s:option(Value, "remarks", translate("Remarks"))
|
||||
remarks.default = arg[1]
|
||||
remarks.rmempty = false
|
||||
|
||||
domain_list = s:option(TextValue, "domain_list", translate("Domain"))
|
||||
domain_list.rows = 15
|
||||
domain_list.wrap = "off"
|
||||
domain_list.validate = function(self, value)
|
||||
local hosts= {}
|
||||
string.gsub(value, '[^' .. "\r\n" .. ']+', function(w) table.insert(hosts, w) end)
|
||||
for index, host in ipairs(hosts) do
|
||||
if not datatypes.hostname(host) then
|
||||
return nil, host .. " " .. translate("Not valid domain name, please re-enter!")
|
||||
end
|
||||
end
|
||||
return value
|
||||
end
|
||||
|
||||
ip_list = s:option(TextValue, "ip_list", "IP")
|
||||
ip_list.rows = 15
|
||||
ip_list.wrap = "off"
|
||||
ip_list.validate = function(self, value)
|
||||
local ipmasks= {}
|
||||
string.gsub(value, '[^' .. "\r\n" .. ']+', function(w) table.insert(ipmasks, w) end)
|
||||
for index, ipmask in ipairs(ipmasks) do
|
||||
if not datatypes.ipmask4(ipmask) then
|
||||
return nil, ipmask .. " " .. translate("Not valid IP format, please re-enter!")
|
||||
end
|
||||
end
|
||||
return value
|
||||
end
|
||||
|
||||
return m
|
||||
@ -1,21 +0,0 @@
|
||||
local d = require "luci.dispatcher"
|
||||
local appname = "passwall"
|
||||
|
||||
m = Map(appname, "V2ray" .. translate("Shunt") .. translate("Rule"))
|
||||
m.redirect = d.build_url("admin", "services", appname)
|
||||
|
||||
s = m:section(NamedSection, arg[1], "shunt_rules", "")
|
||||
s.addremove = false
|
||||
s.dynamic = false
|
||||
|
||||
remarks = s:option(Value, "remarks", translate("Remarks"))
|
||||
remarks.default = arg[1]
|
||||
remarks.rmempty = false
|
||||
|
||||
domain_list = s:option(TextValue, "domain_list", translate("Domain"))
|
||||
domain_list.rows = 15
|
||||
|
||||
ip_list = s:option(TextValue, "ip_list", "IP")
|
||||
ip_list.rows = 15
|
||||
|
||||
return m
|
||||
@ -171,7 +171,7 @@ https://github.com/pure-css/pure/blob/master/LICENSE.md
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="pure-u-1-4 check" onclick="check_connect('google', 'www.google.com/generate_204')">
|
||||
<div class="pure-u-1-4 check" onclick="check_connect('google', 'https://www.google.com/generate_204')">
|
||||
<div class="block pure-g">
|
||||
<div class="pure-u-8-24">
|
||||
<div class="img-con">
|
||||
|
||||
@ -29,6 +29,7 @@ blinkbox.com
|
||||
brightcove.com
|
||||
caddyserver.com
|
||||
cbs.com
|
||||
cloudflare-dns.com
|
||||
cloudfront.net
|
||||
conviva.com
|
||||
crackle.com
|
||||
@ -37,6 +38,8 @@ crwdcntrl.net
|
||||
cwtv.com
|
||||
disney.com
|
||||
disneyjunior.com
|
||||
dns.google
|
||||
dns.quad9.net
|
||||
easylist-downloads.adblockplus.org
|
||||
edgecastcdn.net
|
||||
edgekey.net
|
||||
@ -57,6 +60,9 @@ githubassets.com
|
||||
githubusercontent.com
|
||||
gnews.org
|
||||
go.com
|
||||
google.com
|
||||
google.com.hk
|
||||
google.com.tw
|
||||
googleapis.com
|
||||
googletagmanager.com
|
||||
googleusercontent.com
|
||||
@ -100,6 +106,7 @@ nflximg.net
|
||||
nflxso.net
|
||||
nflxvideo.net
|
||||
omtrdc.net
|
||||
one.one.one.one
|
||||
open.live.bbc.co.uk
|
||||
openwrt.proxy.ustclug.org
|
||||
openx.net
|
||||
@ -117,6 +124,7 @@ sling.com
|
||||
southpark.cc.com
|
||||
spike.com
|
||||
srip.net
|
||||
stripe.com
|
||||
theplatform.com
|
||||
ttvnw.net
|
||||
turner.com
|
||||
@ -132,7 +140,4 @@ xboxlive.com
|
||||
youtu.be
|
||||
youtube.com
|
||||
ytimg.com
|
||||
dns.google
|
||||
cloudflare-dns.com
|
||||
one.one.one.one
|
||||
dns.quad9.net
|
||||
zerotier.com
|
||||
|
||||
@ -16,12 +16,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=smartdns
|
||||
PKG_VERSION:=8.2020.09
|
||||
PKG_VERSION:=8.2020.16
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://github.com/pymumu/smartdns.git
|
||||
PKG_SOURCE_VERSION:=a9829f6155cfe75dc981066a2239954ef7b40d78
|
||||
PKG_SOURCE_VERSION:=69ba3f8789b65681ab0a8d396e216e0efb186ec2
|
||||
|
||||
PKG_MAINTAINER:=Nick Peng <pymumu@gmail.com>
|
||||
PKG_LICENSE:=GPL-3.0-or-later
|
||||
|
||||
@ -22,7 +22,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
--- a/drivers/spi/spidev.c
|
||||
+++ b/drivers/spi/spidev.c
|
||||
@@ -728,6 +728,7 @@ static int spidev_probe(struct spi_devic
|
||||
@@ -733,6 +733,7 @@ static int spidev_probe(struct spi_devic
|
||||
* compatible string, it is a Linux implementation thing
|
||||
* rather than a description of the hardware.
|
||||
*/
|
||||
|
||||
@ -30,7 +30,7 @@ Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
|
||||
|
||||
--- a/Documentation/ABI/testing/sysfs-bus-iio
|
||||
+++ b/Documentation/ABI/testing/sysfs-bus-iio
|
||||
@@ -1684,4 +1684,19 @@ KernelVersion: 4.18
|
||||
@@ -1685,4 +1685,19 @@ KernelVersion: 4.18
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
Raw (unscaled) phase difference reading from channel Y
|
||||
|
||||
@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
/* Align . to a 8 byte boundary equals to maximum function alignment. */
|
||||
#define ALIGN_FUNCTION() . = ALIGN(8)
|
||||
|
||||
@@ -373,14 +383,14 @@
|
||||
@@ -374,14 +384,14 @@
|
||||
/* Kernel symbol table: Normal symbols */ \
|
||||
__ksymtab : AT(ADDR(__ksymtab) - LOAD_OFFSET) { \
|
||||
__start___ksymtab = .; \
|
||||
@ -47,7 +47,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
__stop___ksymtab_gpl = .; \
|
||||
} \
|
||||
\
|
||||
@@ -442,7 +452,7 @@
|
||||
@@ -443,7 +453,7 @@
|
||||
\
|
||||
/* Kernel symbol table: strings */ \
|
||||
__ksymtab_strings : AT(ADDR(__ksymtab_strings) - LOAD_OFFSET) { \
|
||||
@ -56,7 +56,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
} \
|
||||
\
|
||||
/* __*init sections */ \
|
||||
@@ -844,6 +854,8 @@
|
||||
@@ -845,6 +855,8 @@
|
||||
EXIT_TEXT \
|
||||
EXIT_DATA \
|
||||
EXIT_CALL \
|
||||
|
||||
@ -8,7 +8,7 @@ Signed-off-by: Giuseppe Lippolis <giu.lippolis@gmail.com>
|
||||
|
||||
--- a/drivers/spi/spidev.c
|
||||
+++ b/drivers/spi/spidev.c
|
||||
@@ -672,6 +672,7 @@ static const struct of_device_id spidev_
|
||||
@@ -677,6 +677,7 @@ static const struct of_device_id spidev_
|
||||
{ .compatible = "lineartechnology,ltc2488" },
|
||||
{ .compatible = "ge,achc" },
|
||||
{ .compatible = "semtech,sx1301" },
|
||||
|
||||
@ -30,7 +30,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
#define PACKET_FANOUT_LB 1
|
||||
--- a/net/packet/af_packet.c
|
||||
+++ b/net/packet/af_packet.c
|
||||
@@ -1796,6 +1796,7 @@ static int packet_rcv_spkt(struct sk_buf
|
||||
@@ -1798,6 +1798,7 @@ static int packet_rcv_spkt(struct sk_buf
|
||||
{
|
||||
struct sock *sk;
|
||||
struct sockaddr_pkt *spkt;
|
||||
@ -38,7 +38,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
/*
|
||||
* When we registered the protocol we saved the socket in the data
|
||||
@@ -1803,6 +1804,7 @@ static int packet_rcv_spkt(struct sk_buf
|
||||
@@ -1805,6 +1806,7 @@ static int packet_rcv_spkt(struct sk_buf
|
||||
*/
|
||||
|
||||
sk = pt->af_packet_priv;
|
||||
@ -46,7 +46,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
/*
|
||||
* Yank back the headers [hope the device set this
|
||||
@@ -1815,7 +1817,7 @@ static int packet_rcv_spkt(struct sk_buf
|
||||
@@ -1817,7 +1819,7 @@ static int packet_rcv_spkt(struct sk_buf
|
||||
* so that this procedure is noop.
|
||||
*/
|
||||
|
||||
@ -55,7 +55,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
goto out;
|
||||
|
||||
if (!net_eq(dev_net(dev), sock_net(sk)))
|
||||
@@ -2043,12 +2045,12 @@ static int packet_rcv(struct sk_buff *sk
|
||||
@@ -2045,12 +2047,12 @@ static int packet_rcv(struct sk_buff *sk
|
||||
unsigned int snaplen, res;
|
||||
bool is_drop_n_account = false;
|
||||
|
||||
@ -71,7 +71,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
if (!net_eq(dev_net(dev), sock_net(sk)))
|
||||
goto drop;
|
||||
|
||||
@@ -2175,12 +2177,12 @@ static int tpacket_rcv(struct sk_buff *s
|
||||
@@ -2177,12 +2179,12 @@ static int tpacket_rcv(struct sk_buff *s
|
||||
BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h2)) != 32);
|
||||
BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48);
|
||||
|
||||
@ -87,7 +87,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
if (!net_eq(dev_net(dev), sock_net(sk)))
|
||||
goto drop;
|
||||
|
||||
@@ -3277,6 +3279,7 @@ static int packet_create(struct net *net
|
||||
@@ -3282,6 +3284,7 @@ static int packet_create(struct net *net
|
||||
mutex_init(&po->pg_vec_lock);
|
||||
po->rollover = NULL;
|
||||
po->prot_hook.func = packet_rcv;
|
||||
@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
if (sock->type == SOCK_PACKET)
|
||||
po->prot_hook.func = packet_rcv_spkt;
|
||||
@@ -3897,6 +3900,16 @@ packet_setsockopt(struct socket *sock, i
|
||||
@@ -3902,6 +3905,16 @@ packet_setsockopt(struct socket *sock, i
|
||||
po->xmit = val ? packet_direct_xmit : dev_queue_xmit;
|
||||
return 0;
|
||||
}
|
||||
@ -112,7 +112,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
default:
|
||||
return -ENOPROTOOPT;
|
||||
}
|
||||
@@ -3949,6 +3962,13 @@ static int packet_getsockopt(struct sock
|
||||
@@ -3954,6 +3967,13 @@ static int packet_getsockopt(struct sock
|
||||
case PACKET_VNET_HDR:
|
||||
val = po->has_vnet_hdr;
|
||||
break;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user