#!/bin/sh /etc/rc.common # Copyright (C) 2007-2009 OpenWrt.org START=70 BIN=ptunnel PIDCOUNT=0 start() { include /lib/network scan_interfaces config_load ptunnel config_foreach start_ptunnel ptunnel iptables -I OUTPUT 1 -p icmp -j ACCEPT 2> /dev/null } start_ptunnel() { local section="$1" config_get interface "$section" interface config_get ifname "$interface" ifname [ -z "$ifname" ] && { echo "Error: Interface '$interface' not found" 1>&2 return 1 } PIDCOUNT="$(( ${PIDCOUNT} + 1))" ${BIN} -c "$ifname" -daemon /var/run/ptunnel."$PIDCOUNT".pid> /dev/null } stop() { local pidfile for pidfile in `ls /var/run/${BIN}.*.pid` do start-stop-daemon -K -s KILL -p "${pidfile}" -n "${BIN}" >/dev/null rm -f "${pidfile}" done }