summaryrefslogtreecommitdiffstats
path: root/etc/inc/config.inc
diff options
context:
space:
mode:
authorBill Marquette <billm@pfsense.org>2008-05-17 18:57:06 +0000
committerBill Marquette <billm@pfsense.org>2008-05-17 18:57:06 +0000
commited5db5ed4aa39c1346a0ad13796f8613febe83f4 (patch)
tree353894a45d8169312db02879d44a52e99fb3cd54 /etc/inc/config.inc
parent703984cddad1ee59a6c5361b0f79b87ddf0af5fa (diff)
downloadpfsense-ed5db5ed4aa39c1346a0ad13796f8613febe83f4.zip
pfsense-ed5db5ed4aa39c1346a0ad13796f8613febe83f4.tar.gz
Atomic file writing
Patch-by: David Rees MFC: for 1.2.1
Diffstat (limited to 'etc/inc/config.inc')
-rw-r--r--etc/inc/config.inc14
1 files changed, 4 insertions, 10 deletions
diff --git a/etc/inc/config.inc b/etc/inc/config.inc
index 4f52b5f..8dd34c1 100644
--- a/etc/inc/config.inc
+++ b/etc/inc/config.inc
@@ -1260,11 +1260,9 @@ function write_config($desc="Unknown", $backup = true) {
conf_mount_rw();
/* write new configuration */
- $fd = fopen("{$g['cf_conf_path']}/config.xml", "w");
- if (!$fd)
+ if (!safe_write_file("{$g['cf_conf_path']}/config.xml", $xmlconfig, false)) {
die("Unable to open {$g['cf_conf_path']}/config.xml for writing in write_config()\n");
- fwrite($fd, $xmlconfig);
- fclose($fd);
+ }
if($g['platform'] == "embedded") {
cleanup_backupcache(5);
@@ -1281,11 +1279,7 @@ function write_config($desc="Unknown", $backup = true) {
$config = parse_xml_config("{$g['conf_path']}/config.xml", $g['xml_rootobj']);
/* write config cache */
- $fd = @fopen("{$g['tmp_path']}/config.cache", "wb");
- if ($fd) {
- fwrite($fd, serialize($config));
- fclose($fd);
- }
+ safe_write_file("{$g['tmp_path']}/config.cache", serialize($config), true);
/* tell kernel to sync fs data */
mwexec("/bin/sync");
@@ -2117,4 +2111,4 @@ function set_device_perms() {
if($g['booting']) echo ".";
$config = parse_config();
-?> \ No newline at end of file
+?>
OpenPOWER on IntegriCloud