76 lines
1.4 KiB
Bash
76 lines
1.4 KiB
Bash
|
|
#!/bin/sh
|
||
|
|
|
||
|
|
PROCESS=gmediarender
|
||
|
|
NAME=rockchip
|
||
|
|
|
||
|
|
dlna_start()
|
||
|
|
{
|
||
|
|
echo dlna_start
|
||
|
|
$PROCESS -f $NAME -d
|
||
|
|
}
|
||
|
|
|
||
|
|
dlna_stop()
|
||
|
|
{
|
||
|
|
echo dlna_stop
|
||
|
|
killall $PROCESS
|
||
|
|
}
|
||
|
|
|
||
|
|
wifiUpAction()
|
||
|
|
{
|
||
|
|
echo wifiUp
|
||
|
|
dlna_start
|
||
|
|
}
|
||
|
|
wifiDownAction()
|
||
|
|
{
|
||
|
|
echo wifiDown
|
||
|
|
dlna_stop
|
||
|
|
}
|
||
|
|
wifiChangeAction()
|
||
|
|
{
|
||
|
|
echo wifiChange
|
||
|
|
dlna_stop
|
||
|
|
dlna_start
|
||
|
|
}
|
||
|
|
wifiRequestingIp()
|
||
|
|
{
|
||
|
|
echo wifiRequestingIp
|
||
|
|
}
|
||
|
|
|
||
|
|
checkwifistate()
|
||
|
|
{
|
||
|
|
local flag=0
|
||
|
|
local last_ip_address=0
|
||
|
|
while true
|
||
|
|
do
|
||
|
|
wpa_state=`wpa_cli -iwlan0 status | grep wpa_state | awk -F '=' '{printf $2}'`
|
||
|
|
ip_address=`wpa_cli -iwlan0 status | grep ip_address | awk -F '=' '{printf $2}'`
|
||
|
|
|
||
|
|
if [ "${wpa_state}"x = "COMPLETED"x ];then
|
||
|
|
if [ "${ip_address}"x != ""x ] && [ "${ip_address}"x != "0.0.0.0"x ];then
|
||
|
|
if [ $flag -eq 0 ];then
|
||
|
|
flag=1
|
||
|
|
wifiUpAction
|
||
|
|
elif [ "${ip_address}"x != "${last_ip_address}"x ];then
|
||
|
|
flag=1
|
||
|
|
wifiChangeAction
|
||
|
|
else
|
||
|
|
flag=1
|
||
|
|
fi
|
||
|
|
else
|
||
|
|
flag=0
|
||
|
|
wifiRequestingIp
|
||
|
|
fi
|
||
|
|
else
|
||
|
|
if [ $flag -eq 1 ];then
|
||
|
|
flag=0
|
||
|
|
wifiDownAction
|
||
|
|
fi
|
||
|
|
fi
|
||
|
|
sleep 3
|
||
|
|
last_ip_address="${ip_address}"
|
||
|
|
done
|
||
|
|
}
|
||
|
|
|
||
|
|
killall $PROCESS
|
||
|
|
checkwifistate
|