Disable delete after shred was once started. (#69)
documented here: #65 Reviewed-on: #69 Co-authored-by: localhorst <localhorst@mosad.xyz> Co-committed-by: localhorst <localhorst@mosad.xyz>
This commit is contained in:
parent
6dd4c44688
commit
1055ef57ee
@ -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;
|
||||||
|
@ -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);
|
|
||||||
}
|
}
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user