diff --git a/src/www/status_dhcp_leases.php b/src/www/status_dhcp_leases.php index 75e1ec66d..ad47220a3 100644 --- a/src/www/status_dhcp_leases.php +++ b/src/www/status_dhcp_leases.php @@ -33,11 +33,6 @@ require_once("config.inc"); require_once("services.inc"); require_once("interfaces.inc"); -function leasecmp($a, $b) -{ - return strcmp($a[$_GET['order']], $b[$_GET['order']]); -} - function adjust_gmt($dt) { global $config; @@ -242,9 +237,17 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') { } } - if ($_GET['order']) { - usort($leases, "leasecmp"); - } + $order = ( $_GET['order'] ) ? $_GET['order'] : 'ip'; + usort($leases, + function ($a, $b) use ($order) { + $cmp = strnatcasecmp($a[$order], $b[$order]); + if ($cmp === 0) { + $cmp = strnatcasecmp($a['ip'], $b['ip']); + } + return $cmp; + } + ); + } elseif ($_SERVER['REQUEST_METHOD'] === 'POST') { if (!empty($_POST['deleteip']) && is_ipaddr($_POST['deleteip'])) { // delete dhcp lease @@ -353,15 +356,15 @@ include("head.inc");?> - + - + - - + +