From 30c3af19036593d702618290f6a60732617c5297 Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Wed, 25 Apr 2018 17:00:11 +0200 Subject: [rebootcontrol] Fix NO_SUCH_INSTANCE handling --- inc/taskmanager.inc.php | 9 ++++++--- modules-available/rebootcontrol/inc/rebootcontrol.inc.php | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/inc/taskmanager.inc.php b/inc/taskmanager.inc.php index 945e759d..54821e59 100644 --- a/inc/taskmanager.inc.php +++ b/inc/taskmanager.inc.php @@ -82,7 +82,7 @@ class Taskmanager /** * Checks whether the given task id corresponds to a known task in the taskmanager. * Returns true iff the taskmanager is reachable and the status of the task - * is different from NO_SUCH_TASK. + * is different from NO_SUCH_INSTANCE/_TASK. * If you pass an array it is assumed that it was already queried and is evaluated * directly. * @@ -91,10 +91,13 @@ class Taskmanager */ public static function isTask($task) { + if ($task === false) + return false; if (is_string($task)) { $task = self::status($task); } - return isset($task['statusCode']) && $task['statusCode'] !== NO_SUCH_TASK; + return isset($task['statusCode']) && $task['statusCode'] !== NO_SUCH_INSTANCE + && $task['statusCode'] !== NO_SUCH_TASK; } /** @@ -242,6 +245,6 @@ class Taskmanager } -foreach (array('TASK_FINISHED', 'TASK_ERROR', 'TASK_WAITING', 'NO_SUCH_TASK', 'TASK_PROCESSING') as $i) { +foreach (array('TASK_FINISHED', 'TASK_ERROR', 'TASK_WAITING', 'NO_SUCH_TASK', 'NO_SUCH_INSTANCE', 'TASK_PROCESSING') as $i) { define($i, $i); } diff --git a/modules-available/rebootcontrol/inc/rebootcontrol.inc.php b/modules-available/rebootcontrol/inc/rebootcontrol.inc.php index 1024b036..ec4b84ed 100644 --- a/modules-available/rebootcontrol/inc/rebootcontrol.inc.php +++ b/modules-available/rebootcontrol/inc/rebootcontrol.inc.php @@ -66,7 +66,7 @@ class RebootControl continue; $id = $p[1]; $task = Taskmanager::status($id); - if ($task === false) { + if (!Taskmanager::isTask($task)) { Property::removeFromList(RebootControl::KEY_TASKLIST, $entry); continue; } -- cgit v1.2.3-55-g7522