luci-app-ssr-plus: add stop mode for netflix service (#3990)

* luci-app-ssr-plus: add stop mode for netflix service

* luci-app-ssr-plus: bump version 174.1

* luci-app-ssr-plus: use 'nil' value to replace empty value in stop mode
This commit is contained in:
Max Zhao 2020-03-24 18:19:21 +08:00 committed by GitHub
parent a8be250ec6
commit 8b7e446504
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 56 additions and 38 deletions

View File

@ -1,8 +1,8 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-ssr-plus PKG_NAME:=luci-app-ssr-plus
PKG_VERSION:=173 PKG_VERSION:=174
PKG_RELEASE:=7 PKG_RELEASE:=2
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME) PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)

View File

@ -44,9 +44,10 @@ o:value("same", translate("Same as Global Server"))
for _,key in pairs(key_table) do o:value(key,server_table[key]) end for _,key in pairs(key_table) do o:value(key,server_table[key]) end
o = s:option(ListValue, "netflix_server", translate("Netflix Node")) o = s:option(ListValue, "netflix_server", translate("Netflix Node"))
o:value("nil", translate("Disable"))
o:value("same", translate("Same as Global Server")) o:value("same", translate("Same as Global Server"))
for _,key in pairs(key_table) do o:value(key,server_table[key]) end for _,key in pairs(key_table) do o:value(key,server_table[key]) end
o.default = "same" o.default = "nil"
o.rmempty = false o.rmempty = false
o = s:option(Flag, "netflix_proxy", translate("External Proxy Mode")) o = s:option(Flag, "netflix_proxy", translate("External Proxy Mode"))
@ -104,3 +105,5 @@ o:depends("pdnsd_enable", "2")
o.description = translate("Custom DNS Server format as IP:PORT (default: 8.8.4.4:53)") o.description = translate("Custom DNS Server format as IP:PORT (default: 8.8.4.4:53)")
return m return m

View File

@ -223,8 +223,12 @@ start_rules() {
else else
proxyport="-m multiport --dports 22,53,587,465,995,993,143,80,443" proxyport="-m multiport --dports 22,53,587,465,995,993,143,80,443"
fi fi
if [ "$NETFLIX_SERVER" != "nil" ]; then
if [ "$NETFLIX_SERVER" != "$GLOBAL_SERVER" ]; then if [ "$NETFLIX_SERVER" != "$GLOBAL_SERVER" ]; then
netflix="1" netflix="1"
else
netflix="2"
fi
else else
netflix="0" netflix="0"
fi fi
@ -401,7 +405,7 @@ start_redir() {
echo "$(date "+%Y-%m-%d %H:%M:%S") Network Tunnel REDIRECT $threads Threads Started!" >>/tmp/ssrplus.log echo "$(date "+%Y-%m-%d %H:%M:%S") Network Tunnel REDIRECT $threads Threads Started!" >>/tmp/ssrplus.log
fi fi
if [ "$NETFLIX_SERVER" != "$GLOBAL_SERVER" ]; then if [ "$NETFLIX_SERVER" != "nil" ] && [ "$NETFLIX_SERVER" != "$GLOBAL_SERVER" ]; then
if [ "$ntype" == "ss" -o "$ntype" == "ssr" ]; then if [ "$ntype" == "ss" -o "$ntype" == "ssr" ]; then
gen_config_file $NETFLIX_SERVER 2 4321 gen_config_file $NETFLIX_SERVER 2 4321
gen_config_file $NETFLIX_SERVER 3 1088 gen_config_file $NETFLIX_SERVER 3 1088
@ -619,7 +623,7 @@ start() {
switch_enable=1 switch_enable=1
fi fi
NETFLIX_SERVER=$(uci_get_by_type global netflix_server same) NETFLIX_SERVER=$(uci_get_by_type global netflix_server nil)
if [ "$NETFLIX_SERVER" == "same" ]; then if [ "$NETFLIX_SERVER" == "same" ]; then
NETFLIX_SERVER=$GLOBAL_SERVER NETFLIX_SERVER=$GLOBAL_SERVER
fi fi
@ -641,28 +645,36 @@ start() {
fi fi
/usr/share/shadowsocksr/gfw2ipset.sh /usr/share/shadowsocksr/gfw2ipset.sh
if [ "$NETFLIX_SERVER" != "nil" ]; then
if [ "$NETFLIX_SERVER" != "$GLOBAL_SERVER" ]; then if [ "$NETFLIX_SERVER" != "$GLOBAL_SERVER" ]; then
cat /etc/config/netflix.list | while read line || [ -n "$line" ]; do cat /etc/config/netflix.list | while read line || [ -n "$line" ];
do
sed -i "/$line/d" /tmp/dnsmasq.ssr/gfw_list.conf sed -i "/$line/d" /tmp/dnsmasq.ssr/gfw_list.conf
done done
awk '!/^$/&&!/^#/{printf("ipset=/.%s/'"netflix"'\n",$0)}' /etc/config/netflix.list >/tmp/dnsmasq.ssr/netflix_forward.conf awk '!/^$/&&!/^#/{printf("ipset=/.%s/'"netflix"'\n",$0)}' /etc/config/netflix.list > /tmp/dnsmasq.ssr/netflix_forward.conf
awk '!/^$/&&!/^#/{printf("server=/.%s/'"127.0.0.1#5555"'\n",$0)}' /etc/config/netflix.list >>/tmp/dnsmasq.ssr/netflix_forward.conf awk '!/^$/&&!/^#/{printf("server=/.%s/'"127.0.0.1#5555"'\n",$0)}' /etc/config/netflix.list >> /tmp/dnsmasq.ssr/netflix_forward.conf
ipset -N netflix hash:net 2>/dev/null ipset -N netflix hash:net 2>/dev/null
cat /etc/config/netflixip.list | while read nip || [ -n "$nip" ]; do cat /etc/config/netflixip.list | while read nip || [ -n "$nip" ];
do
ipset add netflix $nip 2>/dev/null ipset add netflix $nip 2>/dev/null
done done
else else
cat /etc/config/netflix.list | while read line || [ -n "$line" ]; do cat /etc/config/netflix.list | while read line || [ -n "$line" ];
do
sed -i "/$line/d" /tmp/dnsmasq.ssr/gfw_list.conf sed -i "/$line/d" /tmp/dnsmasq.ssr/gfw_list.conf
done done
awk '!/^$/&&!/^#/{printf("ipset=/.%s/'"netflix"'\n",$0)}' /etc/config/netflix.list >/tmp/dnsmasq.ssr/netflix_forward.conf awk '!/^$/&&!/^#/{printf("ipset=/.%s/'"netflix"'\n",$0)}' /etc/config/netflix.list > /tmp/dnsmasq.ssr/netflix_forward.conf
awk '!/^$/&&!/^#/{printf("server=/.%s/'"127.0.0.1#5335"'\n",$0)}' /etc/config/netflix.list >>/tmp/dnsmasq.ssr/netflix_forward.conf awk '!/^$/&&!/^#/{printf("server=/.%s/'"127.0.0.1#5335"'\n",$0)}' /etc/config/netflix.list >> /tmp/dnsmasq.ssr/netflix_forward.conf
ipset -N netflix hash:net 2>/dev/null ipset -N netflix hash:net 2>/dev/null
cat /etc/config/netflixip.list | while read nip || [ -n "$nip" ]; do cat /etc/config/netflixip.list | while read nip || [ -n "$nip" ];
do
ipset add netflix $nip 2>/dev/null ipset add netflix $nip 2>/dev/null
done done
fi fi
else
rm -f /tmp/dnsmasq.ssr/netflix_forward.conf
fi
/etc/init.d/dnsmasq restart >/dev/null 2>&1 /etc/init.d/dnsmasq restart >/dev/null 2>&1
fi fi
@ -739,3 +751,5 @@ stop() {
fi fi
del_cron del_cron
} }

View File

@ -127,7 +127,7 @@ ipset_r() {
else else
ipset -! add whitelist $NETFLIX_IP ipset -! add whitelist $NETFLIX_IP
fi fi
else elif [ "$NETFLIX" == "2" ]; then
$IPT -I SS_SPEC_WAN_AC -p tcp -m set --match-set netflix dst -j REDIRECT --to-ports $local_port $IPT -I SS_SPEC_WAN_AC -p tcp -m set --match-set netflix dst -j REDIRECT --to-ports $local_port
fi fi
@ -399,3 +399,4 @@ fi
flush_r && fw_rule && ipset_r && ac_rule && tp_rule && gen_include flush_r && fw_rule && ipset_r && ac_rule && tp_rule && gen_include
[ "$?" == 0 ] || loger 3 "Start failed!" [ "$?" == 0 ] || loger 3 "Start failed!"
exit $? exit $?