From 1e545993b0debac81dc5053f901c69be226131f8 Mon Sep 17 00:00:00 2001 From: localhorst Date: Sun, 23 Jun 2024 11:30:25 +0200 Subject: [PATCH] add new flag --- include/drive.h | 1 + src/reHDD.cpp | 2 +- src/shred.cpp | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/include/drive.h b/include/drive.h index f1e28ab..71b2d1d 100644 --- a/include/drive.h +++ b/include/drive.h @@ -34,6 +34,7 @@ public: } sShredSpeed; bool bWasShredded = false; // all shred iterations done + bool bWasShredStarted = false; // shred was atleast once started bool bWasChecked = false; // all shred iterations and optional checking done bool bWasDeleted = false; bool bIsOffline = false; diff --git a/src/reHDD.cpp b/src/reHDD.cpp index 9338242..e05ee75 100644 --- a/src/reHDD.cpp +++ b/src/reHDD.cpp @@ -585,7 +585,7 @@ void reHDD::handleEnter() thread(ThreadShred, pTmpDrive).detach(); } - if (getSelectedDrive()->state == Drive::TaskState::DELETE_SELECTED) + if ((getSelectedDrive()->state == Drive::TaskState::DELETE_SELECTED) && (getSelectedDrive()->bWasShredStarted == false)) { Logger::logThis()->info("Started delete for: " + getSelectedDrive()->getModelName() + "-" + getSelectedDrive()->getSerial()); getSelectedDrive()->state = Drive::TaskState::DELETE_ACTIVE; diff --git a/src/shred.cpp b/src/shred.cpp index 3cb9c48..6ae0236 100644 --- a/src/shred.cpp +++ b/src/shred.cpp @@ -36,6 +36,7 @@ int Shred::shredDrive(Drive *drive, int *ipSignalFd) ostringstream address; address << (void const *)&(*drive); Logger::logThis()->info("Shred-Task started - Drive: " + drive->getModelName() + "-" + drive->getSerial() + " @" + address.str()); + drive->bWasShredStarted = true; //Mark drive as partly shredded #ifdef DRYRUN for (int i = 0; i <= 500; i++)