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");?>
| =gettext("Interface"); ?> | +=gettext("Interface"); ?> | =gettext("IP address"); ?> | =gettext("MAC address"); ?> | =gettext("Hostname"); ?> | -=gettext("Description"); ?> | +=gettext("Description"); ?> | =gettext("Start"); ?> | =gettext("End"); ?> | -=gettext("Status"); ?> | -=gettext("Lease type"); ?> | +=gettext("Status"); ?> | +=gettext("Lease type"); ?> |