mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-07-27 18:41:15 +08:00
76 lines
1.9 KiB
Bash
Executable File
76 lines
1.9 KiB
Bash
Executable File
#!/bin/sh /etc/rc.common
|
|
|
|
START=99
|
|
USE_PROCD=1
|
|
|
|
DNSMASQ_UCI_CONFIG="$(uci -q show "dhcp.@dnsmasq[0]" | awk 'NR==1 {split($0, conf, /[.=]/); print conf[2]}')"
|
|
if [ -f "/tmp/etc/dnsmasq.conf.$DNSMASQ_UCI_CONFIG" ];then
|
|
DNSMASQ_VLMCSD="$(awk -F '=' '/^conf-dir=/ {print $2}' "/tmp/etc/dnsmasq.conf.$DNSMASQ_UCI_CONFIG")/dnsmasq-vlmcsd.conf"
|
|
else
|
|
DNSMASQ_VLMCSD="/tmp/dnsmasq.d/dnsmasq-vlmcsd.conf"
|
|
fi
|
|
|
|
start_service() {
|
|
local enabled auto_activate internet_access
|
|
|
|
config_load "vlmcsd"
|
|
config_get_bool enabled "config" "enabled" "0"
|
|
config_get_bool auto_activate "config" "auto_activate" "0"
|
|
config_get_bool internet_access "config" "internet_access" "0"
|
|
|
|
[ "$enabled" -eq "1" ] || return 1
|
|
|
|
if [ "$auto_activate" -eq "1" ];then
|
|
hostname="$(uci get system.@system[0].hostname)"
|
|
echo "srv-host=_vlmcs._tcp,$hostname,1688,0,100" > "$DNSMASQ_VLMCSD"
|
|
/etc/init.d/dnsmasq restart 2>"/dev/null"
|
|
fi
|
|
|
|
procd_open_instance "vlmcsd"
|
|
procd_set_param command /usr/bin/vlmcsd
|
|
procd_append_param command -D
|
|
procd_append_param command -i "/etc/vlmcsd.ini"
|
|
procd_append_param command -l syslog
|
|
procd_append_param command -L "0.0.0.0:1688"
|
|
procd_append_param command -L "[::]:1688"
|
|
|
|
procd_set_param file "/etc/vlmcsd.ini"
|
|
procd_set_param respawn
|
|
|
|
procd_set_param user vlmcsd
|
|
procd_set_param group vlmcsd
|
|
procd_add_jail vlmcsd ronly log
|
|
procd_add_jail_mount "/etc/vlmcsd.ini"
|
|
|
|
if [ "$internet_access" -eq "1" ];then
|
|
procd_open_data
|
|
json_add_array firewall
|
|
json_add_object ""
|
|
json_add_string type rule
|
|
json_add_string name "Allow-vlmcsd-tcp"
|
|
json_add_string proto "tcp"
|
|
json_add_string src "*"
|
|
json_add_string dest_port "1688"
|
|
json_add_string target "ACCEPT"
|
|
json_close_object
|
|
json_close_array
|
|
procd_close_data
|
|
fi
|
|
|
|
procd_close_instance
|
|
}
|
|
|
|
stop_service() {
|
|
rm -f "$DNSMASQ_VLMCSD"
|
|
/etc/init.d/dnsmasq restart 2>"/dev/null"
|
|
}
|
|
|
|
reload_service() {
|
|
stop
|
|
start
|
|
}
|
|
|
|
service_triggers() {
|
|
procd_add_reload_trigger vlmcsd
|
|
}
|