diff options
author | smos <seth.mos@dds.nl> | 2012-03-21 12:57:17 +0100 |
---|---|---|
committer | smos <seth.mos@dds.nl> | 2012-03-22 15:19:46 +0100 |
commit | d579e3dbc48eb86883f78524dbe7d3f63f3acf9a (patch) | |
tree | da31f28b8b275f99c3eac4d3cf1f7732b0742f4e | |
parent | 10c526e452cb1688a9a91bc0fb75198d190adb7c (diff) | |
download | pfsense-d579e3dbc48eb86883f78524dbe7d3f63f3acf9a.zip pfsense-d579e3dbc48eb86883f78524dbe7d3f63f3acf9a.tar.gz |
Improve the memory use while processing the leases file.
-rwxr-xr-x | usr/local/www/status_dhcp_leases.php | 12 |
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) { |