Directly write imported regex file to disk instead of useing bash callbacks

Signed-off-by: DL6ER <dl6er@dl6er.de>
This commit is contained in:
DL6ER
2018-07-15 12:56:40 +02:00
parent 3e4613caf0
commit 7c9f09db0e
2 changed files with 7 additions and 5 deletions
+2 -2
View File
@@ -45,10 +45,10 @@ if(!function_exists('hash_equals')) {
}
}
function add_regex($regex)
function add_regex($regex, $mode=FILE_APPEND, $append="\n")
{
global $regexfile;
if(file_put_contents($regexfile, "\n".$regex, FILE_APPEND) === FALSE)
if(file_put_contents($regexfile, $append.$regex, $mode) === FALSE)
{
$err = error_get_last()["message"];
echo "Unable to add regex \"".htmlspecialchars($regex)."\" to ${regexfile}<br>Error message: $err";
+5 -3
View File
@@ -113,6 +113,7 @@ if(isset($_POST["action"]))
exec("sudo pihole -b -q -nr ".implode(" ", $blacklist));
$importedsomething = true;
}
if(isset($_POST["whitelist"]) && $file->getFilename() === "whitelist.txt")
{
$whitelist = process_file(file_get_contents($file));
@@ -124,10 +125,11 @@ if(isset($_POST["action"]))
if(isset($_POST["regexlist"]) && $file->getFilename() === "regex.list")
{
$regexlist = process_file(file_get_contents($file),false);
$regexraw = file_get_contents($file);
$regexlist = process_file($regexraw,false);
echo "Processing regex.list (".count($regexlist)." entries)<br>\n";
exec("sudo pihole --regex -nr --nuke");
exec("sudo pihole --regex -q -nr ".implode(" ", $regexlist));
// NULL = overwrite (or create) the regex filter file
add_regex($regexraw, NULL,"");
$importedsomething = true;
}