From 962bf7ff101e5d4797681cf9e951cbe0ed25a8ae Mon Sep 17 00:00:00 2001 From: Isaac Turner Date: Sat, 27 Apr 2024 22:04:27 +0800 Subject: [PATCH] [ntcore] Backup persistent file if it fails to parse (#6523) --- ntcore/src/main/native/cpp/NetworkServer.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ntcore/src/main/native/cpp/NetworkServer.cpp b/ntcore/src/main/native/cpp/NetworkServer.cpp index e98936a73b..26dd940829 100644 --- a/ntcore/src/main/native/cpp/NetworkServer.cpp +++ b/ntcore/src/main/native/cpp/NetworkServer.cpp @@ -359,6 +359,9 @@ void NetworkServer::LoadPersistent() { "could not open persistent file '{}': {} " "(this can be ignored if you aren't expecting persistent values)", m_persistentFilename, ec.message()); + // backup file + fs::copy_file(m_persistentFilename, m_persistentFilename + ".bak", + std::filesystem::copy_options::overwrite_existing, ec); // try to write an empty file so it doesn't happen again wpi::raw_fd_ostream os{m_persistentFilename, ec, fs::F_Text}; if (ec.value() == 0) {