| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- #! /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
|