mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-10-26 19:02:51 +08:00
70 lines
1.4 KiB
Bash
Executable File
70 lines
1.4 KiB
Bash
Executable File
#!/bin/sh /etc/rc.common
|
|
# Copyright (C) 2021 Tianling Shen <cnsztl@immortalwrt.org>
|
|
|
|
USE_PROCD=1
|
|
START=99
|
|
|
|
CONF="uugamebooster"
|
|
PROG="/usr/bin/uugamebooster"
|
|
|
|
UU_CONF="/usr/share/uugamebooster/uu.conf"
|
|
|
|
firewall_rule() {
|
|
json_add_object ""
|
|
json_add_string type rule
|
|
json_add_string src '*'
|
|
[ "$1" = forward ] && json_add_string dest '*'
|
|
json_add_string device tun163
|
|
json_add_string direction "$2"
|
|
json_add_string proto all
|
|
json_add_string target ACCEPT
|
|
json_close_object
|
|
}
|
|
|
|
start_service() {
|
|
config_load "$CONF"
|
|
local enabled
|
|
config_get_bool enabled "config" "enabled" "0"
|
|
[ "$enabled" -eq "1" ] || return 1
|
|
|
|
procd_open_instance "$CONF"
|
|
|
|
procd_set_param command "$PROG" "$UU_CONF"
|
|
|
|
procd_set_param limits core="unlimited"
|
|
procd_set_param respawn
|
|
procd_set_param stdout 1
|
|
procd_set_param stderr 1
|
|
|
|
# UU's own nftables ACCEPT rules cannot bypass fw4's later base chains.
|
|
# Publish tunnel rules through procd so fw4 owns their full lifecycle.
|
|
if [ -x /sbin/fw4 ]; then
|
|
procd_open_data
|
|
json_add_array firewall
|
|
firewall_rule input in
|
|
firewall_rule forward in
|
|
firewall_rule forward out
|
|
json_close_array
|
|
procd_close_data
|
|
fi
|
|
|
|
procd_close_instance
|
|
}
|
|
|
|
service_started() {
|
|
[ ! -x /sbin/fw4 ] || procd_set_config_changed firewall
|
|
}
|
|
|
|
service_stopped() {
|
|
[ ! -x /sbin/fw4 ] || procd_set_config_changed firewall
|
|
}
|
|
|
|
reload_service() {
|
|
stop
|
|
start
|
|
}
|
|
|
|
service_triggers() {
|
|
procd_add_reload_trigger "$CONF"
|
|
}
|