Disable delete after shred was once started. #69

Closed
localhorst wants to merge 4 commits from feature/block-delete-after-shred into master
3 changed files with 12 additions and 5 deletions

View File

@ -34,6 +34,7 @@ public:
} sShredSpeed; } sShredSpeed;
bool bWasShredded = false; // all shred iterations done 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 bWasChecked = false; // all shred iterations and optional checking done
bool bWasDeleted = false; bool bWasDeleted = false;
bool bIsOffline = false; bool bIsOffline = false;

View File

@ -32,11 +32,15 @@ void Delete::deleteDrive(Drive *drive)
const char *cpComand = sCMD.c_str(); const char *cpComand = sCMD.c_str();
// cout << "delete: " << cpComand << endl; // cout << "delete: " << cpComand << endl;
FILE *deleteCmdOutput = popen(cpComand, "r"); if (drive->bWasShredStarted == false)
while ((getline(&cLine, &len, deleteCmdOutput)) != -1)
{ {
// wipefs running //only start delete if the drive was not shredded before
FILE *deleteCmdOutput = popen(cpComand, "r");
while ((getline(&cLine, &len, deleteCmdOutput)) != -1)
{
// wipefs running
}
pclose(deleteCmdOutput);
} }
pclose(deleteCmdOutput);
} }

View File

@ -36,6 +36,7 @@ int Shred::shredDrive(Drive *drive, int *ipSignalFd)
ostringstream address; ostringstream address;
address << (void const *)&(*drive); address << (void const *)&(*drive);
Logger::logThis()->info("Shred-Task started - Drive: " + drive->getModelName() + "-" + drive->getSerial() + " @" + address.str()); Logger::logThis()->info("Shred-Task started - Drive: " + drive->getModelName() + "-" + drive->getSerial() + " @" + address.str());
drive->bWasShredStarted = true; //Mark drive as partly shredded
#ifdef DRYRUN #ifdef DRYRUN
for (int i = 0; i <= 500; i++) for (int i = 0; i <= 500; i++)
@ -48,6 +49,7 @@ int Shred::shredDrive(Drive *drive, int *ipSignalFd)
write(*ipSignalFd, "A", 1); write(*ipSignalFd, "A", 1);
usleep(20000); usleep(20000);
} }
drive->bWasShredded = true;
#endif #endif
#ifndef DRYRUN #ifndef DRYRUN