summaryrefslogtreecommitdiffstats
path: root/usr/local/www/status_dhcp_leases.php
diff options
context:
space:
mode:
authorsmos <seth.mos@dds.nl>2012-03-21 12:57:17 +0100
committersmos <seth.mos@dds.nl>2012-03-22 15:19:46 +0100
commitd579e3dbc48eb86883f78524dbe7d3f63f3acf9a (patch)
treeda31f28b8b275f99c3eac4d3cf1f7732b0742f4e /usr/local/www/status_dhcp_leases.php
parent10c526e452cb1688a9a91bc0fb75198d190adb7c (diff)
downloadpfsense-d579e3dbc48eb86883f78524dbe7d3f63f3acf9a.zip
pfsense-d579e3dbc48eb86883f78524dbe7d3f63f3acf9a.tar.gz
Improve the memory use while processing the leases file.
Diffstat (limited to 'usr/local/www/status_dhcp_leases.php')
-rwxr-xr-xusr/local/www/status_dhcp_leases.php12
1 files changed, 8 insertions, 4 deletions
diff --git a/usr/local/www/status_dhcp_leases.php b/usr/local/www/status_dhcp_leases.php
index f1dec97..78ea3d7 100755
--- a/usr/local/www/status_dhcp_leases.php
+++ b/usr/local/www/status_dhcp_leases.php
@@ -55,7 +55,7 @@ if (($_GET['deleteip']) && (is_ipaddr($_GET['deleteip']))) {
killbyname("dhcpd");
/* Read existing leases */
- $leases_contents = explode("\n", file_get_contents($leasesfile));
+ $leases_contents = file($leasesfile);
$newleases_contents = array();
$i=0;
while ($i < count($leases_contents)) {
@@ -146,7 +146,7 @@ foreach ($rawdata as $line) {
$arpdata[] = $arpent['ip'];
}
}
-
+unset($rawdata);
$pools = array();
$leases = array();
$i = 0;
@@ -154,9 +154,9 @@ $l = 0;
$p = 0;
// Put everything together again
-while($i < $leases_count) {
+foreach($leases_content as $lease) {
/* split the line by space */
- $data = explode(" ", $leases_content[$i]);
+ $data = explode(" ", $lease);
/* walk the fields */
$f = 0;
$fcount = count($data);
@@ -258,7 +258,11 @@ while($i < $leases_count) {
}
$l++;
$i++;
+ /* slowly chisel away at the source array */
+ array_shift($leases_content);
}
+/* remove the old array */
+unset($lease_content);
/* remove duplicate items by mac address */
if(count($leases) > 0) {
OpenPOWER on IntegriCloud