Merge pull request #981 from pi-hole/quiet-dhcp

Improvement of backend of web UI Settings page
This commit is contained in:
Adam Warner 2016-12-14 19:11:49 +00:00 committed by GitHub
commit 9a80421d73

View file

@ -72,7 +72,7 @@ SetWebPassword(){
SetDNSServers(){ SetDNSServers(){
# Remove setting from file (create backup setupVars.conf.bak) # Remove setting from file (create backup setupVars.conf.bak)
sed -i.bak '/PIHOLE_DNS_1/d;/PIHOLE_DNS_2/d;' /etc/pihole/setupVars.conf sed -i.bak '/PIHOLE_DNS_1/d;/PIHOLE_DNS_2/d;/DNS_FQDN_REQUIRED/d;' /etc/pihole/setupVars.conf
# Save setting to file # Save setting to file
echo "PIHOLE_DNS_1=${args[2]}" >> /etc/pihole/setupVars.conf echo "PIHOLE_DNS_1=${args[2]}" >> /etc/pihole/setupVars.conf
echo "PIHOLE_DNS_2=${args[3]}" >> /etc/pihole/setupVars.conf echo "PIHOLE_DNS_2=${args[3]}" >> /etc/pihole/setupVars.conf
@ -82,6 +82,30 @@ SetDNSServers(){
echo "server=${args[2]}" >> /etc/dnsmasq.d/01-pihole.conf echo "server=${args[2]}" >> /etc/dnsmasq.d/01-pihole.conf
echo "server=${args[3]}" >> /etc/dnsmasq.d/01-pihole.conf echo "server=${args[3]}" >> /etc/dnsmasq.d/01-pihole.conf
# Remove domain-needed entry
sed -i '/domain-needed/d;' /etc/dnsmasq.d/01-pihole.conf
# Readd it if required
if [[ "${args[4]}" == "domain-needed" ]]; then
echo "domain-needed" >> /etc/dnsmasq.d/01-pihole.conf
echo "DNS_FQDN_REQUIRED=true" >> /etc/pihole/setupVars.conf
else
# Leave it deleted if not wanted
echo "DNS_FQDN_REQUIRED=false" >> /etc/pihole/setupVars.conf
fi
# Remove bogus-priv entry
sed -i '/bogus-priv/d;' /etc/dnsmasq.d/01-pihole.conf
# Readd it if required
if [[ "${args[5]}" == "bogus-priv" ]]; then
echo "bogus-priv" >> /etc/dnsmasq.d/01-pihole.conf
echo "DNS_BOGUS_PRIV=true" >> /etc/pihole/setupVars.conf
else
# Leave it deleted if not wanted
echo "DNS_BOGUS_PRIV=false" >> /etc/pihole/setupVars.conf
fi
# Restart dnsmasq to load new configuration # Restart dnsmasq to load new configuration
RestartDNS RestartDNS
@ -137,7 +161,7 @@ EnableDHCP(){
echo "DHCP_ROUTER=${args[4]}" >> /etc/pihole/setupVars.conf echo "DHCP_ROUTER=${args[4]}" >> /etc/pihole/setupVars.conf
# Remove setting from file # Remove setting from file
sed -i '/dhcp-/d;' /etc/dnsmasq.d/01-pihole.conf sed -i '/dhcp-/d;/quiet-dhcp/d;' /etc/dnsmasq.d/01-pihole.conf
# Save setting to file # Save setting to file
echo "dhcp-range=${args[2]},${args[3]},infinite" >> /etc/dnsmasq.d/01-pihole.conf echo "dhcp-range=${args[2]},${args[3]},infinite" >> /etc/dnsmasq.d/01-pihole.conf
echo "dhcp-option=option:router,${args[4]}" >> /etc/dnsmasq.d/01-pihole.conf echo "dhcp-option=option:router,${args[4]}" >> /etc/dnsmasq.d/01-pihole.conf
@ -159,7 +183,7 @@ DisableDHCP(){
echo "DHCP_ACTIVE=false" >> /etc/pihole/setupVars.conf echo "DHCP_ACTIVE=false" >> /etc/pihole/setupVars.conf
# Remove setting from file # Remove setting from file
sed -i '/dhcp-/d;' /etc/dnsmasq.d/01-pihole.conf sed -i '/dhcp-/d;/quiet-dhcp/d;' /etc/dnsmasq.d/01-pihole.conf
RestartDNS RestartDNS
} }
@ -172,23 +196,39 @@ SetWebUILayout(){
} }
for var in "$@"; do SetDNSDomainName(){
case "${var}" in
"-p" | "password" ) SetWebPassword;; # Remove setting from file (create backup setupVars.conf.bak)
"-c" | "celsius" ) unit="C"; SetTemperatureUnit;; sed -i.bak '/PIHOLE_DOMAIN/d;' /etc/pihole/setupVars.conf
"-f" | "fahrenheit" ) unit="F"; SetTemperatureUnit;; # Save setting to file
"setdns" ) SetDNSServers;; echo "PIHOLE_DOMAIN=${args[2]}" >> /etc/pihole/setupVars.conf
"setexcludedomains" ) SetExcludeDomains;;
"setexcludeclients" ) SetExcludeClients;; # Replace within actual dnsmasq config file
"reboot" ) Reboot;; sed -i '/domain=/d;' /etc/dnsmasq.d/01-pihole.conf
"restartdns" ) RestartDNS;; echo "domain=${args[2]}" >> /etc/dnsmasq.d/01-pihole.conf
"setquerylog" ) SetQueryLogOptions;;
"enabledhcp" ) EnableDHCP;; # Restart dnsmasq to load new configuration
"disabledhcp" ) DisableDHCP;; RestartDNS
"layout" ) SetWebUILayout;;
"-h" | "--help" ) helpFunc;; }
esac
done case "${args[1]}" in
"-p" | "password" ) SetWebPassword;;
"-c" | "celsius" ) unit="C"; SetTemperatureUnit;;
"-f" | "fahrenheit" ) unit="F"; SetTemperatureUnit;;
"setdns" ) SetDNSServers;;
"setexcludedomains" ) SetExcludeDomains;;
"setexcludeclients" ) SetExcludeClients;;
"reboot" ) Reboot;;
"restartdns" ) RestartDNS;;
"setquerylog" ) SetQueryLogOptions;;
"enabledhcp" ) EnableDHCP;;
"disabledhcp" ) DisableDHCP;;
"layout" ) SetWebUILayout;;
"-h" | "--help" ) helpFunc;;
"domainname" ) SetDNSDomainName;;
* ) helpFunc;;
esac
shift shift