| you.chen | cd88268 | 2023-04-24 15:39:37 +0800 | [diff] [blame] | 1 | #!/bin/sh | 
 | 2 |  | 
 | 3 | if [ "$1" == "start" ]; then | 
 | 4 |         ifconfig wlan0 up | 
 | 5 |         if [ $? != 0 ]; then | 
 | 6 |                 exit 1 | 
 | 7 |         fi | 
| you.chen | 3c30900 | 2023-04-26 10:00:06 +0800 | [diff] [blame] | 8 | 		ps -eo "%p %a" | grep "dhcpcd wlan0" | grep -v grep | 
| you.chen | cd88268 | 2023-04-24 15:39:37 +0800 | [diff] [blame] | 9 | 		if [ $? != 0 ];	then | 
| you.chen | 57eb584 | 2023-05-18 14:19:46 +0800 | [diff] [blame] | 10 | 			echo "" > /tmp/wlan0_dhcpcd_router | 
| you.chen | d994895 | 2023-05-19 11:05:24 +0800 | [diff] [blame] | 11 | 			mkdir -p /run/wg870/ | 
 | 12 | 			hook_script="/run/wg870/wlan0_dhcpcd_run_hooks.sh" | 
 | 13 | 			echo "#!/bin/sh" > $hook_script | 
 | 14 | 			echo "if [ \"\$reason\" == \"BOUND\" -o \"\$reason\" == \"RENEW\" -o \"\$reason\" == \"REBIND\" ]; then" >> $hook_script | 
 | 15 | 			echo "    if [ \"\$new_routers\" != \"\" ]; then" >> $hook_script | 
 | 16 | 			echo "        for x in \$new_routers; do" >> $hook_script | 
 | 17 | 			echo "            echo \"new_router \$x\" > /tmp/wlan0_dhcpcd_router" >> $hook_script | 
 | 18 | 			echo "            ping -c2 \$x &" >> $hook_script | 
 | 19 | 			echo "        done" >> $hook_script | 
 | 20 | 			echo "    fi" >> $hook_script | 
 | 21 | 			echo "fi" >> $hook_script | 
 | 22 | 			chmod +x $hook_script | 
 | 23 | 			dhcpcd wlan0 -t 0 -o domain_name_servers --noipv4ll -4 -B -G -c $hook_script & | 
| you.chen | cd88268 | 2023-04-24 15:39:37 +0800 | [diff] [blame] | 24 | 		fi | 
 | 25 | elif [ "$1" == "stop" ]; then | 
| you.chen | 3c30900 | 2023-04-26 10:00:06 +0800 | [diff] [blame] | 26 |         ps -eo "%p %a" | grep "dhcpcd wlan0" | grep -v grep | awk '{print "kill "$1}' | sh | 
| you.chen | cd88268 | 2023-04-24 15:39:37 +0800 | [diff] [blame] | 27 |         ifconfig wlan0 0.0.0.0 | 
 | 28 |         if [ $? != 0 ]; then | 
 | 29 |                 exit 1 | 
 | 30 |         fi | 
 | 31 | else | 
 | 32 |         exit 2 | 
 | 33 | fi | 
 | 34 |  | 
| you.chen | 3c30900 | 2023-04-26 10:00:06 +0800 | [diff] [blame] | 35 | exit 0 |