Project

General

Profile

« Previous | Next » 

Revision d579e3db

Added by Seth Mos over 13 years ago

Improve the memory use while processing the leases file.

View differences:

usr/local/www/status_dhcp_leases.php
55 55
	killbyname("dhcpd");
56 56

  
57 57
	/* Read existing leases */
58
	$leases_contents = explode("\n", file_get_contents($leasesfile));
58
	$leases_contents = file($leasesfile);
59 59
	$newleases_contents = array();
60 60
	$i=0;
61 61
	while ($i < count($leases_contents)) {
......
146 146
	$arpdata[] = $arpent['ip'];
147 147
	}
148 148
}
149

  
149
unset($rawdata);
150 150
$pools = array();
151 151
$leases = array();
152 152
$i = 0;
......
154 154
$p = 0;
155 155

  
156 156
// Put everything together again
157
while($i < $leases_count) {
157
foreach($leases_content as $lease) {
158 158
	/* split the line by space */
159
	$data = explode(" ", $leases_content[$i]);
159
	$data = explode(" ", $lease);
160 160
	/* walk the fields */
161 161
	$f = 0;
162 162
	$fcount = count($data);
......
258 258
	}
259 259
	$l++;
260 260
	$i++;
261
	/* slowly chisel away at the source array */
262
	array_shift($leases_content);
261 263
}
264
/* remove the old array */
265
unset($lease_content);
262 266

  
263 267
/* remove duplicate items by mac address */
264 268
if(count($leases) > 0) {

Also available in: Unified diff