diff --git a/includes/adblock.php b/includes/adblock.php index d6b67ba4..3e193f72 100644 --- a/includes/adblock.php +++ b/includes/adblock.php @@ -10,48 +10,50 @@ require_once 'config.php'; function DisplayAdBlockConfig() { $status = new StatusMessages(); - exec('cat '. RASPI_DNSMASQ_CONFIG, $return); - $arrConf = ParseConfig($return); + $enabled = false; if (!RASPI_MONITOR_ENABLED) { if (isset($_POST['saveadblocksettings'])) { if ($_POST['adblock-enable'] == "1") { - $arrConf['conf-file'] = RASPI_ADBLOCK_LISTPATH .'domains.txt'; - $arrConf['addn-hosts'] = RASPI_ADBLOCK_LISTPATH .'hostnames.txt'; - } else { - unset($arrConf['conf-file']); - unset($arrConf['addn-hosts']); + $config = 'conf-file=' .RASPI_ADBLOCK_LISTPATH .'domains.txt'.PHP_EOL; + $config.= 'addn-hosts=' .RASPI_ADBLOCK_LISTPATH .'hostnames.txt'.PHP_EOL; + } elseif ($_POST['adblock-enable'] == "0") { + $config = null; } - $config = array_map(function($value, $key) { - if (is_bool($value)) { - return $key; - } else { - return $key.'='.$value; - } - }, array_values($arrConf), array_keys($arrConf)); - $config = implode(PHP_EOL, $config); - $config = $config . PHP_EOL; file_put_contents("/tmp/dnsmasqdata", $config); - system('sudo cp /tmp/dnsmasqdata '.RASPI_DNSMASQ_CONFIG, $return); + system('sudo cp /tmp/dnsmasqdata '.RASPI_ADBLOCK_CONFIG, $return); if ($return == 0) { $status->addMessage('Adblock configuration updated successfully', 'success'); } else { $status->addMessage('Adblock configuration failed to be updated.', 'danger'); } + } elseif (isset($_POST['restartadblock']) || isset($_POST['startadblock'])) { + exec('sudo /bin/systemctl restart dnsmasq.service', $dnsmasq, $return); + if ($return == 0) { + $status->addMessage('Adblock restart successful', 'success'); + } else { + $status->addMessage('Adblock failed to restart.', 'danger'); + } } } + exec('cat '. RASPI_ADBLOCK_CONFIG, $return); + $arrConf = ParseConfig($return); + if (sizeof($arrConf) > 0) { + $enabled = true; + } + exec('pidof dnsmasq | wc -l', $dnsmasq); $dnsmasq_state = ($dnsmasq[0] > 0); - $serviceStatus = $dnsmasq_state ? "up" : "down"; + $serviceStatus = $dnsmasq_state && $enabled ? "up" : "down"; echo renderTemplate( "adblock", compact( "status", "serviceStatus", "dnsmasq_state", - "arrConf" + "enabled" ) ); }