p2p-action-udhcp.sh revision 256281
134378Sjb#!/bin/sh
234378Sjb
334378SjbIFNAME=$1
434378SjbCMD=$2
534378Sjb
634378Sjbkill_daemon() {
734378Sjb    NAME=$1
834378Sjb    PF=$2
934378Sjb
1034378Sjb    if [ ! -r $PF ]; then
1134378Sjb	return
1234378Sjb    fi
1334378Sjb
1434378Sjb    PID=`cat $PF`
1534378Sjb    if [ $PID -gt 0 ]; then
1634378Sjb	if ps $PID | grep -q $NAME; then
1734378Sjb	    kill $PID
1834378Sjb	fi
1934378Sjb    fi
2034378Sjb    rm $PF
2134378Sjb}
2234378Sjb
2334378Sjbif [ "$CMD" = "P2P-GROUP-STARTED" ]; then
2434378Sjb    GIFNAME=$3
2534378Sjb    if [ "$4" = "GO" ]; then
2634378Sjb	kill_daemon udhcpc /var/run/udhcpc-$GIFNAME.pid
2734378Sjb	ifconfig $GIFNAME 192.168.42.1 up
2834378Sjb	udhcpd /etc/udhcpd-p2p.conf
2934378Sjb    fi
3034378Sjb    if [ "$4" = "client" ]; then
3134378Sjb	kill_daemon udhcpc /var/run/udhcpc-$GIFNAME.pid
3250476Speter	kill_daemon udhcpd /var/run/udhcpd-$GIFNAME.pid
3334378Sjb	udhcpc -i $GIFNAME -p /var/run/udhcpc-$GIFNAME.pid \
3434378Sjb		-s /etc/udhcpc.script
3534378Sjb    fi
3634378Sjbfi
3735500Sjb
3834378Sjbif [ "$CMD" = "P2P-GROUP-REMOVED" ]; then
3934378Sjb    GIFNAME=$3
4034378Sjb    if [ "$4" = "GO" ]; then
4171579Sdeischen	kill_daemon udhcpd /var/run/udhcpd-$GIFNAME.pid
4234378Sjb	ifconfig $GIFNAME 0.0.0.0
4334378Sjb    fi
4475368Sdeischen    if [ "$4" = "client" ]; then
4575368Sdeischen	kill_daemon udhcpc /var/run/udhcpc-$GIFNAME.pid
4675368Sdeischen	ifconfig $GIFNAME 0.0.0.0
4734378Sjb    fi
4875368Sdeischenfi
4934378Sjb
5071579Sdeischenif [ "$CMD" = "P2P-CROSS-CONNECT-ENABLE" ]; then
5171579Sdeischen    GIFNAME=$3
5271579Sdeischen    UPLINK=$4
5371579Sdeischen    # enable NAT/masquarade $GIFNAME -> $UPLINK
5471579Sdeischen    iptables -P FORWARD DROP
5571579Sdeischen    iptables -t nat -A POSTROUTING -o $UPLINK -j MASQUERADE
5671579Sdeischen    iptables -A FORWARD -i $UPLINK -o $GIFNAME -m state --state RELATED,ESTABLISHED -j ACCEPT
5771579Sdeischen    iptables -A FORWARD -i $GIFNAME -o $UPLINK -j ACCEPT
5871579Sdeischen    sysctl net.ipv4.ip_forward=1
5971579Sdeischenfi
6034378Sjb
6134378Sjbif [ "$CMD" = "P2P-CROSS-CONNECT-DISABLE" ]; then
6234378Sjb    GIFNAME=$3
6336805Sjb    UPLINK=$4
6434378Sjb    # disable NAT/masquarade $GIFNAME -> $UPLINK
6534378Sjb    sysctl net.ipv4.ip_forward=0
6634378Sjb    iptables -t nat -D POSTROUTING -o $UPLINK -j MASQUERADE
6734378Sjb    iptables -D FORWARD -i $UPLINK -o $GIFNAME -m state --state RELATED,ESTABLISHED -j ACCEPT
6836805Sjb    iptables -D FORWARD -i $GIFNAME -o $UPLINK -j ACCEPT
6934378Sjbfi
7034378Sjb