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