diff --git a/debug.php b/debug.php index 6b9a01da..02556d14 100644 --- a/debug.php +++ b/debug.php @@ -1,20 +1,31 @@ -
- - +

Options:

+
+ + +
+
+ + +
+

Once you click this button a debug log will be generated and can automatically be uploaded if we detect a working internet connection.

diff --git a/scripts/pi-hole/js/debug.js b/scripts/pi-hole/js/debug.js index 9d1d1c61..314588ba 100644 --- a/scripts/pi-hole/js/debug.js +++ b/scripts/pi-hole/js/debug.js @@ -8,18 +8,25 @@ function eventsource() { var ta = $("#output"); var upload = $("#upload"); + var dbcheck = $("#dbcheck"); var checked = ""; var token = encodeURIComponent($("#token").text()); if (upload.prop("checked")) { - checked = "upload"; + // add upload option + checked += "&upload"; + } + + if (dbcheck.prop("checked")) { + // add db integrity check option + checked += "&dbcheck"; } // IE does not support EventSource - load whole content at once if (typeof EventSource !== "function") { $.ajax({ method: "GET", - url: "scripts/pi-hole/php/debug.php?IE&token=" + token + "&" + checked, + url: "scripts/pi-hole/php/debug.php?IE&token=" + token + checked, async: false, }).done(function (data) { ta.show(); @@ -29,7 +36,7 @@ function eventsource() { return; } - var source = new EventSource("scripts/pi-hole/php/debug.php?&token=" + token + "&" + checked); + var source = new EventSource("scripts/pi-hole/php/debug.php?&token=" + token + checked); // Reset and show field ta.empty(); @@ -60,6 +67,7 @@ function eventsource() { $("#debugBtn").on("click", function () { $("#debugBtn").prop("disabled", true); $("#upload").prop("disabled", true); + $("#dbcheck").prop("disabled", true); $("#output").addClass("loading"); eventsource(); }); diff --git a/scripts/pi-hole/php/debug.php b/scripts/pi-hole/php/debug.php index 60286b9b..eb50ef60 100644 --- a/scripts/pi-hole/php/debug.php +++ b/scripts/pi-hole/php/debug.php @@ -49,12 +49,21 @@ function echoEvent($datatext) { } } +// Execute "pihole" using Web option +$command = "export TERM=dumb && sudo pihole -d -w"; + +// Add auto-upload option if (isset($_GET["upload"])) { - $proc = popen("export TERM=dumb && sudo pihole -d -a -w", "r"); -} else { - $proc = popen("export TERM=dumb && sudo pihole -d -w", "r"); + $command .= " -a"; } +// Execute database integrity_check +if (isset($_GET["dbcheck"])) { + $command .= " -c"; +} + +$proc = popen($command, "r"); + while (!feof($proc)) { echoEvent(fread($proc, 4096)); }