2019-04-24 13:49:35 +08:00

57 lines
1.1 KiB
Bash
Executable File

#!/bin/sh /etc/rc.common
# Copyright (c) 2011-2015 OpenWrt.org
START=90
get_config() {
config_get_bool enabled $1 enabled 0
config_get autoactivate $1 autoactivate 1
}
add_vlmcs_entry() {
local new_hostname="$1"
uci -q batch <<-EOF >/dev/null
add dhcp srvhost
set dhcp.@srvhost[-1].srv=_vlmcs._tcp
set dhcp.@srvhost[-1].target=$new_hostname
set dhcp.@srvhost[-1].port=1688
set dhcp.@srvhost[-1].class=0
set dhcp.@srvhost[-1].weight=100
commit dhcp
EOF
/etc/init.d/dnsmasq restart
exit 0
}
start() {
config_load vlmcsd
config_foreach get_config vlmcsd
[ $enabled -eq 0 ] && exit 0
/usr/bin/vlmcsd -i /etc/vlmcsd.ini -L 0.0.0.0:1688
echo "KMS Server has started."
if [ $autoactivate -eq 1 ]; then
local HOSTNAME=`uci get system.@system[0].hostname`
local index=$(uci -q show dhcp |grep "].srv='_vlmcs._tcp'") \
|| add_vlmcs_entry $HOSTNAME
index=${index#*[}
index=${index%]*}
local host_name=$(uci -q get dhcp.@srvhost[$index].target)
if [ "$HOSTNAME" != "$host_name" ]; then
uci delete dhcp.@srvhost[$index]
add_vlmcs_entry $HOSTNAME
fi
fi
}
stop() {
killall -q -9 vlmcsd
echo "KMS Server has stopped."
}