gluon/package/tunneldigger/files/tunneldigger.init
2014-01-27 08:20:33 +01:00

63 lines
1.4 KiB
Bash
Executable File

#!/bin/sh /etc/rc.common
START=90
PIDPATH=/var/run
tunnel_id=1
config_cb() {
local cfg="$CONFIG_SECTION"
config_get configname "$cfg" TYPE
case "$configname" in
broker)
config_get addresses "$cfg" address
config_get uuid "$cfg" uuid
config_get interface "$cfg" interface
config_get limit_bw_down "$cfg" limit_bw_down
config_get hook_script "$cfg" hook_script
local broker_opts=""
for address in $addresses; do
broker_opts="${broker_opts} -b ${address}"
done
if [ ! -z "${limit_bw_down}" ]; then
broker_opts="${broker_opts} -L ${limit_bw_down}"
fi
if [ ! -z "${hook_script}" ] ; then
broker_opts="${broker_opts} -s ${hook_script}"
fi
echo "Starting tunneldigger on ${interface}"
/sbin/start-stop-daemon -S -q -b -m -p ${PIDPATH}/tunneldigger.${interface}.pid -x /usr/bin/tunneldigger -- -u ${uuid} -i ${interface} -t ${tunnel_id} ${broker_opts}
let tunnel_id++
;;
esac
}
start() {
config_load tunneldigger
}
stop() {
for PIDFILE in `find ${PIDPATH}/ -name "tunneldigger\.*\.pid"`; do
PID=`cat ${PIDFILE}`
IFACE=`echo ${PIDFILE} | awk -F\/tunneldigger '{print $2}' | cut -d'.' -f2`
echo "Stopping tunneldigger for interface ${IFACE}"
start-stop-daemon -K -q -p $PIDFILE
while test -d "/proc/${PID}"; do
echo " waiting for tunneldigger to stop"
sleep 1
done
echo " tunneldigger stopped"
done
}
restart() {
stop
start
}