Fix dnsmasq replacement issue
This commit is contained in:
@@ -52,7 +52,7 @@ clear_iptable()
|
|||||||
|
|
||||||
restart_dnsmasq()
|
restart_dnsmasq()
|
||||||
{
|
{
|
||||||
CMD="`ps | grep dnsmasq | grep -v grep`"
|
CMD="`ps | grep " dnsmasq" | grep -v grep`"
|
||||||
if [ -z "$CMD" ]; then
|
if [ -z "$CMD" ]; then
|
||||||
CMD="`ps ax | grep dnsmasq | grep -v grep`"
|
CMD="`ps ax | grep dnsmasq | grep -v grep`"
|
||||||
fi
|
fi
|
||||||
@@ -81,17 +81,18 @@ get_server_ip()
|
|||||||
LOCAL_SERVER_IP=""
|
LOCAL_SERVER_IP=""
|
||||||
for IP in $IPS
|
for IP in $IPS
|
||||||
do
|
do
|
||||||
N=3
|
N=3
|
||||||
while [ $N -gt 0 ]
|
while [ $N -gt 0 ]
|
||||||
do
|
do
|
||||||
ADDR=`echo $IP | awk -F. "{for(i=1;i<=$N;i++)printf \\$i\".\"}"`
|
ADDR=`echo $IP | awk -F. "{for(i=1;i<=$N;i++)printf \\$i\".\"}"`
|
||||||
grep "dhcp-range=" $DNSMASQ_CONF | grep lan | grep $ADDR >/dev/null 2>&1
|
grep "dhcp-range=" $DNSMASQ_CONF | grep $ADDR >/dev/null 2>&1
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
LOCAL_SERVER_IP="$IP"
|
SERVER_TAG="`grep "^dhcp-range *=" $DNSMASQ_CONF | grep $ADDR | awk -F= '{print $2}' | awk -F, '{print $1}'`"
|
||||||
return 0
|
LOCAL_SERVER_IP="$IP"
|
||||||
fi
|
return 0
|
||||||
N="`expr $N - 1`"
|
fi
|
||||||
done
|
N="`expr $N - 1`"
|
||||||
|
done
|
||||||
done
|
done
|
||||||
|
|
||||||
return 1
|
return 1
|
||||||
@@ -101,12 +102,13 @@ set_dnsmasq()
|
|||||||
{
|
{
|
||||||
local RESTART_DNSMASQ=0
|
local RESTART_DNSMASQ=0
|
||||||
local LOCAL_SERVER_IP=""
|
local LOCAL_SERVER_IP=""
|
||||||
|
local SERVER_TAG=""
|
||||||
get_server_ip
|
get_server_ip
|
||||||
if [ "$LOCAL_SERVER_IP" ]; then
|
if [ "$LOCAL_SERVER_IP" ] && [ "$SERVER_TAG" ]; then
|
||||||
grep "dhcp-option *=" $DNSMASQ_CONF | grep "lan,6,$LOCAL_SERVER_IP" > /dev/null 2>&1
|
grep "dhcp-option *=" $DNSMASQ_CONF | grep "$SERVER_TAG,6,$LOCAL_SERVER_IP" > /dev/null 2>&1
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
sed -i "/^dhcp-option *=lan,6,/d" $DNSMASQ_CONF
|
sed -i "/^dhcp-option *=$SERVER_TAG,6,/d" $DNSMASQ_CONF
|
||||||
echo "dhcp-option=lan,6,$LOCAL_SERVER_IP" >> $DNSMASQ_CONF
|
echo "dhcp-option=$SERVER_TAG,6,$LOCAL_SERVER_IP" >> $DNSMASQ_CONF
|
||||||
RESTART_DNSMASQ=1
|
RESTART_DNSMASQ=1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@@ -128,11 +130,12 @@ clear_dnsmasq()
|
|||||||
{
|
{
|
||||||
local RESTART_DNSMASQ=0
|
local RESTART_DNSMASQ=0
|
||||||
local LOCAL_SERVER_IP=""
|
local LOCAL_SERVER_IP=""
|
||||||
|
local SERVER_TAG=""
|
||||||
get_server_ip
|
get_server_ip
|
||||||
if [ "$LOCAL_SERVER_IP" ]; then
|
if [ "$LOCAL_SERVER_IP" ] && [ "$SERVER_TAG" ]; then
|
||||||
grep "dhcp-option *=" $DNSMASQ_CONF | grep "lan,6,$LOCAL_SERVER_IP" > /dev/null 2>&1
|
grep "dhcp-option *=" $DNSMASQ_CONF | grep "$SERVER_TAG,6,$LOCAL_SERVER_IP" > /dev/null 2>&1
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
sed -i "/^dhcp-option *=lan,6,/d" $DNSMASQ_CONF
|
sed -i "/^dhcp-option *=$SERVER_TAG,6,/d" $DNSMASQ_CONF
|
||||||
RESTART_DNSMASQ=1
|
RESTART_DNSMASQ=1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@@ -253,3 +256,4 @@ case "$1" in
|
|||||||
*)
|
*)
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user