From ec5ad854704845c7ac360c37585a353bd36da3e1 Mon Sep 17 00:00:00 2001 From: salacr Date: Tue, 6 May 2025 19:02:46 +0200 Subject: [PATCH] Make kill_process / process_list extendable --- CHANGELOG.md | 1 + adminer/drivers/mysql.inc.php | 6 +++--- adminer/include/adminer.inc.php | 15 +++++++++++++++ adminer/processlist.inc.php | 4 ++-- 4 files changed, 21 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 27e89942..2d00eacf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ ## Adminer dev - Allow specifying operator in search anywhere +- Plugins: Methods processList() and killProcess() ## Adminer 5.3.0 (released 2025-05-04) - Align numeric functions right diff --git a/adminer/drivers/mysql.inc.php b/adminer/drivers/mysql.inc.php index 6b5dfe68..9de33046 100644 --- a/adminer/drivers/mysql.inc.php +++ b/adminer/drivers/mysql.inc.php @@ -1067,11 +1067,11 @@ if (!defined('Adminer\DRIVER')) { } /** Kill a process - * @param numeric-string $val + * @param numeric-string $id * @return Result|bool */ - function kill_process(string $val) { - return queries("KILL " . number($val)); + function kill_process(string $id) { + return queries("KILL " . number($id)); } /** Return query to get connection ID */ diff --git a/adminer/include/adminer.inc.php b/adminer/include/adminer.inc.php index 3d5a86e6..f68c15e0 100644 --- a/adminer/include/adminer.inc.php +++ b/adminer/include/adminer.inc.php @@ -1115,4 +1115,19 @@ class Adminer { } echo "\n"; } + + /** Get process list + * @return list [$row] + */ + function processList(): array { + return process_list(); + } + + /** Kill a process + * @param numeric-string $id + * @return Result|bool + */ + function killProcess(string $id) { + return kill_process($id); + } } diff --git a/adminer/processlist.inc.php b/adminer/processlist.inc.php index dbef17b6..1a386379 100644 --- a/adminer/processlist.inc.php +++ b/adminer/processlist.inc.php @@ -5,7 +5,7 @@ if (support("kill")) { if ($_POST && !$error) { $killed = 0; foreach ((array) $_POST["kill"] as $val) { - if (kill_process($val)) { + if (adminer()->killProcess($val)) { $killed++; } } @@ -23,7 +23,7 @@ page_header(lang('Process list'), $error); echo script("mixin(qsl('table'), {onclick: tableClick, ondblclick: partialArg(tableClick, true)});"); // HTML valid because there is always at least one process $i = -1; -foreach (process_list() as $i => $row) { +foreach (adminer()->processList() as $i => $row) { if (!$i) { echo "" . (support("kill") ? "" : ""); foreach ($row as $key => $val) {