diff options
Diffstat (limited to 'src/usr')
-rw-r--r-- | src/usr/local/www/diag_ndp.php | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/src/usr/local/www/diag_ndp.php b/src/usr/local/www/diag_ndp.php index cc5fcfd..496823b 100644 --- a/src/usr/local/www/diag_ndp.php +++ b/src/usr/local/www/diag_ndp.php @@ -65,10 +65,28 @@ @ini_set('zlib.output_compression', 0); @ini_set('implicit_flush', 1); - +define('NDP_BINARY_PATH', '/usr/sbin/ndp'); require_once("guiconfig.inc"); -exec("/usr/sbin/ndp -na", $rawdata); +// Delete ndp entry. +if (isset($_POST['deleteentry'])) { + $ip = $_POST['deleteentry']; + if (is_ipaddrv6($ip)) { + $commandReturnValue = mwexec(NDP_BINARY_PATH . " -d " . $ip, true); + $deleteSucceededFlag = ($commandReturnValue == 0); + } else { + $deleteSucceededFlag = false; + } + + $deleteResultMessage = ($deleteSucceededFlag) + ? sprintf(gettext("The NDP entry for %s has been deleted."), $ip) + : sprintf(gettext("%s is not a valid IPv6 address or could not be deleted."), $ip); + $deleteResultMessageType = ($deleteSucceededFlag) + ? 'success' + : 'alert-warning'; +} + +exec(NDP_BINARY_PATH . " -na", $rawdata); $i = 0; @@ -127,6 +145,11 @@ $mac_man = load_mac_manufacturer_table(); $pgtitle = array(gettext("Diagnostics"), gettext("NDP Table")); include("head.inc"); + +// Show message if defined. +if (isset($deleteResultMessage, $deleteResultMessageType)) { + print_info_box(htmlentities($deleteResultMessage), $deleteResultMessageType); +} ?> <div class="panel panel-default"> @@ -141,6 +164,7 @@ include("head.inc"); <th><?= gettext("MAC address"); ?></th> <th><?= gettext("Hostname"); ?></th> <th><?= gettext("Interface"); ?></th> + <th data-sortable="false"><?=gettext("Actions")?></th> </tr> </thead> <tbody> @@ -171,6 +195,9 @@ include("head.inc"); } ?> </td> + <td> + <a class="fa fa-trash" title="<?=gettext('Delete NDP entry')?>" href="diag_ndp.php?deleteentry=<?=$entry['ipv6']?>" usepost></a> + </td> </tr> <?php endforeach; ?> </tbody> |