summaryrefslogtreecommitdiffstats
path: root/usr/local/www/services_proxyarp_edit.php
diff options
context:
space:
mode:
Diffstat (limited to 'usr/local/www/services_proxyarp_edit.php')
-rwxr-xr-xusr/local/www/services_proxyarp_edit.php25
1 files changed, 25 insertions, 0 deletions
diff --git a/usr/local/www/services_proxyarp_edit.php b/usr/local/www/services_proxyarp_edit.php
index b24f4b9..0e93924 100755
--- a/usr/local/www/services_proxyarp_edit.php
+++ b/usr/local/www/services_proxyarp_edit.php
@@ -36,6 +36,30 @@
##|*MATCH=services_proxyarp_edit.php*
##|-PRIV
+function proxyarp_sort() {
+ global $g, $config;
+
+ function proxyarpcmp($a, $b) {
+ if (isset($a['network']))
+ list($ast,$asn) = explode("/", $a['network']);
+ else if (isset($a['range'])) {
+ $ast = $a['range']['from'];
+ $asn = 32;
+ }
+ if (isset($b['network']))
+ list($bst,$bsn) = explode("/", $b['network']);
+ else if (isset($b['range'])) {
+ $bst = $b['range']['from'];
+ $bsn = 32;
+ }
+ if (ipcmp($ast, $bst) == 0)
+ return ($asn - $bsn);
+ else
+ return ipcmp($ast, $bst);
+ }
+
+ usort($config['proxyarp']['proxyarpnet'], "proxyarpcmp");
+}
require("guiconfig.inc");
@@ -125,6 +149,7 @@ if ($_POST) {
$arpent['network'] = $_POST['subnet'] . "/" . $_POST['subnet_bits'];
$arpent['descr'] = $_POST['descr'];
+ proxyarp_sort();
if (isset($id) && $a_proxyarp[$id])
$a_proxyarp[$id] = $arpent;
else
OpenPOWER on IntegriCloud