diff options
| author | Dan Engelbrecht <[email protected]> | 2024-05-02 17:01:09 +0200 |
|---|---|---|
| committer | GitHub Enterprise <[email protected]> | 2024-05-02 17:01:09 +0200 |
| commit | 375fa71cb816acb25bd2eaf24ef5cc292a1f2c36 (patch) | |
| tree | 7d8e20b99bd65af37f75cb95f18c0c0001e58dcd /src/zenserver | |
| parent | batch cache put (#67) (diff) | |
| download | zen-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.cpp | 4 | ||||
| -rw-r--r-- | src/zenserver/projectstore/projectstore.cpp | 6 | ||||
| -rw-r--r-- | src/zenserver/zenserver.cpp | 4 |
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) |