p2p-action-udhcp.sh revision 259065
1169695Skan#!/bin/sh
2169695Skan
3169695SkanIFNAME=$1
4169695SkanCMD=$2
5169695Skan
6169695Skankill_daemon() {
7169695Skan    NAME=$1
8169695Skan    PF=$2
9169695Skan
10169695Skan    if [ ! -r $PF ]; then
11169695Skan	return
12169695Skan    fi
13169695Skan
14169695Skan    PID=`cat $PF`
15169695Skan    if [ $PID -gt 0 ]; then
16169695Skan	if ps $PID | grep -q $NAME; then
17169695Skan	    kill $PID
18169695Skan	fi
19169695Skan    fi
20169695Skan    rm $PF
21169695Skan}
22169695Skan
23169695Skanif [ "$CMD" = "P2P-GROUP-STARTED" ]; then
24169695Skan    GIFNAME=$3
25169695Skan    if [ "$4" = "GO" ]; then
26169695Skan	kill_daemon udhcpc /var/run/udhcpc-$GIFNAME.pid
27169695Skan	ifconfig $GIFNAME 192.168.42.1 up
28169695Skan	udhcpd /etc/udhcpd-p2p.conf
29169695Skan    fi
30169695Skan    if [ "$4" = "client" ]; then
31169695Skan	kill_daemon udhcpc /var/run/udhcpc-$GIFNAME.pid
32169695Skan	kill_daemon udhcpd /var/run/udhcpd-$GIFNAME.pid
33169695Skan	udhcpc -i $GIFNAME -p /var/run/udhcpc-$GIFNAME.pid \
34169695Skan		-s /etc/udhcpc.script
35169695Skan    fi
36169695Skanfi
37169695Skan
38169695Skanif [ "$CMD" = "P2P-GROUP-REMOVED" ]; then
39169695Skan    GIFNAME=$3
40169695Skan    if [ "$4" = "GO" ]; then
41169695Skan	kill_daemon udhcpd /var/run/udhcpd-$GIFNAME.pid
42169695Skan	ifconfig $GIFNAME 0.0.0.0
43169695Skan    fi
44169695Skan    if [ "$4" = "client" ]; then
45169695Skan	kill_daemon udhcpc /var/run/udhcpc-$GIFNAME.pid
46169695Skan	ifconfig $GIFNAME 0.0.0.0
47169695Skan    fi
48169695Skanfi
49169695Skan
50169695Skanif [ "$CMD" = "P2P-CROSS-CONNECT-ENABLE" ]; then
51169695Skan    GIFNAME=$3
52169695Skan    UPLINK=$4
53169695Skan    # enable NAT/masquarade $GIFNAME -> $UPLINK
54169695Skan    iptables -P FORWARD DROP
55169695Skan    iptables -t nat -A POSTROUTING -o $UPLINK -j MASQUERADE
56169695Skan    iptables -A FORWARD -i $UPLINK -o $GIFNAME -m state --state RELATED,ESTABLISHED -j ACCEPT
57169695Skan    iptables -A FORWARD -i $GIFNAME -o $UPLINK -j ACCEPT
58169695Skan    sysctl net.ipv4.ip_forward=1
59169695Skanfi
60169695Skan
61169695Skanif [ "$CMD" = "P2P-CROSS-CONNECT-DISABLE" ]; then
62169695Skan    GIFNAME=$3
63169695Skan    UPLINK=$4
64169695Skan    # disable NAT/masquarade $GIFNAME -> $UPLINK
65169695Skan    sysctl net.ipv4.ip_forward=0
66169695Skan    iptables -t nat -D POSTROUTING -o $UPLINK -j MASQUERADE
67169695Skan    iptables -D FORWARD -i $UPLINK -o $GIFNAME -m state --state RELATED,ESTABLISHED -j ACCEPT
68169695Skan    iptables -D FORWARD -i $GIFNAME -o $UPLINK -j ACCEPT
69169695Skanfi
70169695Skan