Home | History | Annotate | Line # | Download | only in examples
p2p-action-udhcp.sh revision 1.1.1.1.52.1
      1           1.1  christos #!/bin/sh
      2           1.1  christos 
      3           1.1  christos IFNAME=$1
      4           1.1  christos CMD=$2
      5           1.1  christos 
      6           1.1  christos kill_daemon() {
      7           1.1  christos     NAME=$1
      8           1.1  christos     PF=$2
      9           1.1  christos 
     10           1.1  christos     if [ ! -r $PF ]; then
     11           1.1  christos 	return
     12           1.1  christos     fi
     13           1.1  christos 
     14           1.1  christos     PID=`cat $PF`
     15           1.1  christos     if [ $PID -gt 0 ]; then
     16           1.1  christos 	if ps $PID | grep -q $NAME; then
     17           1.1  christos 	    kill $PID
     18           1.1  christos 	fi
     19           1.1  christos     fi
     20           1.1  christos     rm $PF
     21           1.1  christos }
     22           1.1  christos 
     23           1.1  christos if [ "$CMD" = "P2P-GROUP-STARTED" ]; then
     24           1.1  christos     GIFNAME=$3
     25           1.1  christos     if [ "$4" = "GO" ]; then
     26           1.1  christos 	kill_daemon udhcpc /var/run/udhcpc-$GIFNAME.pid
     27           1.1  christos 	ifconfig $GIFNAME 192.168.42.1 up
     28           1.1  christos 	udhcpd /etc/udhcpd-p2p.conf
     29           1.1  christos     fi
     30           1.1  christos     if [ "$4" = "client" ]; then
     31           1.1  christos 	kill_daemon udhcpc /var/run/udhcpc-$GIFNAME.pid
     32           1.1  christos 	kill_daemon udhcpd /var/run/udhcpd-$GIFNAME.pid
     33           1.1  christos 	udhcpc -i $GIFNAME -p /var/run/udhcpc-$GIFNAME.pid \
     34           1.1  christos 		-s /etc/udhcpc.script
     35           1.1  christos     fi
     36           1.1  christos fi
     37           1.1  christos 
     38           1.1  christos if [ "$CMD" = "P2P-GROUP-REMOVED" ]; then
     39           1.1  christos     GIFNAME=$3
     40           1.1  christos     if [ "$4" = "GO" ]; then
     41           1.1  christos 	kill_daemon udhcpd /var/run/udhcpd-$GIFNAME.pid
     42           1.1  christos 	ifconfig $GIFNAME 0.0.0.0
     43           1.1  christos     fi
     44           1.1  christos     if [ "$4" = "client" ]; then
     45           1.1  christos 	kill_daemon udhcpc /var/run/udhcpc-$GIFNAME.pid
     46           1.1  christos 	ifconfig $GIFNAME 0.0.0.0
     47           1.1  christos     fi
     48           1.1  christos fi
     49           1.1  christos 
     50           1.1  christos if [ "$CMD" = "P2P-CROSS-CONNECT-ENABLE" ]; then
     51           1.1  christos     GIFNAME=$3
     52           1.1  christos     UPLINK=$4
     53  1.1.1.1.52.1  perseant     # enable NAT/masquerade $GIFNAME -> $UPLINK
     54           1.1  christos     iptables -P FORWARD DROP
     55           1.1  christos     iptables -t nat -A POSTROUTING -o $UPLINK -j MASQUERADE
     56           1.1  christos     iptables -A FORWARD -i $UPLINK -o $GIFNAME -m state --state RELATED,ESTABLISHED -j ACCEPT
     57           1.1  christos     iptables -A FORWARD -i $GIFNAME -o $UPLINK -j ACCEPT
     58           1.1  christos     sysctl net.ipv4.ip_forward=1
     59           1.1  christos fi
     60           1.1  christos 
     61           1.1  christos if [ "$CMD" = "P2P-CROSS-CONNECT-DISABLE" ]; then
     62           1.1  christos     GIFNAME=$3
     63           1.1  christos     UPLINK=$4
     64  1.1.1.1.52.1  perseant     # disable NAT/masquerade $GIFNAME -> $UPLINK
     65           1.1  christos     sysctl net.ipv4.ip_forward=0
     66           1.1  christos     iptables -t nat -D POSTROUTING -o $UPLINK -j MASQUERADE
     67           1.1  christos     iptables -D FORWARD -i $UPLINK -o $GIFNAME -m state --state RELATED,ESTABLISHED -j ACCEPT
     68           1.1  christos     iptables -D FORWARD -i $GIFNAME -o $UPLINK -j ACCEPT
     69           1.1  christos fi
     70