Files
smartdns/package/optware/S50smartdns
2018-07-31 22:47:00 +08:00

77 lines
1.4 KiB
Bash

#! /bin/sh
SMARTDNS_BIN=/opt/usr/sbin/smartdns
SMARTDNS_CONF=/opt/etc/smartdns/smartdns.conf
SMARTDNS_PID="/var/run/smartdns.pid"
SMARTDNS_PORT=535
set_iptable()
{
IPS="`ifconfig | grep "inet addr" | grep -v ":127" | grep "Bcast" | awk '{print $2}' | awk -F: '{print $2}'`"
for IP in $IPS
do
iptables -t nat -A PREROUTING -p udp -d $IP --dport 53 -j REDIRECT --to-ports $SMARTDNS_PORT
done
}
clear_iptable()
{
IPS="`ifconfig | grep "inet addr" | grep -v ":127" | grep "Bcast" | awk '{print $2}' | awk -F: '{print $2}'`"
for IP in $IPS
do
iptables -t nat -D PREROUTING -p udp -d $IP --dport 53 -j REDIRECT --to-ports $SMARTDNS_PORT
done
}
case "$1" in
start)
set_iptable
if [ $? -ne 0 ]; then
exit 1
fi
$SMARTDNS_BIN -c $SMARTDNS_CONF -p $SMARTDNS_PID
if [ $? -ne 0 ]; then
clear_iptable
fi
;;
status)
pid="`cat $SMARTDNS_PID 2>/dev/null`"
if [ -z "$pid" ]; then
echo "smartdns not running."
return 0
fi
if [ -d "/proc/$pid" ]; then
echo "smartdns running"
return 0;
fi
echo "smartdns not running."
return 0;
;;
stop)
clear_iptable
pid="`cat $SMARTDNS_PID 2>/dev/null`"
kill -9 $pid 2>/dev/null
;;
force-reload|restart)
$0 stop
$0 start
;;
enable)
nvram set apps_state_enable=2
nvram set apps_state_error=0
nvram set apps_state_install=5
nvram set apps_state_action=install
nvram set apps_u2ec_ex=2
;;
firewall-start)
$0 restart
;;
*)
;;
esac