mir3c/squashfs-root/usr/sbin/dhcp_do_opt43_act.sh

79 lines
1.7 KiB
Bash
Executable File

#!/bin/ash
del_ip(){
del_ip=$1
ip_addr_str_all=$(ip addr | grep $del_ip)
# echo $ip_addr_str_all
ip_str=${ip_addr_str_all#*inet }
ip_str=${ip_str%scope*}
ifname=${ip_addr_str_all#*global }
# echo $ifname
# echo $ip_str
ip addr del $ip_str dev $ifname
}
act_base64=$1
if [ $act_base64 == "cmVwbGFjZV9yb3V0ZXIK" ]; then
act="replace_router"
elif [ $act_base64 == "c2V0X2lwX21hYwo=" ];then
act="set_ip_mac"
else
return 101
fi
del_ip 169.254.31.1
del_ip 169.254.31.2
case "$act" in
replace_router)
#test and set ip
ip address | grep 169.254.31../30 2> /dev/NULL > /dev/NULL
if [ $? == 0 ]; then
ip address | grep 169.254.31.1/30 2>/dev/NULL > /dev/NULL
if [ $? == 0 ]; then
ip address | grep 169.254.31.1/30 | grep br-lan 2>/dev/NULL > /dev/NULL
if [ $? != 0 ]; then
return 115
else
return 0
fi
else
return 116
fi
else
ip addr add 169.254.31.1/30 dev br-lan
exit $?
fi
;;
set_ip_mac)
#test and set ip
ip address | grep 169.254.31../30 2> /dev/NULL > /dev/NULL
if [ $? == 0 ]; then
ip address | grep 169.254.31.1/30 2>/dev/NULL > /dev/NULL
if [ $? == 0 ]; then
ip address | grep 169.254.31.1/30 | grep br-lan 2>/dev/NULL > /dev/NULL
if [ $? != 0 ]; then
return 115
else
ifconfig br-lan 169.254.31.1 netmask 255.255.255.252
prepare_sync.sh $2
return 0
fi
else
return 116
fi
else
ifconfig br-lan 169.254.31.1 netmask 255.255.255.252
#ip addr add 169.254.31.1/30 dev br-lan
ret=$?
prepare_sync.sh $2
return ret
fi
;;
*)
return 102
;;
esac
exit 102