diff options
author | NOYB <Al_Stu@Frontier.com> | 2017-02-23 13:36:24 -0800 |
---|---|---|
committer | NOYB <Al_Stu@Frontier.com> | 2017-02-23 13:36:24 -0800 |
commit | 7038116e2e84872ca118a0630a1af3185e4037f1 (patch) | |
tree | d905a030dfb94a3ef611b678af8573a484a77b83 /src/etc | |
parent | 69860ee4f5ff9f1e5b87bc6fdcb6dfea66062726 (diff) | |
download | pfsense-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-x | src/etc/rc.bootup | 8 |
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"); } |