summaryrefslogtreecommitdiffstats
path: root/src/etc
diff options
context:
space:
mode:
authorNOYB <Al_Stu@Frontier.com>2017-02-23 13:36:24 -0800
committerNOYB <Al_Stu@Frontier.com>2017-02-23 13:36:24 -0800
commit7038116e2e84872ca118a0630a1af3185e4037f1 (patch)
treed905a030dfb94a3ef611b678af8573a484a77b83 /src/etc
parent69860ee4f5ff9f1e5b87bc6fdcb6dfea66062726 (diff)
downloadpfsense-7038116e2e84872ca118a0630a1af3185e4037f1.zip
pfsense-7038116e2e84872ca118a0630a1af3185e4037f1.tar.gz
Vendor MAC Retention - Update
Only write if changed or missing. Vast majority of reboots will not have a change so don't hit the file system with a needless write. RAM disk enabled systems will always write due to missing the file on boot up.
Diffstat (limited to 'src/etc')
-rwxr-xr-xsrc/etc/rc.bootup8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/etc/rc.bootup b/src/etc/rc.bootup
index ea0d91a..f33b434 100755
--- a/src/etc/rc.bootup
+++ b/src/etc/rc.bootup
@@ -113,7 +113,6 @@ echo "done.\n";
if (mwexec("/bin/kenv -q pfSense.boot 2>/dev/null") != 0) {
/* Collect vendor MAC address for all interfaces */
$ifs = pfSense_interface_listget();
- unlink_if_exists("{$g['vardb_path']}/vendor_mac");
foreach ($ifs as $if) {
$if_details = pfSense_get_interface_addresses($if);
if (isset($if_details['iftype']) &&
@@ -128,8 +127,11 @@ if (mwexec("/bin/kenv -q pfSense.boot 2>/dev/null") != 0) {
$vendor_mac_arr[$if] = $if_details['macaddr'];
}
- @file_put_contents("{$g['vardb_path']}/vendor_mac", json_encode($vendor_mac_arr));
- unset($ifs, $if, $vendor_mac_arr);
+ $vendor_mac_arr_json = json_encode($vendor_mac_arr);
+ if (@file_get_contents("{$g['vardb_path']}/vendor_mac") !== $vendor_mac_arr_json) {
+ @file_put_contents("{$g['vardb_path']}/vendor_mac", $vendor_mac_arr_json);
+ }
+ unset($ifs, $if, $vendor_mac_arr, $vendor_mac_arr_json);
mwexec("/bin/kenv pfSense.boot=1");
}
OpenPOWER on IntegriCloud