diff --git a/package/lean/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/package/lean/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index f321d7de44..8e9f22ef43 100755 --- a/package/lean/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/package/lean/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -561,6 +561,8 @@ stop() { fi killall -q -9 ssr-monitor killall -q -9 ss-redir + killall -q -9 obfs-local + killall -q -9 v2ray-plugin killall -q -9 ssr-redir killall -q -9 v2ray killall -q -9 trojan diff --git a/package/lean/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua b/package/lean/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua index effb5d5d16..30b35a2bf9 100644 --- a/package/lean/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua +++ b/package/lean/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua @@ -193,12 +193,21 @@ local function processData(szType, content) if host[2]:find("/\\?") then local query = split(host[2], "/\\?") result.server_port = query[1] - -- local params = {} - -- for _, v in pairs(split(query[2], '&')) do - -- local t = split(v, '=') - -- params[t[1]] = t[2] - -- end - -- 这里似乎没什么用 我看数据结构没有写插件的支持 先抛弃 + local params = {} + for _, v in pairs(split(query[2], '&')) do + local t = split(v, '=') + params[t[1]] = t[2] + end + if params.lugin then + local plugin_info = UrlDecode(params.lugin) + local idx_pn = plugin_info:find(";") + if idx_pn then + result.plugin = plugin_info:sub(1, idx_pn - 1) + result.plugin_opts = plugin_info:sub(idx_pn + 1, #plugin_info) + else + result.plugin = plugin_info + end + end else result.server_port = host[2] end @@ -365,3 +374,4 @@ if subscribe_url and #subscribe_url > 0 then end end) end +