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