mirror of
https://github.com/coolsnowwolf/packages.git
synced 2025-05-01 22:41:43 +08:00
75 lines
2.0 KiB
Bash
Executable File
75 lines
2.0 KiB
Bash
Executable File
#!/bin/sh /etc/rc.common
|
|
|
|
USE_PROCD=1
|
|
START=95
|
|
|
|
CONF="microsocks"
|
|
|
|
start_service() {
|
|
config_load "$CONF"
|
|
|
|
local _enabled
|
|
config_get_bool _enabled "config" "enabled" "0"
|
|
[ "$_enabled" -eq "1" ] || return 1
|
|
|
|
local _port _listenip _bindaddr
|
|
local _user _password
|
|
local _auth_once _internet_access
|
|
local _quiet
|
|
|
|
config_get _port "config" "port"
|
|
config_get _listenip "config" "listenip"
|
|
config_get _bindaddr "config" "bindaddr"
|
|
config_get _user "config" "user"
|
|
config_get _password "config" "password"
|
|
config_get_bool _auth_once "config" "auth_once" 0
|
|
config_get_bool _internet_access "config" "internet_access" 0
|
|
config_get_bool _quiet "config" "quiet" 0
|
|
|
|
procd_open_instance "$CONF"
|
|
procd_set_param command /usr/bin/microsocks
|
|
[ -z "$_port" ] || procd_append_param command -p "${_port}"
|
|
[ -z "$_listenip" ] || procd_append_param command -i "${_listenip}"
|
|
[ -z "$_bindaddr" ] || procd_append_param command -b "${_bindaddr}"
|
|
[ -z "$_user" ] || procd_append_param command -u "${_user}"
|
|
[ -z "$_password" ] || procd_append_param command -P "${_password}"
|
|
[ "$_auth_once" -eq "0" ] || procd_append_param command -1
|
|
[ "$_quiet" -eq "0" ] || procd_append_param command -q
|
|
|
|
procd_set_param limits core="unlimited"
|
|
procd_set_param limits nofile="1000000 1000000"
|
|
procd_set_param respawn
|
|
procd_set_param stderr 1
|
|
# TODO: Make it dependable on some verbose/debug config setting?
|
|
# procd_set_param stdout 1
|
|
|
|
[ "$_internet_access" -eq "0" ] || {
|
|
procd_open_data
|
|
json_add_array firewall
|
|
json_add_object ""
|
|
json_add_string type rule
|
|
json_add_string name "Allow-access-microsocks-at-$_port"
|
|
json_add_string src "*"
|
|
json_add_string dest_port "$_port"
|
|
json_add_string proto tcp
|
|
json_add_string target ACCEPT
|
|
json_close_object
|
|
json_close_array
|
|
procd_close_data
|
|
}
|
|
|
|
procd_close_instance
|
|
}
|
|
|
|
service_started() {
|
|
procd_set_config_changed firewall
|
|
}
|
|
|
|
service_stopped() {
|
|
procd_set_config_changed firewall
|
|
}
|
|
|
|
service_triggers() {
|
|
procd_add_reload_trigger "$CONF"
|
|
}
|