57 lines
1.1 KiB
Bash
Executable File
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."
|
|
}
|
|
|