1252190Srpaulo#!/bin/sh
2252190Srpaulo
3252190SrpauloIFNAME=$1
4252190SrpauloCMD=$2
5252190Srpaulo
6252190Srpaulokill_daemon() {
7252190Srpaulo    NAME=$1
8252190Srpaulo    PF=$2
9252190Srpaulo
10252190Srpaulo    if [ ! -r $PF ]; then
11252190Srpaulo	return
12252190Srpaulo    fi
13252190Srpaulo
14252190Srpaulo    PID=`cat $PF`
15252190Srpaulo    if [ $PID -gt 0 ]; then
16252190Srpaulo	if ps $PID | grep -q $NAME; then
17252190Srpaulo	    kill $PID
18252190Srpaulo	fi
19252190Srpaulo    fi
20252190Srpaulo    rm $PF
21252190Srpaulo}
22252190Srpaulo
23252190Srpauloif [ "$CMD" = "P2P-GROUP-STARTED" ]; then
24252190Srpaulo    GIFNAME=$3
25252190Srpaulo    if [ "$4" = "GO" ]; then
26252190Srpaulo	kill_daemon udhcpc /var/run/udhcpc-$GIFNAME.pid
27252190Srpaulo	ifconfig $GIFNAME 192.168.42.1 up
28252190Srpaulo	udhcpd /etc/udhcpd-p2p.conf
29252190Srpaulo    fi
30252190Srpaulo    if [ "$4" = "client" ]; then
31252190Srpaulo	kill_daemon udhcpc /var/run/udhcpc-$GIFNAME.pid
32252190Srpaulo	kill_daemon udhcpd /var/run/udhcpd-$GIFNAME.pid
33252190Srpaulo	udhcpc -i $GIFNAME -p /var/run/udhcpc-$GIFNAME.pid \
34252190Srpaulo		-s /etc/udhcpc.script
35252190Srpaulo    fi
36252190Srpaulofi
37252190Srpaulo
38252190Srpauloif [ "$CMD" = "P2P-GROUP-REMOVED" ]; then
39252190Srpaulo    GIFNAME=$3
40252190Srpaulo    if [ "$4" = "GO" ]; then
41252190Srpaulo	kill_daemon udhcpd /var/run/udhcpd-$GIFNAME.pid
42252190Srpaulo	ifconfig $GIFNAME 0.0.0.0
43252190Srpaulo    fi
44252190Srpaulo    if [ "$4" = "client" ]; then
45252190Srpaulo	kill_daemon udhcpc /var/run/udhcpc-$GIFNAME.pid
46252190Srpaulo	ifconfig $GIFNAME 0.0.0.0
47252190Srpaulo    fi
48252190Srpaulofi
49252190Srpaulo
50252190Srpauloif [ "$CMD" = "P2P-CROSS-CONNECT-ENABLE" ]; then
51252190Srpaulo    GIFNAME=$3
52252190Srpaulo    UPLINK=$4
53252190Srpaulo    # enable NAT/masquarade $GIFNAME -> $UPLINK
54252190Srpaulo    iptables -P FORWARD DROP
55252190Srpaulo    iptables -t nat -A POSTROUTING -o $UPLINK -j MASQUERADE
56252190Srpaulo    iptables -A FORWARD -i $UPLINK -o $GIFNAME -m state --state RELATED,ESTABLISHED -j ACCEPT
57252190Srpaulo    iptables -A FORWARD -i $GIFNAME -o $UPLINK -j ACCEPT
58252190Srpaulo    sysctl net.ipv4.ip_forward=1
59252190Srpaulofi
60252190Srpaulo
61252190Srpauloif [ "$CMD" = "P2P-CROSS-CONNECT-DISABLE" ]; then
62252190Srpaulo    GIFNAME=$3
63252190Srpaulo    UPLINK=$4
64252190Srpaulo    # disable NAT/masquarade $GIFNAME -> $UPLINK
65252190Srpaulo    sysctl net.ipv4.ip_forward=0
66252190Srpaulo    iptables -t nat -D POSTROUTING -o $UPLINK -j MASQUERADE
67252190Srpaulo    iptables -D FORWARD -i $UPLINK -o $GIFNAME -m state --state RELATED,ESTABLISHED -j ACCEPT
68252190Srpaulo    iptables -D FORWARD -i $GIFNAME -o $UPLINK -j ACCEPT
69252190Srpaulofi
70