mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-21 15:19:53 +01:00
Don't overwrite the backup if it's our only copy.
This commit is contained in:
@@ -116,22 +116,27 @@ public class ConfigControllerImpl implements ConfigController {
|
|||||||
LOG.info("Storing database key in file");
|
LOG.info("Storing database key in file");
|
||||||
File dbKey = getDbKeyFile();
|
File dbKey = getDbKeyFile();
|
||||||
File dbKeyBackup = getDbKeyBackupFile();
|
File dbKeyBackup = getDbKeyBackupFile();
|
||||||
|
// Create the directory if necessary
|
||||||
|
if (databaseConfig.getDatabaseKeyDirectory().mkdirs())
|
||||||
|
LOG.info("Created database key directory");
|
||||||
|
// If only the backup file exists, rename it so we don't overwrite it
|
||||||
|
if (dbKeyBackup.exists() && !dbKey.exists()) {
|
||||||
|
if (dbKeyBackup.renameTo(dbKey)) LOG.info("Renamed old backup");
|
||||||
|
else LOG.warning("Failed to rename old backup");
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
// Create the directory if necessary
|
|
||||||
if (databaseConfig.getDatabaseKeyDirectory().mkdirs())
|
|
||||||
LOG.info("Created database key directory");
|
|
||||||
// Write to the backup file
|
// Write to the backup file
|
||||||
FileOutputStream out = new FileOutputStream(dbKeyBackup);
|
FileOutputStream out = new FileOutputStream(dbKeyBackup);
|
||||||
out.write(hex.getBytes("UTF-8"));
|
out.write(hex.getBytes("UTF-8"));
|
||||||
out.flush();
|
out.flush();
|
||||||
out.close();
|
out.close();
|
||||||
LOG.info("Stored database key in backup file");
|
LOG.info("Stored database key in backup file");
|
||||||
// Delete the old key file, if it exists
|
// Delete the old primary file, if it exists
|
||||||
if (dbKey.exists()) {
|
if (dbKey.exists()) {
|
||||||
if (dbKey.delete()) LOG.info("Deleted primary file");
|
if (dbKey.delete()) LOG.info("Deleted primary file");
|
||||||
else LOG.warning("Failed to delete primary file");
|
else LOG.warning("Failed to delete primary file");
|
||||||
}
|
}
|
||||||
// The backup file becomes the new key file
|
// The backup file becomes the new primary
|
||||||
boolean renamed = dbKeyBackup.renameTo(dbKey);
|
boolean renamed = dbKeyBackup.renameTo(dbKey);
|
||||||
if (renamed) LOG.info("Renamed backup file to primary");
|
if (renamed) LOG.info("Renamed backup file to primary");
|
||||||
else LOG.warning("Failed to rename backup file to primary");
|
else LOG.warning("Failed to rename backup file to primary");
|
||||||
|
|||||||
Reference in New Issue
Block a user