mirror of
https://github.com/roacn/openwrt-packages.git
synced 2025-04-05 00:33:30 +08:00
90 lines
2.0 KiB
Bash
Executable File
90 lines
2.0 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
stretch() {
|
|
#zhenduiluanshezhiDNSderen
|
|
local dnsmasq_server=$(uci -q get dhcp.@dnsmasq[0].server)
|
|
local dnsmasq_noresolv=$(uci -q get dhcp.@dnsmasq[0].noresolv)
|
|
local _flag
|
|
for server in $dnsmasq_server; do
|
|
[ -z "$(echo $server | grep '\/')" ] && _flag=1
|
|
done
|
|
[ -z "$_flag" ] && [ "$dnsmasq_noresolv" = "1" ] && {
|
|
uci -q delete dhcp.@dnsmasq[0].noresolv
|
|
uci -q set dhcp.@dnsmasq[0].resolvfile="$RESOLVFILE"
|
|
uci commit dhcp
|
|
}
|
|
}
|
|
|
|
backup_servers() {
|
|
DNSMASQ_DNS=$(uci show dhcp.@dnsmasq[0] | grep ".server=" | awk -F '=' '{print $2}' | sed "s/'//g" | tr ' ' ',')
|
|
if [ -n "${DNSMASQ_DNS}" ]; then
|
|
uci -q set $CONFIG.@global[0].dnsmasq_servers="${DNSMASQ_DNS}"
|
|
uci commit $CONFIG
|
|
fi
|
|
}
|
|
|
|
restore_servers() {
|
|
OLD_SERVER=$(uci -q get $CONFIG.@global[0].dnsmasq_servers | tr "," " ")
|
|
for server in $OLD_SERVER; do
|
|
uci -q del_list dhcp.@dnsmasq[0].server=$server
|
|
uci -q add_list dhcp.@dnsmasq[0].server=$server
|
|
done
|
|
uci commit dhcp
|
|
uci -q delete $CONFIG.@global[0].dnsmasq_servers
|
|
uci commit $CONFIG
|
|
}
|
|
|
|
logic_restart() {
|
|
local no_log
|
|
eval_set_val $@
|
|
_LOG_FILE=$LOG_FILE
|
|
[ -n "$no_log" ] && LOG_FILE="/dev/null"
|
|
if [ -f "$TMP_PATH/default_DNS" ]; then
|
|
backup_servers
|
|
#sed -i "/list server/d" /etc/config/dhcp >/dev/null 2>&1
|
|
for server in $(uci -q get dhcp.@dnsmasq[0].server); do
|
|
[ -n "$(echo $server | grep '\/')" ] || uci -q del_list dhcp.@dnsmasq[0].server="$server"
|
|
done
|
|
/etc/init.d/dnsmasq restart >/dev/null 2>&1
|
|
restore_servers
|
|
else
|
|
/etc/init.d/dnsmasq restart >/dev/null 2>&1
|
|
fi
|
|
echolog "重启 dnsmasq 服务"
|
|
LOG_FILE=${_LOG_FILE}
|
|
}
|
|
|
|
restart() {
|
|
local no_log
|
|
eval_set_val $@
|
|
_LOG_FILE=$LOG_FILE
|
|
[ -n "$no_log" ] && LOG_FILE="/dev/null"
|
|
/etc/init.d/dnsmasq restart >/dev/null 2>&1
|
|
echolog "重启 dnsmasq 服务"
|
|
LOG_FILE=${_LOG_FILE}
|
|
}
|
|
|
|
del() {
|
|
rm -rf $DNSMASQ_CONF_DIR/dnsmasq-$CONFIG.conf
|
|
rm -rf $DNSMASQ_PATH/dnsmasq-$CONFIG.conf
|
|
rm -rf $TMP_DNSMASQ_PATH
|
|
}
|
|
|
|
arg1=$1
|
|
shift
|
|
case $arg1 in
|
|
stretch)
|
|
stretch $@
|
|
;;
|
|
del)
|
|
del $@
|
|
;;
|
|
restart)
|
|
restart $@
|
|
;;
|
|
logic_restart)
|
|
logic_restart $@
|
|
;;
|
|
*) ;;
|
|
esac
|