Merge pull request #593 from pi-hole/fix/non-local-FTL

Explicitly allow non-local FTL installations
This commit is contained in:
DL6ER
2017-10-23 08:47:02 +02:00
committed by GitHub
3 changed files with 16 additions and 5 deletions

View File

@@ -13,6 +13,7 @@ require("scripts/pi-hole/php/password.php");
require("scripts/pi-hole/php/auth.php");
check_cors();
$FTL_IP = "127.0.0.1";
$data = array();
@@ -74,7 +75,7 @@ elseif (isset($_GET['disable']) && $auth)
}
// Other API functions
if(!testFTL() && !isset($_GET["PHP"]))
if(!testFTL($FTL_IP) && !isset($_GET["PHP"]))
{
$data = array_merge($data, array("FTLnotrunning" => true));
}

View File

@@ -12,7 +12,8 @@ if(!isset($api))
die("Direct call to api_FTL.php is not allowed!");
}
$socket = connectFTL("127.0.0.1");
// $FTL_IP is defined in api.php
$socket = connectFTL($FTL_IP);
if (isset($_GET['type'])) {
$data["type"] = "FTL";

View File

@@ -6,10 +6,19 @@
* This file is copyright under the latest version of the EUPL.
* Please see LICENSE file for your rights under this license. */
function testFTL()
function testFTL($address)
{
$ret = shell_exec("pidof pihole-FTL");
return intval($ret);
if($address === "127.0.0.1")
{
$ret = shell_exec("pidof pihole-FTL");
return intval($ret);
}
// We cannot relly test for a distant FTL instance
// in the same way, so for any other IP address
// we simply return true here and rely on the API
// socket connection itself to fail if there is nothing
// on that address
return true;
}
function connectFTL($address, $port=4711, $quiet=true)