aboutsummaryrefslogtreecommitdiff
path: root/src/zenserver
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2024-05-02 17:01:09 +0200
committerGitHub Enterprise <[email protected]>2024-05-02 17:01:09 +0200
commit375fa71cb816acb25bd2eaf24ef5cc292a1f2c36 (patch)
tree7d8e20b99bd65af37f75cb95f18c0c0001e58dcd /src/zenserver
parentbatch cache put (#67) (diff)
downloadzen-375fa71cb816acb25bd2eaf24ef5cc292a1f2c36.tar.xz
zen-375fa71cb816acb25bd2eaf24ef5cc292a1f2c36.zip
use write and move in place for safer writing of files (#70)
* use write and move in place for safer writing of files
Diffstat (limited to 'src/zenserver')
-rw-r--r--src/zenserver/objectstore/objectstore.cpp4
-rw-r--r--src/zenserver/projectstore/projectstore.cpp6
-rw-r--r--src/zenserver/zenserver.cpp4
3 files changed, 7 insertions, 7 deletions
diff --git a/src/zenserver/objectstore/objectstore.cpp b/src/zenserver/objectstore/objectstore.cpp
index 846a228ce..e614b256b 100644
--- a/src/zenserver/objectstore/objectstore.cpp
+++ b/src/zenserver/objectstore/objectstore.cpp
@@ -12,6 +12,7 @@
#include "zencore/compactbinarybuilder.h"
#include "zenhttp/httpcommon.h"
#include "zenhttp/httpserver.h"
+#include "zenutil/basicfile.h"
#include <filesystem>
#include <thread>
@@ -589,7 +590,8 @@ HttpObjectStoreService::PutObject(zen::HttpRouterRequest& Request)
return Request.ServerRequest().WriteResponse(HttpResponseCode::BadRequest);
}
- WriteFile(FilePath, FileBuf);
+ TemporaryFile::SafeWriteFile(FilePath, FileBuf.GetView());
+
ZEN_LOG_DEBUG(LogObj,
"PUT - '{}' [OK] ({})",
(fs::path(BucketName) / RelativeBucketPath).make_preferred(),
diff --git a/src/zenserver/projectstore/projectstore.cpp b/src/zenserver/projectstore/projectstore.cpp
index afb2c100c..f5fecce24 100644
--- a/src/zenserver/projectstore/projectstore.cpp
+++ b/src/zenserver/projectstore/projectstore.cpp
@@ -818,7 +818,7 @@ ProjectStore::Oplog::Write()
ZEN_INFO("persisting config for oplog '{}' in project '{}' to {}", m_OplogId, m_OuterProject->Identifier, StateFilePath);
- WriteFile(StateFilePath, IoBuffer(IoBuffer::Wrap, Mem.GetData(), Mem.GetSize()));
+ TemporaryFile::SafeWriteFile(StateFilePath, Mem.GetView());
}
void
@@ -1732,7 +1732,7 @@ ProjectStore::Project::Write()
ZEN_INFO("persisting config for project '{}' to {}", Identifier, ProjectStateFilePath);
- WriteFile(ProjectStateFilePath, IoBuffer(IoBuffer::Wrap, Mem.GetData(), Mem.GetSize()));
+ TemporaryFile::SafeWriteFile(ProjectStateFilePath, Mem.GetView());
}
void
@@ -1832,7 +1832,7 @@ ProjectStore::Project::WriteAccessTimes()
ZEN_INFO("persisting access times for project '{}' to {}", Identifier, ProjectAccessTimesFilePath);
- WriteFile(ProjectAccessTimesFilePath, Data.GetBuffer().AsIoBuffer());
+ TemporaryFile::SafeWriteFile(ProjectAccessTimesFilePath, Data.GetView());
}
catch (const std::exception& Err)
{
diff --git a/src/zenserver/zenserver.cpp b/src/zenserver/zenserver.cpp
index 3fd5d53c7..89f376709 100644
--- a/src/zenserver/zenserver.cpp
+++ b/src/zenserver/zenserver.cpp
@@ -448,9 +448,7 @@ ZenServer::InitializeState(const ZenServerOptions& ServerOptions)
if (UpdateManifest)
{
- IoBuffer ManifestBuffer = m_RootManifest.GetBuffer().AsIoBuffer();
-
- WriteFile(ManifestPath, ManifestBuffer);
+ TemporaryFile::SafeWriteFile(ManifestPath, m_RootManifest.GetBuffer().GetView());
}
if (!ServerOptions.IsTest)