2012-06-05 09:05:37 +00:00
|
|
|
#!/bin/sh /etc/rc.common
|
2014-01-10 10:11:39 +00:00
|
|
|
|
2012-06-07 08:22:48 +00:00
|
|
|
START=90
|
2012-06-05 09:05:37 +00:00
|
|
|
|
2014-01-10 14:03:43 +00:00
|
|
|
PIDPATH=/var/run
|
2012-06-08 20:59:59 +00:00
|
|
|
tunnel_id=1
|
|
|
|
|
2012-06-05 09:05:37 +00:00
|
|
|
config_cb() {
|
|
|
|
local cfg="$CONFIG_SECTION"
|
|
|
|
config_get configname "$cfg" TYPE
|
|
|
|
case "$configname" in
|
|
|
|
broker)
|
2014-01-27 04:29:29 +00:00
|
|
|
config_get_bool enabled "$cfg" enabled 1
|
2012-08-19 16:36:06 +00:00
|
|
|
config_get addresses "$cfg" address
|
2012-06-05 09:05:37 +00:00
|
|
|
config_get uuid "$cfg" uuid
|
|
|
|
config_get interface "$cfg" interface
|
2013-06-06 16:56:29 +00:00
|
|
|
config_get limit_bw_down "$cfg" limit_bw_down
|
2014-01-10 10:11:39 +00:00
|
|
|
config_get hook_script "$cfg" hook_script
|
2012-07-11 18:33:11 +00:00
|
|
|
|
2014-01-27 04:29:29 +00:00
|
|
|
[ $enabled -eq 0 ] && return
|
|
|
|
|
2012-07-11 18:33:11 +00:00
|
|
|
local broker_opts=""
|
2012-08-19 16:36:06 +00:00
|
|
|
for address in $addresses; do
|
2014-01-27 04:32:29 +00:00
|
|
|
append broker_opts "-b ${address}"
|
2012-07-11 18:33:11 +00:00
|
|
|
done
|
2013-06-06 16:56:29 +00:00
|
|
|
|
2014-01-27 04:32:29 +00:00
|
|
|
[ ! -z "${limit_bw_down}" ] && append broker_opts "-L ${limit_bw_down}"
|
|
|
|
[ ! -z "${hook_script}" ] && append broker_opts "-s ${hook_script}"
|
2014-01-20 02:52:40 +00:00
|
|
|
|
|
|
|
fi
|
|
|
|
|
2014-01-10 10:56:40 +00:00
|
|
|
echo "Starting tunneldigger on ${interface}"
|
2014-01-20 02:52:40 +00:00
|
|
|
/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}
|
|
|
|
|
2012-06-08 20:59:59 +00:00
|
|
|
let tunnel_id++
|
2012-06-05 09:05:37 +00:00
|
|
|
;;
|
|
|
|
esac
|
|
|
|
}
|
|
|
|
|
2014-01-10 10:11:39 +00:00
|
|
|
start() {
|
2012-06-05 09:05:37 +00:00
|
|
|
config_load tunneldigger
|
|
|
|
}
|
|
|
|
|
|
|
|
stop() {
|
2014-01-10 14:03:43 +00:00
|
|
|
for PIDFILE in `find ${PIDPATH}/ -name "tunneldigger\.*\.pid"`; do
|
2014-01-10 10:11:39 +00:00
|
|
|
PID=`cat ${PIDFILE}`
|
2014-01-10 14:03:43 +00:00
|
|
|
IFACE=`echo ${PIDFILE} | awk -F\/tunneldigger '{print $2}' | cut -d'.' -f2`
|
|
|
|
echo "Stopping tunneldigger for interface ${IFACE}"
|
2014-01-10 10:11:39 +00:00
|
|
|
start-stop-daemon -K -q -p $PIDFILE
|
|
|
|
while test -d "/proc/${PID}"; do
|
2014-01-10 14:03:43 +00:00
|
|
|
echo " waiting for tunneldigger to stop"
|
2014-01-10 10:11:39 +00:00
|
|
|
sleep 1
|
|
|
|
done
|
2014-01-10 14:03:43 +00:00
|
|
|
echo " tunneldigger stopped"
|
|
|
|
done
|
2014-01-10 10:11:39 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
restart() {
|
|
|
|
stop
|
|
|
|
start
|
2012-06-05 09:05:37 +00:00
|
|
|
}
|
|
|
|
|