diff options
-rw-r--r-- | apis/debugrequest.inc.php | 45 |
1 files changed, 12 insertions, 33 deletions
diff --git a/apis/debugrequest.inc.php b/apis/debugrequest.inc.php index 5c1323ba..35b16332 100644 --- a/apis/debugrequest.inc.php +++ b/apis/debugrequest.inc.php @@ -1,35 +1,37 @@ <?php function handleRequest() { - static $DEBUG_SETTINGS; - static $DEBUG_REQUEST; $DEBUG_SETTINGS = Property::getRemoteDebugConfig(); $DEBUG_REQUEST = explode(":", file_get_contents("php://input"), 2); - if (!checkEnabled() || !checkValid()) { + if (!$DEBUG_SETTINGS['enabled'] || !checkValid($DEBUG_REQUEST)) { http_response_code(403); exit(1); } - $task = runRelayTask(); + $task = runRelayTask($DEBUG_SETTINGS); waitForRelay($task); exit(0); } function waitForRelay($task) { while(true) { - $status = Taskmanager::status(); - if($status["statusCode"] == "TASK_ERROR" || $status["statusCode"] == "TASK_FINISHED") { + $task = Taskmanager::status($task["id"]); + if( !$task || $task["statusCode"] == "TASK_ERROR" || $task["statusCode"] == "TASK_FINISHED") { http_response_code(500); exit(1); + break; } - elseif ($status["listenPort"] != -1) { - echo "PORT={$status['listenPort']}"; + elseif ($task["data"]["listenPort"] != -1) { + $PORT = $task["data"]["listenPort"]; + echo "PORT=$PORT;"; Property::addToList("DispatchedRelay", $task["id"]); break; } } + //echo print_r($task); + exit(1); } -function runRelayTask() { +function runRelayTask($DEBUG_SETTINGS) { $data = array("ip" => $DEBUG_SETTINGS["debugServer"], "port" => $DEBUG_SETTINGS["port"]); return Taskmanager::submit("RemoteDebug", $data); } @@ -38,33 +40,10 @@ function checkEnabled() { return $DEBUG_SETTINGS["enabled"]; } -function checkValid() { +function checkValid($DEBUG_REQUEST) { return Database::queryFirst("SELECT machineuuid, clientip FROM machine WHERE machineuuid = :uuid AND clientip = :ip", array(":uuid" => $DEBUG_REQUEST[0], ":ip" => $_SERVER["REMOTE_ADDR"])); } handleRequest(); -// $debug_settings = Property::getRemoteDebugConfig(); -// if ($debug_settings["enabled"] !== true) { -// http_response_code(403); -// exit; -// } - -// $debug_request = explode(":", file_get_contents("php://input"), 2); - -// $uuid = $debug_request[0]; -// $port = 5900 + $debug_request[1]; - -// $validclient = Database::queryFirst("SELECT machineuuid, clientip FROM machine WHERE machineuuid = :uuid AND clientip = :ip", array(":uuid" => "$debug_request[0]", ":ip" => $_SERVER["REMOTE_ADDR"])); - -// if ($validclient == false) { -// http_response_code(400); -// } else { -// http_response_code(200); -// $data = array("hosts" => array($_SERVER["REMOTE_ADDR"], $debug_settings["debugServer"]), -// "ports" => array($port, intval($debug_settings["port"])), "descs" => array("bwlpclient", "debugserver")); -// $taskstruct = Taskmanager::submit('DispatchRelay', $data); -// Property::addToList("DispatchedRelay", $taskstruct['id']); -// } - |