Severe bug: unable to continue import-rescan after stop. Committing fix-class carcass.

This commit is contained in:
cora32 2015-04-04 21:50:06 +03:00
parent 546e5af467
commit efec84a9e7
5 changed files with 111 additions and 21 deletions

5
NescaLogicStarter.cpp Normal file
View File

@ -0,0 +1,5 @@
#include "NescaLogicStarter.h"
int NLC::startScan(const char* args){
}

75
NescaLogicStarter.h Normal file
View File

@ -0,0 +1,75 @@
#ifndef NESCALOGICSTARTER_H
#define NESCALOGICSTARTER_H
class NLC {
public:
NLC(){
}
~NLC(){
/*FileUpdater::FUClear();
Threader::cleanUp();
curl_global_cleanup();
while (__savingBackUpFile) Sleep(100);
if (loginLst != NULL)
{
for (int i = 0; i < MaxLogin; ++i) delete[]loginLst[i];
delete[]loginLst;
loginLst = NULL;
};
if (passLst != NULL)
{
for (int i = 0; i < MaxPass; ++i) delete[]passLst[i];
delete[]passLst;
passLst = NULL;
};
if (GlobalNegatives != NULL)
{
for (int i = 0; i < GlobalNegativeSize; ++i) delete[]GlobalNegatives[i];
delete[]GlobalNegatives;
GlobalNegatives = NULL;
};
if (wfPassLst != NULL)
{
for (int i = 0; i < MaxWFPass; ++i) delete[]wfPassLst[i];
delete[]wfPassLst;
wfPassLst = NULL;
};
if (wfLoginLst != NULL)
{
for (int i = 0; i < MaxWFLogin; ++i) delete[]wfLoginLst[i];
delete[]wfLoginLst;
wfLoginLst = NULL;
};
if (sshlpLst != NULL)
{
for (int i = 0; i < MaxSSHPass; ++i) delete[]sshlpLst[i];
delete[]sshlpLst;
sshlpLst = NULL;
};
if (ipsstartfl != NULL)
{
for (int i = 0; i < flCounter; ++i) delete[]ipsstartfl[i];
delete[]ipsstartfl;
ipsstartfl = NULL;
};
if (ipsendfl != NULL)
{
for (int i = 0; i < flCounter; ++i) delete[]ipsendfl[i];
delete[]ipsendfl;
ipsendfl = NULL;
};
if (starterIP != NULL)
{
for (int i = 0; i < flCounter; ++i) delete[]starterIP[i];
delete[]starterIP;
starterIP = NULL;
};*/
}
int startScan(const char* args);
};
#endif // NESCALOGICSTARTER_H

View File

@ -1325,7 +1325,6 @@ void nesca_3::importAndScan()
if(stopFirst == false) if(stopFirst == false)
{ {
stopFirst = true; stopFirst = true;
globalScanFlag = false;
ui->importButton->setStyleSheet( ui->importButton->setStyleSheet(
" QPushButton {" " QPushButton {"
"background-color: qlineargradient(spread:none, x1:1, y1:0, x2:1, y2:1, stop:0.681818 rgba(0, 0, 0, 250), stop:1 rgba(255, 255, 255, 130));" "background-color: qlineargradient(spread:none, x1:1, y1:0, x2:1, y2:1, stop:0.681818 rgba(0, 0, 0, 250), stop:1 rgba(255, 255, 255, 130));"
@ -1340,7 +1339,6 @@ void nesca_3::importAndScan()
} }
else else
{ {
globalScanFlag = false;
ui->importButton->setStyleSheet( ui->importButton->setStyleSheet(
" QPushButton {" " QPushButton {"
"background-color: qlineargradient(spread:none, x1:1, y1:0, x2:1, y2:1, stop:0.681818 rgba(0, 0, 0, 250), stop:1 rgba(255, 255, 255, 130));" "background-color: qlineargradient(spread:none, x1:1, y1:0, x2:1, y2:1, stop:0.681818 rgba(0, 0, 0, 250), stop:1 rgba(255, 255, 255, 130));"
@ -2076,7 +2074,6 @@ void nesca_3::IPScanSeq()
stt->start(); stt->start();
startFlag = true; startFlag = true;
globalScanFlag = true;
ui->startScanButton_3->setText("Stop"); ui->startScanButton_3->setText("Stop");
ui->startScanButton_3->setStyleSheet( ui->startScanButton_3->setStyleSheet(
" QPushButton {" " QPushButton {"
@ -2156,7 +2153,6 @@ void nesca_3::DNSScanSeq()
stt->start(); stt->start();
startFlag = true; startFlag = true;
globalScanFlag = true;
ui->startScanButton_4->setText("Stop"); ui->startScanButton_4->setText("Stop");
ui->startScanButton_4->setStyleSheet( ui->startScanButton_4->setStyleSheet(
" QPushButton {" " QPushButton {"
@ -2193,10 +2189,9 @@ void nesca_3::ImportScanSeq()
ui->tabMainWidget->setTabEnabled(0, false); ui->tabMainWidget->setTabEnabled(0, false);
ui->tabMainWidget->setTabEnabled(1, false); ui->tabMainWidget->setTabEnabled(1, false);
saveOptions(); _LoadPersInfoToLocalVars(savedTabIndex);
strcpy(inputStr, ("DUMMY|-f|" + fileName + "|" + ui->importThreads->text() + "|-p" + ui->importPorts->text().replace(" ", "")).toLocal8Bit().data()); strcpy(inputStr, ("DUMMY|-f|" + fileName + "|" + ui->importThreads->text() + "|-p" + ui->importPorts->text().replace(" ", "")).toLocal8Bit().data());
globalScanFlag = true;
stt->start(); stt->start();
startFlag = true; startFlag = true;
stopFirst = false; stopFirst = false;
@ -2814,11 +2809,9 @@ void nesca_3::exitButtonClicked()
{ {
STTTerminate(); STTTerminate();
while (__savingBackUpFile) Sleep(100); while (__savingBackUpFile) Sleep(100);
//nCleanup();
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__) #if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__)
WSACleanup(); WSACleanup();
#endif #endif
// stt->terminate();
qApp->quit(); qApp->quit();
} }
@ -2865,12 +2858,11 @@ void nesca_3::STTTerminate()
ui->tabMainWidget->setTabEnabled(2, true); ui->tabMainWidget->setTabEnabled(2, true);
ui->tabMainWidget->setTabEnabled(3, true); ui->tabMainWidget->setTabEnabled(3, true);
BrutingThrds = 0; BrutingThrds = 0;
cons = 0;
stt->doEmitionUpdateArc(0);
setButtonStyleArea(); setButtonStyleArea();
stt->doEmitionUpdateArc(0);
ui->startScanButton_3->setText("Start"); ui->startScanButton_3->setText("Start");
ui->startScanButton_4->setText("Start"); ui->startScanButton_4->setText("Start");
ui->importButton->setText("Import&&Scan"); ui->importButton->setText("Import");
ui->labelStatus_Value->setText("Idle"); ui->labelStatus_Value->setText("Idle");
} }

View File

@ -309,8 +309,10 @@ void _SaveBackupToFile()
ZeroMemory(saveBuffer, strlen(saveBuffer)); ZeroMemory(saveBuffer, strlen(saveBuffer));
} }
bool saverRunning = false;
void _saver() void _saver()
{ {
saverRunning = true;
Sleep(1000); Sleep(1000);
while (globalScanFlag) while (globalScanFlag)
{ {
@ -319,9 +321,12 @@ void _saver()
__savingBackUpFile = false; __savingBackUpFile = false;
Sleep(10000); Sleep(10000);
}; };
saverRunning = false;
} }
bool timerRunning = false;
void _timer() { void _timer() {
timerRunning = true;
char dbuffer[32] = { 0 }, timeLeft[64] = { 0 }, b[32] = { 0 }; char dbuffer[32] = { 0 }, timeLeft[64] = { 0 }, b[32] = { 0 };
int ticks = 0; int ticks = 0;
int ovrlIPs = 0; int ovrlIPs = 0;
@ -354,9 +359,12 @@ void _timer() {
Sleep(1000); Sleep(1000);
}; };
timerRunning = false;
} }
bool trackerRunning = false;
void _tracker() { void _tracker() {
trackerRunning = true;
while (true) { while (true) {
while (globalScanFlag && !trackerOK) Sleep(1000); while (globalScanFlag && !trackerOK) Sleep(1000);
@ -710,6 +718,8 @@ void _tracker() {
CSSOCKET(sock); CSSOCKET(sock);
} }
trackerRunning = false;
} }
unsigned long int numOfIps(int ipsstart[], int ipsend[]) { unsigned long int numOfIps(int ipsstart[], int ipsend[]) {
@ -1623,7 +1633,8 @@ void _connect() {
if (!globalScanFlag) break; if (!globalScanFlag) break;
if (Connector::_ConnectToPort((char*)ip.c_str(), portArr[i]) == -2) break; if (Connector::_ConnectToPort((char*)ip.c_str(), portArr[i]) == -2) break;
}; };
if (cons > 0) --cons; //if (cons > 0) --cons;
--cons;
stt->doEmitionUpdateArc(gThreads); stt->doEmitionUpdateArc(gThreads);
} }
else lk.unlock(); else lk.unlock();
@ -1709,12 +1720,18 @@ void runAuxiliaryThreads() {
std::thread lpThread(FileUpdater::updateLists); std::thread lpThread(FileUpdater::updateLists);
lpThread.detach(); lpThread.detach();
} }
std::thread trackerThread(_tracker); if (!trackerRunning) {
trackerThread.detach(); std::thread trackerThread(_tracker);
std::thread timerThread(_timer); trackerThread.detach();
timerThread.detach(); }
std::thread saverThread(_saver); if (!timerRunning) {
saverThread.detach(); std::thread timerThread(_timer);
timerThread.detach();
}
if (!saverRunning) {
std::thread saverThread(_saver);
saverThread.detach();
}
} }
@ -1768,6 +1785,7 @@ int startScan(char* args) {
return -1; return -1;
}; };
globalScanFlag = true;
runAuxiliaryThreads(); runAuxiliaryThreads();
if (gMode == 0) if (gMode == 0)
@ -2048,10 +2066,8 @@ int startScan(char* args) {
stt->doEmitionGreenFoundData("Done. Saved: " + QString::number(saved) + "; Alive: " + QString::number(found) + "."); stt->doEmitionGreenFoundData("Done. Saved: " + QString::number(saved) + "; Alive: " + QString::number(found) + ".");
stt->doEmitionChangeStatus("Idle"); stt->doEmitionChangeStatus("Idle");
while (__savingBackUpFile) Sleep(100);
nCleanup(); nCleanup();
stt->doEmitionKillSttThread(); stt->doEmitionKillSttThread();
//stt->terminate();
} }
void nCleanup(){ void nCleanup(){
@ -2059,6 +2075,8 @@ void nCleanup(){
Threader::cleanUp(); Threader::cleanUp();
curl_global_cleanup(); curl_global_cleanup();
while (__savingBackUpFile) Sleep(100);
if (loginLst != NULL) if (loginLst != NULL)
{ {
for (int i = 0; i < MaxLogin; ++i) delete[]loginLst[i]; for (int i = 0; i < MaxLogin; ++i) delete[]loginLst[i];

View File

@ -1 +1 @@
24B84-7DD 24B84-85E