#!/bin/sh /etc/rc.common # Copyright (c) 2011-2015 OpenWrt.org START=60 DNSMASQ_RESTART=N DNS_SERVER="114.114.114.114,114.114.115.115" start_pdnsd() { DNS_SERVER=$(uci get flowoffload.@flow[0].dns_server 2>/dev/null) [ -d /var/etc ] || mkdir -p /var/etc if [ ! -f /var/dnscache/pdnsd.cache ]; then mkdir -p /var/dnscache echo -ne "pd13\000\000\000\000" > /var/dnscache/pdnsd.cache chown -R nobody.nogroup /var/dnscache fi cat > /var/etc/dnscache.conf </dev/null 2>&1 || killall -9 dnscache >/dev/null 2>&1 echo "Stop DNS Cache" } change_dns() { uci delete dhcp.@dnsmasq[0].server >/dev/null 2>&1 uci add_list dhcp.@dnsmasq[0].server=127.0.0.1#5333 uci delete dhcp.@dnsmasq[0].resolvfile >/dev/null 2>&1 uci set dhcp.@dnsmasq[0].noresolv=1 uci commit dhcp } revert_dns() { uci del_list dhcp.@dnsmasq[0].server=127.0.0.1#5333 >/dev/null 2>&1 uci set dhcp.@dnsmasq[0].resolvfile=/tmp/resolv.conf.auto uci delete dhcp.@dnsmasq[0].noresolv >/dev/null 2>&1 uci commit dhcp } start(){ dns=$(uci get flowoffload.@flow[0].dns 2>/dev/null) if [ $dns -eq 1 ]; then start_pdnsd change_dns fi uci set firewall.@defaults[0].flow_offloading=$(uci get flowoffload.@flow[0].flow_offloading) uci set firewall.@defaults[0].flow_offloading_hw=$(uci get flowoffload.@flow[0].flow_offloading_hw) uci commit firewall if [ "$DNSMASQ_RESTART" = N ]; then /etc/init.d/dnsmasq restart && echo "DNSMASQ change" /etc/init.d/firewall restart fi } stop(){ dns=$(uci get firewall.@defaults[0].dns 2>/dev/null) stop_pdnsd revert_dns uci set firewall.@defaults[0].flow_offloading=$(uci get flowoffload.@flow[0].flow_offloading) uci set firewall.@defaults[0].flow_offloading_hw=$(uci get flowoffload.@flow[0].flow_offloading_hw) uci commit firewall if [ "$DNSMASQ_RESTART" = N ]; then /etc/init.d/dnsmasq restart && echo "DNSMASQ revert" /etc/init.d/firewall restart fi } restart(){ DNSMASQ_RESTART=Y stop start /etc/init.d/dnsmasq restart && echo "DNSMASQ restart" /etc/init.d/firewall restart }