#!/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 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} -s ${hook_script} ${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 }