18d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt#!/bin/sh
28d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
38d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtIFNAME=$1
48d520ff1dc2da35cdca849e982051b86468016d8Dmitry ShmidtCMD=$2
58d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
68d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtkill_daemon() {
78d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt    NAME=$1
88d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt    PF=$2
98d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
108d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt    if [ ! -r $PF ]; then
118d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	return
128d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt    fi
138d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
148d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt    PID=`cat $PF`
158d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt    if [ $PID -gt 0 ]; then
168d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	if ps $PID | grep -q $NAME; then
178d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	    kill $PID
188d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	fi
198d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt    fi
208d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt    rm $PF
218d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt}
228d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
238d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtif [ "$CMD" = "P2P-GROUP-STARTED" ]; then
248d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt    GIFNAME=$3
258d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt    if [ "$4" = "GO" ]; then
268d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	kill_daemon udhcpc /var/run/udhcpc-$GIFNAME.pid
278d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	ifconfig $GIFNAME 192.168.42.1 up
288d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	udhcpd /etc/udhcpd-p2p.conf
298d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt    fi
308d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt    if [ "$4" = "client" ]; then
318d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	kill_daemon udhcpc /var/run/udhcpc-$GIFNAME.pid
328d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	kill_daemon udhcpd /var/run/udhcpd-$GIFNAME.pid
338d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	udhcpc -i $GIFNAME -p /var/run/udhcpc-$GIFNAME.pid \
348d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt		-s /etc/udhcpc.script
358d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt    fi
368d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtfi
378d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
388d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtif [ "$CMD" = "P2P-GROUP-REMOVED" ]; then
398d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt    GIFNAME=$3
408d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt    if [ "$4" = "GO" ]; then
418d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	kill_daemon udhcpd /var/run/udhcpd-$GIFNAME.pid
428d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	ifconfig $GIFNAME 0.0.0.0
438d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt    fi
448d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt    if [ "$4" = "client" ]; then
458d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	kill_daemon udhcpc /var/run/udhcpc-$GIFNAME.pid
468d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt	ifconfig $GIFNAME 0.0.0.0
478d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt    fi
488d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtfi
498d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
508d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtif [ "$CMD" = "P2P-CROSS-CONNECT-ENABLE" ]; then
518d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt    GIFNAME=$3
528d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt    UPLINK=$4
538d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt    # enable NAT/masquarade $GIFNAME -> $UPLINK
548d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt    iptables -P FORWARD DROP
558d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt    iptables -t nat -A POSTROUTING -o $UPLINK -j MASQUERADE
568d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt    iptables -A FORWARD -i $UPLINK -o $GIFNAME -m state --state RELATED,ESTABLISHED -j ACCEPT
578d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt    iptables -A FORWARD -i $GIFNAME -o $UPLINK -j ACCEPT
588d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt    sysctl net.ipv4.ip_forward=1
598d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtfi
608d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt
618d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtif [ "$CMD" = "P2P-CROSS-CONNECT-DISABLE" ]; then
628d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt    GIFNAME=$3
638d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt    UPLINK=$4
648d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt    # disable NAT/masquarade $GIFNAME -> $UPLINK
658d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt    sysctl net.ipv4.ip_forward=0
668d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt    iptables -t nat -D POSTROUTING -o $UPLINK -j MASQUERADE
678d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt    iptables -D FORWARD -i $UPLINK -o $GIFNAME -m state --state RELATED,ESTABLISHED -j ACCEPT
688d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidt    iptables -D FORWARD -i $GIFNAME -o $UPLINK -j ACCEPT
698d520ff1dc2da35cdca849e982051b86468016d8Dmitry Shmidtfi
70