Skip to content

Commit

Permalink
dhcp: fix leases page for DHCPv6 static leases #4642
Browse files Browse the repository at this point in the history
  • Loading branch information
fichtner committed Apr 8, 2021
1 parent 4d4ed75 commit d4a880c
Showing 1 changed file with 18 additions and 40 deletions.
58 changes: 18 additions & 40 deletions src/www/status_dhcpv6_leases.php
Original file line number Diff line number Diff line change
Expand Up @@ -288,27 +288,22 @@ function parse_duid($duid_string)
asort($pools);
}

foreach ($interfaces as $ifname => $ifarr) {
if (isset($config['dhcpdv6'][$ifname]['staticmap'])) {
foreach($config['dhcpdv6'][$ifname]['staticmap'] as $static) {
$slease = array();
$slease['ip'] = $static['ipaddrv6'];
$slease['type'] = "static";
$slease['duid'] = $static['duid'];
$slease['start'] = "";
$slease['end'] = "";
$slease['hostname'] = $static['hostname'];
$slease['descr'] = $static['descr'];
$slease['act'] = "static";
if (in_array($slease['ip'], array_keys($ndpdata))) {
$slease['online'] = 'online';
} else {
$slease['online'] = 'offline';
}

$leases[] = $slease;
}
foreach (dhcpd_staticmap() as $static) {
if (!isset($static['ipaddrv6'])) {
continue;
}
$slease = [];
$slease['ip'] = $static['ipaddrv6'];
$slease['if'] = $static['interface'];
$slease['type'] = 'static';
$slease['duid'] = $static['duid'];
$slease['start'] = '';
$slease['end'] = '';
$slease['hostname'] = $static['hostname'];
$slease['descr'] = $static['descr'];
$slease['act'] = 'static';
$slease['online'] = in_array($slease['ip'], array_keys($ndpdata)) ? 'online' : 'offline';
$leases[] = $slease;
}

if ($_GET['order']) {
Expand Down Expand Up @@ -449,31 +444,14 @@ function parse_duid($duid_string)
</thead>
<tbody>
<?php
$mac_man = json_decode(configd_run("interface list macdb json"), true);
foreach ($leases as $data):
if (!($data['act'] == 'active' || $data['act'] == 'static' || $_GET['all'] == 1)) {
continue;
}
if ($data['act'] == "static") {
foreach ($config['dhcpdv6'] as $dhcpif => $dhcpifconf) {
if (isset($dhcpifconf['staticmap'])) {
foreach ($dhcpifconf['staticmap'] as $staticent) {
if ($data['ip'] == $staticent['ipaddr']) {
$data['int'] = htmlspecialchars($interfaces[$dhcpif]['descr']);
$data['if'] = $dhcpif;
break;
}
}
}
/* exit as soon as we have an interface */
if ($data['if'] != "") {
break;
}
}
} else {
$data['if'] = convert_real_interface_to_friendly_interface_name(guess_interface_from_ip($data['ip']));
$data['int'] = htmlspecialchars($interfaces[$data['if']]['descr']);
if (!isset($data['if'])) {
$data['if'] = convert_real_interface_to_friendly_interface_name(guess_interface_from_ip($data['ip']));
}
$data['int'] = htmlspecialchars($interfaces[$data['if']]['descr']);
?>
<tr>
<td><?=$data['int'];?></td>
Expand Down

0 comments on commit d4a880c

Please sign in to comment.