[packages] aiccu: Rework init script
git-svn-id: svn://svn.openwrt.org/openwrt/packages@28726 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
parent
6d1ade36a1
commit
6a9bf1e4d4
@ -1,52 +1,77 @@
|
|||||||
#!/bin/sh /etc/rc.common
|
#!/bin/sh /etc/rc.common
|
||||||
# Copyright (C) 2006 OpenWrt.org
|
# Copyright (C) 2006-2011 OpenWrt.org
|
||||||
START=51
|
START=51
|
||||||
|
|
||||||
config_cb() {
|
add_config_bool() {
|
||||||
local cfg_type="$1"
|
local section="$1"
|
||||||
local cfg_name="$2"
|
local option="$2"
|
||||||
|
local value="$3"
|
||||||
|
local default="$4"
|
||||||
|
local _val
|
||||||
|
|
||||||
case "$cfg_type" in
|
config_get_bool _val "$section" "$option" "$default"
|
||||||
aiccu)
|
[ "$_val" -gt 0 ] && _val="true" || _val="false"
|
||||||
append cfgs_sections "$cfg_name" "$N"
|
append args "$3 $_val" "\n"
|
||||||
;;
|
}
|
||||||
esac
|
|
||||||
|
add_config() {
|
||||||
|
local section="$1"
|
||||||
|
local option="$2"
|
||||||
|
local value="$3"
|
||||||
|
local _val
|
||||||
|
|
||||||
|
config_get _val "$section" "$option"
|
||||||
|
[ -n "$_val" ] && append args "$3 $_val" "\n"
|
||||||
|
}
|
||||||
|
|
||||||
|
start_instance() {
|
||||||
|
local cfg="$1"
|
||||||
|
CFGFILE="/var/etc/aiccu-${cfg}.conf"
|
||||||
|
PIDFILE="/var/run/aiccu-${cfg}.pid"
|
||||||
|
args=""
|
||||||
|
|
||||||
|
add_config "$cfg" username username
|
||||||
|
add_config "$cfg" password password
|
||||||
|
add_config "$cfg" server server
|
||||||
|
add_config "$cfg" protocol protocol
|
||||||
|
add_config "$cfg" interface ipv6_interface
|
||||||
|
add_config "$cfg" tunnel_id tunnel_id
|
||||||
|
add_config_bool "$cfg" requiretls requiretls 0
|
||||||
|
add_config_bool "$cfg" defaultroute defaultroute 1
|
||||||
|
add_config_bool "$cfg" nat behindnat 1
|
||||||
|
add_config_bool "$cfg" heartbeat makebeats 1
|
||||||
|
append args "daemonize true" "\n"
|
||||||
|
append args "pidfile $PIDFILE" "\n"
|
||||||
|
|
||||||
|
mkdir -p /var/run
|
||||||
|
echo -e "$args" > "$CFGFILE"
|
||||||
|
|
||||||
|
config_get_bool enabled "$cfg" enabled '1'
|
||||||
|
[ "$enabled" -gt 0 ] && aiccu start "$CFGFILE"
|
||||||
|
}
|
||||||
|
|
||||||
|
stop_instance() {
|
||||||
|
local cfg="$1"
|
||||||
|
aiccu stop /tmp/run/aiccu-"$cfg".conf
|
||||||
|
}
|
||||||
|
|
||||||
|
restart_instance() {
|
||||||
|
local cfg="$1"
|
||||||
|
stop_instance "$cfg"
|
||||||
|
start_instance "$cfg"
|
||||||
}
|
}
|
||||||
|
|
||||||
start() {
|
start() {
|
||||||
config_load aiccu
|
config_load aiccu
|
||||||
for cfgs_section in $cfgs_sections; do
|
config_foreach start_instance aiccu
|
||||||
config_get username $cfgs_section username
|
|
||||||
config_get password $cfgs_section password
|
|
||||||
config_get server $cfgs_section server
|
|
||||||
config_get protocol $cfgs_section protocol
|
|
||||||
config_get interface $cfgs_section interface
|
|
||||||
config_get tunnel_id $cfgs_section tunnel_id
|
|
||||||
config_get_bool requiretls $cfgs_section requiretls 0
|
|
||||||
config_get_bool defaultroute $cfgs_section defaultroute 1
|
|
||||||
config_get_bool nat $cfgs_section nat 1
|
|
||||||
config_get_bool heartbeat $cfgs_section heartbeat 1
|
|
||||||
mkdir -p /tmp/run
|
|
||||||
echo "username $username" > /tmp/run/aiccu-${cfgs_section}.conf
|
|
||||||
echo "password $password" >> /tmp/run/aiccu-${cfgs_section}.conf
|
|
||||||
[ -n "$server" ] && echo "server $server" >> /tmp/run/aiccu-${cfgs_section}.conf
|
|
||||||
[ -n "$protocol" ] && echo "protocol $protocol" >> /tmp/run/aiccu-${cfgs_section}.conf
|
|
||||||
[ -n "$interface" ] && echo "ipv6_interface $interface" >> /tmp/run/aiccu-${cfgs_section}.conf
|
|
||||||
[ -n "$tunnel_id" ] && echo "tunnel_id $tunnel_id" >> /tmp/run/aiccu-${cfgs_section}.conf
|
|
||||||
[ "$requiretls" = "1" ] && echo "requiretls true" >> /tmp/run/aiccu-${cfgs_section}.conf
|
|
||||||
[ "$defaultroute" != "1" ] && echo "defaultroute false" >> /tmp/run/aiccu-${cfgs_section}.conf
|
|
||||||
[ "$nat" = "1" ] && echo "behindnat true" >> /tmp/run/aiccu-${cfgs_section}.conf
|
|
||||||
[ "$heartbeat" != "1" ] && echo "makebeats false" >> /tmp/run/aiccu-${cfgs_section}.conf
|
|
||||||
echo 'daemonize true' >> /tmp/run/aiccu-${cfgs_section}.conf
|
|
||||||
echo "pidfile /var/run/aiccu-${cfgs_section}.pid" >> /tmp/run/aiccu-${cfgs_section}.conf
|
|
||||||
|
|
||||||
aiccu start /tmp/run/aiccu-$cfgs_section.conf
|
|
||||||
done
|
|
||||||
}
|
}
|
||||||
|
|
||||||
stop() {
|
stop() {
|
||||||
config_load aiccu
|
config_load aiccu
|
||||||
for cfgs_section in $cfgs_sections; do
|
config_foreach stop_instance aiccu
|
||||||
aiccu stop /tmp/run/aiccu-$cfgs_section.conf
|
|
||||||
done
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
restart() {
|
||||||
|
config_load aiccu
|
||||||
|
config_foreach restart_instance aiccu
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user