Advertisement
cp-pum4

Untitled

Apr 13th, 2012
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 22.28 KB | None | 0 0
  1. /***************************************************************************
  2.  *   Copyright (C) 2007-2010 by Francesco Cecconi                          *
  3.  *   [email protected]                                           *
  4.  *                                                                         *
  5.  *   This program is free software; you can redistribute it and/or modify  *
  6.  *   it under the terms of the GNU General Public License as published by  *
  7.  *   the Free Software Foundation; either version 2 of the License.        *
  8.  *                                                                         *
  9.  *   This program is distributed in the hope that it will be useful,       *
  10.  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
  11.  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
  12.  *   GNU General Public License for more details.                          *
  13.  *                                                                         *
  14.  *   You should have received a copy of the GNU General Public License     *
  15.  *   along with this program; if not, write to the                         *
  16.  *   Free Software Foundation, Inc.,                                       *
  17.  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  18.  ***************************************************************************/
  19.  
  20. #include "../mainwin.h"
  21.  
  22. void nmapClass::nmapParser(const QString hostCheck, QByteArray Byte1, QByteArray Byte2)
  23. {
  24.     QString * StdoutStr;
  25.     QString * StderrorStr;
  26.     QString title = "NmapSI4 ";
  27.     parserObj *elemObj = new parserObj();
  28.  
  29.     int open_port = 0;
  30.     int close_port = 0;
  31.     int filtered_port = 0;
  32.     int error_count = 0;
  33.     int ItemNumber = 0;
  34.     int pos;
  35.  
  36. #ifndef PARSER_NO_DEBUG
  37.     qDebug() << "Host Checked:::: " << hostCheck;
  38. #endif
  39.     delMonitorHost(scanMonitor, hostCheck);
  40.  
  41.     listClearFlag = false; // the listScan is not empty
  42.  
  43.     StdoutStr = new QString(Byte1); // read std buffer
  44.     StderrorStr = new QString(Byte2); // read error buffer
  45.  
  46.     progressScan->setValue(75);
  47.    
  48.     QTextStream stream(StdoutStr);
  49.     QString tmp, buffer, buffer2, bufferInfo,bufferTraceroot,bufferNSS;
  50.     QRegExp rxT_("^\\d\\d?");
  51.  
  52.     buffer.append(hostCheck);
  53.  
  54.     while (!stream.atEnd()) {
  55.         tmp = stream.readLine();
  56.  
  57.         if ((rxT_.indexIn(tmp) != -1) &&
  58.                 (tmp.contains("open")
  59.                 || tmp.contains("closed")
  60.                 || tmp.contains("filtered")
  61.                 || tmp.contains("unfiltered"))
  62.                 && !tmp.contains("Not shown:")
  63.                 && !tmp.contains("Discovered")) {
  64.  
  65.             buffer2.append(tmp);
  66.             buffer2.append("\n");
  67.         }
  68.  
  69.         if ((tmp.contains("MAC")
  70.                 || tmp.contains("Running:")
  71.                 || tmp.contains("Running")
  72.                 || tmp.contains("OS details:")
  73.                 || tmp.contains("Aggressive OS guesses:")
  74.                 || tmp.contains("Device type:")
  75.                 || tmp.contains("Uptime:")
  76.                 || tmp.contains("TCP Sequence Prediction:")
  77.                 || tmp.contains("IPID Sequence Generation:")
  78.                 || tmp.contains("IP ID Sequence Generation:")
  79.                 || (tmp.contains("Service Info:") && tmp.compare(buffer))
  80.                 || tmp.contains("Initiating Ping ")
  81.                 || tmp.contains("Completed Ping ")
  82.                 || tmp.contains("Network Distance:")
  83.                 || tmp.contains("Note:")
  84.                 || tmp.contains("Nmap done:")
  85.                 || tmp.startsWith("Hosts")
  86.                 || tmp.startsWith("Host"))
  87.                 && !tmp.startsWith("|")
  88.            ) {
  89.             bufferInfo.append(tmp);
  90.             bufferInfo.append("\n");
  91.         }
  92.  
  93.         if(tmp.startsWith("Uptime")) {
  94.             QString uptime;
  95.             uptime.clear();
  96.             uptime.append(tmp);
  97.             uptime.remove("Uptime guess:");
  98.             elemObj->setUptime(uptime);
  99.         }
  100.  
  101.         if(tmp.startsWith("TCP Sequence Prediction:")) {
  102.             QString sequence_(tmp);
  103.             sequence_.remove("TCP Sequence Prediction: ");
  104.             elemObj->setTcpSequence(sequence_);
  105.         }
  106.  
  107.         if(tmp.startsWith("Running:")) {
  108.             QString running_(tmp);
  109.             running_.remove("Running: ");
  110.             elemObj->setRunning(running_);
  111.         }
  112.  
  113.         if(tmp.startsWith("Device type:")) {
  114.             QString device_(tmp);
  115.             device_.remove("Device type: ");
  116.             elemObj->setDeviceType(device_);
  117.         }
  118.  
  119.         if(tmp.startsWith("|")) {
  120.             QString tmpClean(tmp);
  121.             if(tmpClean.startsWith("|")) {
  122.                 tmpClean.remove("|");
  123.             }
  124.             if(tmpClean.startsWith("_")) {
  125.                 tmpClean.remove("_");
  126.             }
  127.  
  128.             while(tmpClean.startsWith(" ")) {
  129.                 pos = tmpClean.indexOf(" ");
  130.                 if(pos == 0) {
  131.                     tmpClean.remove(pos,1);
  132.                 }
  133.             }
  134.  
  135.             bufferNSS.append(tmpClean);
  136.             bufferNSS.append("\n");
  137.         }
  138.  
  139.         if((rxT_.indexIn(tmp) != -1) && (!tmp.contains("/"))) {
  140. #ifndef PARSER_NO_DEBUG
  141.             qDebug() << "Match String:: " << tmp;
  142. #endif
  143.             bufferTraceroot.append(tmp);
  144.             bufferTraceroot.append("\n");
  145.         }
  146.  
  147.     }
  148.  
  149.     QTreeWidgetItem *root = new QTreeWidgetItem(listWscan);
  150.     itemList.push_front(root);
  151.  
  152.     QTreeWidgetItem *root2 = new QTreeWidgetItem(listScan);
  153.     itemList.push_front(root2);
  154.  
  155.     QTreeWidgetItem *error = new QTreeWidgetItem(listScanError);
  156.     itemList.push_front(error);
  157.  
  158.     QTreeWidgetItem *infoItem = new QTreeWidgetItem(treeWinfo);
  159.     itemList.push_front(infoItem);
  160.  
  161.     QTreeWidgetItem *infoTraceroot = new QTreeWidgetItem(treeTraceroot);
  162.     itemList.push_front(infoTraceroot);
  163.  
  164.     QTreeWidgetItem *infoNSS = new QTreeWidgetItem(treeNSS);
  165.     itemList.push_front(infoNSS);
  166.  
  167.     QTreeWidgetItem *mainTreeE = new QTreeWidgetItem(treeMain);
  168.     mainTreeElem.push_front(mainTreeE);
  169.  
  170.     // check for log file
  171.     QTextStream *out = NULL;
  172.  
  173.     if (PFile) {
  174.         out = new QTextStream(PFile);
  175.         QString nmap_command;
  176.         nmap_command.append("\n==LogStart: ");
  177.         nmap_command.append("\nnmap ");
  178.         if(!frameAdv-isVisible()) {
  179.             nmap_command.append(check_extensions().join(" "));
  180.         } else {
  181.             nmap_command.append(comboAdv->lineEdit()->text());
  182.         }
  183.         nmap_command.append(hostCheck); // write host target in the log
  184.         *out << nmap_command << endl << endl;
  185.     }
  186.  
  187.     int tmpBox = SWscan->currentIndex();
  188.  
  189.     switch(tmpBox) {
  190.       case 0:  
  191.         Bnss->setIcon(QIcon(QString::fromUtf8(":/images/images/reload.png")));
  192.         Binfo->setIcon(QIcon(QString::fromUtf8(":/images/images/reload.png")));
  193.     break;
  194.       case 1:
  195.         Bdetails->setIcon(QIcon(QString::fromUtf8(":/images/images/reload.png")));
  196.         Binfo->setIcon(QIcon(QString::fromUtf8(":/images/images/reload.png")));
  197.     break;
  198.       case 2:
  199.         Bdetails->setIcon(QIcon(QString::fromUtf8(":/images/images/reload.png")));
  200.         Bnss->setIcon(QIcon(QString::fromUtf8(":/images/images/reload.png")));
  201.         Binfo->setIcon(QIcon(QString::fromUtf8(":/images/images/reload.png")));
  202.     break;
  203.     }
  204.  
  205.  
  206.     root->setIcon(0, QIcon(QString::fromUtf8(":/images/images/viewmagfit_result.png")));
  207.     root->setTextAlignment(1, Qt::AlignCenter);
  208.     root->setTextAlignment(2, Qt::AlignCenter);
  209.     root->setTextAlignment(3, Qt::AlignCenter);
  210.     root->setTextAlignment(4, Qt::AlignCenter);
  211.  
  212.     root2->setIcon(0, QIcon(QString::fromUtf8(":/images/images/book.png")));
  213.     error->setIcon(0, QIcon(QString::fromUtf8(":/images/images/messagebox_critical.png")));
  214.     infoItem->setIcon(0, QIcon(QString::fromUtf8(":/images/images/viewmagfit_result.png")));
  215.     infoTraceroot->setIcon(0, QIcon(QString::fromUtf8(":/images/images/viewmagfit_result.png")));
  216.     infoNSS->setIcon(0, QIcon(QString::fromUtf8(":/images/images/viewmagfit_result.png")));
  217.     mainTreeE->setIcon(0, QIcon(QString::fromUtf8(":/images/images/network_local.png")));
  218.  
  219.     if (!buffer.isEmpty()) { // Host line scan
  220.         QFont rootFont = root->font(0);
  221.         rootFont.setWeight(QFont::Normal);
  222.         root->setFont(0, rootFont);
  223.         root->setText(0, buffer);
  224.         root2->setText(0, buffer);
  225.         error->setText(0, buffer);
  226.         infoItem->setText(0, buffer);
  227.         infoTraceroot->setText(0, buffer);
  228.         infoNSS->setText(0, buffer);
  229.         mainTreeE->setText(0, buffer);
  230.         if ((PFile) && (!verboseLog)) *out << root->text(0) << endl;
  231.     } else {
  232.         QFont rootFont = root->font(0);
  233.         rootFont.setWeight(QFont::Normal);
  234.         root->setFont(0, rootFont);
  235.         root->setText(0, hostCheck);
  236.         root2->setText(0, hostCheck);
  237.         error->setText(0, hostCheck);
  238.         infoItem->setText(0, hostCheck);
  239.         infoTraceroot->setText(0, hostCheck);
  240.         infoNSS->setText(0, hostCheck);
  241.         mainTreeE->setText(0, hostCheck);
  242.         if ((PFile) && (!verboseLog)) *out << root->text(0) << endl;
  243.     }
  244.  
  245.     QTextStream b2(&buffer2); // QString to QtextStream (scan Tree)
  246.     QString b2_line;
  247.     QString tmp_mess = root->text(0);
  248.     QString tmp_mess2 = root->text(0);
  249.  
  250.     if (!b2.atEnd()) { // check for scan informations
  251.         while (!b2.atEnd()) {
  252.             b2_line = b2.readLine();
  253.             QTreeWidgetItem *item2 = new QTreeWidgetItem(root);
  254.             itemList.push_front(item2); // save item address in QList
  255.  
  256.             if (b2_line.contains("open") || b2_line.contains("filtered")
  257.                     || b2_line.contains("unfiltered")) {
  258.  
  259.                 if (b2_line.contains("filtered") || b2_line.contains("unfiltered")) {
  260.                     item2->setSizeHint(0, QSize(22, 22));
  261.                     item2->setIcon(0, QIcon(QString::fromUtf8(":/images/images/flag_yellow.png")));
  262.                     filtered_port++;
  263.                 } else {
  264.                     item2->setSizeHint(0, QSize(22, 22));
  265.                     item2->setIcon(0, QIcon(QString::fromUtf8(":/images/images/flag_green.png")));
  266.                     open_port++;
  267.                 }
  268.             } else {
  269.                 item2->setSizeHint(0, QSize(22, 22));
  270.                 item2->setIcon(0, QIcon(QString::fromUtf8(":/images/images/flag_red.png")));
  271.                 close_port++;
  272.             }
  273.  
  274.  
  275.             if (!b2_line.isEmpty()) {
  276.                 QString tmpStr = b2_line;
  277.                 QStringList lStr = tmpStr.split(" ", QString::SkipEmptyParts);
  278. #ifndef PARSER_NO_DEBUG
  279.                 qDebug() << "Nmapsi4/parser:: --> Token:: " << lStr;
  280. #endif
  281.  
  282.                 if (lStr[1].contains("open")) {
  283.                     item2->setText(1, lStr[0]);
  284.                     item2->setToolTip(1, lStr[0]);
  285.                     item2->setForeground(1, QBrush(QColor(0, 0, 255, 127)));
  286.                 } else if (lStr[1].contains("filtered") || lStr[1].contains("unfiltered")) {
  287.                     item2->setText(3, lStr[0]);
  288.                     item2->setToolTip(3, lStr[0]);
  289.                 } else {
  290.                     item2->setText(2, lStr[0]);
  291.                     item2->setToolTip(2, lStr[0]);
  292.                     item2->setForeground(2, QBrush(QColor(255, 0, 0, 127)));
  293.                 }
  294.  
  295.                 item2->setText(4, lStr[2]);
  296.                 item2->setToolTip(4, lStr[2]);
  297.                 elemObj->setServices(lStr[2]); // Obj Services
  298.                 elemObj->setPortServices(lStr[0]);
  299.  
  300.                 int index = 3;
  301.                 QString str;
  302.                 for(int index=0; index < lStr.size(); index++) {
  303.                     if(lStr[index].contains("(") || lStr[index].contains(")")
  304.                                                  || lStr[index].contains("version")
  305.                                                  || lStr[index].contains("protocol")) {
  306.                         lStr.removeAt(index);
  307.                         index--;
  308.                     }
  309.                 }
  310.                 // Description
  311.                 QString noDes = tr("No description");
  312.                 if (lStr.size() == 3) {
  313.                     item2->setText(0, noDes);
  314.                     elemObj->setDescriptionServices(noDes);
  315.                 } else {
  316.                     while (index < lStr.size()) {
  317.                         str.append(lStr[index]);
  318.                         str.append(" ");
  319.                         index++;
  320.  
  321.                     }
  322.  
  323.                     QStringList tmpToken = str.split(" ");
  324.                     QString token;
  325.                     if (tmpToken.size() <= 2) {
  326.                         token.append(tmpToken[0]);
  327.                         token.append(" ");
  328.                         token.append(tmpToken[1]);
  329.                     } else {
  330.                         token.append(tmpToken[0]);
  331.                         token.append(" ");
  332.                         token.append(tmpToken[1]);
  333.                         token.append(" ");
  334.                         token.append(tmpToken[2]);
  335.                     }
  336.  
  337.                     if (token.contains("-")) {
  338.                         if (comboVuln->findText(token.leftRef(token.indexOf("-")).toString(), Qt::MatchExactly) == -1)
  339.                             comboVuln->addItem(token.leftRef(token.indexOf("-")).toString());
  340.                     } else if (comboVuln->findText(token, Qt::MatchExactly) == -1)
  341.                         comboVuln->addItem(token);
  342.  
  343.                     item2->setText(0, str);
  344.                     item2->setToolTip(0, str);
  345.                     elemObj->setDescriptionServices(str);
  346.  
  347.                 }
  348.  
  349.                 if ((PFile) && (!verboseLog)) {
  350.                     *out << item2->text(0)
  351.                             << " ("
  352.                             << item2->text(4)
  353.                             << " - "
  354.                             << item2->text(1)
  355.                             << item2->text(2)
  356.                             << item2->text(3)
  357.                             << ")"
  358.                             << endl;
  359.                 }
  360.             } else
  361.                 item2->setText(0, tr("No Ports"));
  362.  
  363.             ItemNumber++;
  364.  
  365.         }
  366.     } else { // insert message for no info
  367.         root->setText(0, tmp_mess);
  368.         root->setIcon(0, QIcon(QString::fromUtf8(":/images/images/viewmagfit_noresult.png")));
  369.     }
  370.  
  371.     QTextStream b3(&bufferInfo); // QString to QtextStrem (scan Tree)
  372.     QString b3_line;
  373.  
  374.     if (!b3.atEnd()) { // check for scan informations
  375.         while (!b3.atEnd()) {
  376.             b3_line = b3.readLine();
  377.  
  378.             checkViewOS(b3_line,root);
  379.  
  380.             QTreeWidgetItem *infoItemObj = new QTreeWidgetItem(infoItem);
  381.             itemList.push_front(infoItemObj); // reference to address
  382.  
  383.             if (!b3_line.isEmpty()) {
  384.                 infoItemObj->setSizeHint(0, QSize(22, 22));
  385.                 infoItemObj->setIcon(0, QIcon(QString::fromUtf8(":/images/images/messagebox_info.png")));
  386.                 infoItemObj->setText(0, b3_line);
  387.                 infoItemObj->setToolTip(0, b3_line); // field information
  388.                 if ((PFile) && (!verboseLog)) *out << infoItemObj->text(0) << endl;
  389.             } else
  390.                 infoItemObj->setText(0, tr("No Info"));
  391.         }
  392.     } else { // insert message for no info
  393.         infoItem->setText(0, tmp_mess2);
  394.         infoItem->setIcon(0, QIcon(QString::fromUtf8(":/images/images/viewmagfit_noresult.png")));
  395.     }
  396.  
  397.     QTextStream bT(&bufferTraceroot); // Traceroute buffer
  398.     QString bT_line;
  399.     QTreeWidgetItem *infoTracerootObj = NULL;
  400.  
  401.     if (!bT.atEnd()) { // check for traceroute scan informations
  402.         while (!bT.atEnd()) {
  403.             bT_line = bT.readLine();
  404.  
  405.             if (!bT_line.isEmpty()) {
  406.                 if(!bT_line.contains("guessing hop")) {
  407.                     infoTracerootObj = new QTreeWidgetItem(infoTraceroot);
  408.                     itemList.push_front(infoTracerootObj);
  409.                     QStringList tmpToken = bT_line.split(" ");
  410.  
  411.                     // split traceroute -------------------------------------------------
  412.                     tmpToken.removeAll("");
  413.  
  414.                     // MS windows check for ms string
  415.                     if(tmpToken.size() == 5) {
  416.                         if(tmpToken[2].size() < 4) { // minimun dns lenght
  417.                             tmpToken.removeAt(2);
  418.                         }
  419.                     }
  420.  
  421.                     if(tmpToken.size() == 4) {
  422.                         if(tmpToken[2].size() < 4) { // minimun dns lenght
  423.                             tmpToken.removeAt(2);
  424.                         } else {
  425.                             tmpToken[3].remove("(");
  426.                             tmpToken[3].remove(")");
  427.                         }
  428.                     }
  429. #ifndef PARSER_NO_DEBUG
  430.                     qDebug() << "DEBUG::TracerouteSplit:: " << tmpToken.size();
  431.                     for(int index=0; index < tmpToken.size(); index++) {
  432.                         qDebug() << "DEBUG::TracerouteSplit:: " << tmpToken[index];
  433.  
  434.                     }
  435. #endif
  436.  
  437.                     if(tmpToken.size() == 4) {
  438.                         infoTracerootObj->setText(0, tmpToken[0]);
  439.                         infoTracerootObj->setText(1, tmpToken[1]);
  440.                         infoTracerootObj->setText(3, tmpToken[2]);
  441.                         infoTracerootObj->setText(2, tmpToken[3]);
  442.  
  443.                     } else if(tmpToken.size() == 3) {
  444.                         infoTracerootObj->setText(0, tmpToken[0]);
  445.                         infoTracerootObj->setText(1, tmpToken[1]);
  446.                         infoTracerootObj->setText(2, tmpToken[2]);
  447.                         infoTracerootObj->setText(3, "no DNS");
  448.                         infoTracerootObj->setForeground(3, QBrush(QColor(255, 0, 0, 127)));
  449.                     } else {
  450.                         infoTracerootObj->setText(0, bT_line);
  451.                         infoTracerootObj->setToolTip(0, bT_line);
  452.                     }
  453.                     // ------------------------------------------------------------------------
  454.  
  455.                     infoTracerootObj->setSizeHint(0, QSize(22, 22));
  456.                     infoTracerootObj->setIcon(0, QIcon(QString::fromUtf8(":/images/images/traceroute.png")));
  457.                     if ((PFile) && (!verboseLog)) *out << infoTracerootObj->text(0) << endl;
  458.                 }
  459.             } else {
  460.                 if(infoTracerootObj) {
  461.                    infoTracerootObj->setText(0, tr("No Info"));
  462.                }
  463.             }
  464.         }
  465.     } else { // insert message for no info
  466.         infoTraceroot->setText(0, tmp_mess2);
  467.         infoTraceroot->setIcon(0, QIcon(QString::fromUtf8(":/images/images/viewmagfit_noresult.png")));
  468.     }
  469.  
  470.     QTextStream bNSS(&bufferNSS); // NSS
  471.     QString bNSS_line;
  472.     QTreeWidgetItem *infoNSSObj = NULL;
  473.  
  474.     if (!bNSS.atEnd()) { //
  475.         while (!bNSS.atEnd()) {
  476.             bNSS_line = bNSS.readLine();
  477.  
  478.             if (!bNSS_line.isEmpty()) {
  479.                 infoNSSObj = new QTreeWidgetItem(infoNSS);
  480.                 itemList.push_front(infoNSSObj);
  481.  
  482.                 infoNSSObj->setSizeHint(0, QSize(22, 22));
  483.                 infoNSSObj->setIcon(0, QIcon(QString::fromUtf8(":/images/images/traceroute.png")));
  484.                 infoNSSObj->setText(0, bNSS_line);
  485.                 infoNSSObj->setToolTip(0, bNSS_line); // field information
  486.                 if ((PFile) && (!verboseLog)) *out << infoNSSObj->text(0) << endl;
  487.             } else {
  488.                 if(infoNSSObj) {
  489.                    infoNSSObj->setText(0, tr("No Info"));
  490.                 }
  491.             }
  492.         }
  493.     } else { // insert message for no info
  494.         infoNSS->setText(0, tmp_mess2);
  495.         infoNSS->setIcon(0, QIcon(QString::fromUtf8(":/images/images/viewmagfit_noresult.png")));
  496.     }
  497.  
  498.  
  499.  
  500.     if (ItemNumber) {
  501.         QString tmp_buffer = root->text(0);
  502.         root->setText(1, QString("%1").arg(open_port));
  503.         root->setText(2, QString("%1").arg(close_port));
  504.         root->setText(3, QString("%1").arg(filtered_port));
  505.     }
  506.  
  507.     actionClear_History->setEnabled(true);
  508.  
  509.     QTextStream b_log(StdoutStr);
  510.     QString blog_line;
  511.  
  512.     while (!b_log.atEnd()) {
  513.         blog_line = b_log.readLine();
  514.         if(!blog_line.isEmpty()) {
  515.            QTreeWidgetItem *item_root2 = new QTreeWidgetItem(root2); // append scan log
  516.            itemList.push_front(item_root2); // reference to address
  517.  
  518.            item_root2->setText(0, blog_line);
  519.  
  520.            if ((PFile) && (verboseLog)) {
  521.             *out << blog_line << "\n";
  522.            }
  523.         }
  524.     }
  525.     *out << "==LogEnd\n";
  526.     if (PFile) delete out;
  527.  
  528.     QTextStream b_error(StderrorStr);
  529.     QString error_line;
  530.  
  531.     if (!b_error.atEnd()) { // check for no error
  532.         while (!b_error.atEnd()) { // print error buffer informations
  533.             QTreeWidgetItem *item_error = new QTreeWidgetItem(error); // item_error memory allocation
  534.             itemList.push_front(item_error); // reference to address
  535.             error_line = b_error.readLine();
  536.             item_error->setText(0, error_line);
  537.             error_count++;
  538.         }
  539.  
  540.     } else {
  541.         QString tmp_mess = error->text(0);
  542.         tmp_mess.append(tr("\n(No Errors or Warnings)"));
  543.         error->setText(0, tmp_mess);
  544.     }
  545.  
  546.     if (error_count) {
  547.         QString tmp_buffer_error = error->text(0);
  548.         tmp_buffer_error.append(tr("\n(Report: "));
  549.         tmp_buffer_error.append(tr("Errors or Warnings: "));
  550.         tmp_buffer_error.append(QString("%1").arg(error_count));
  551.         tmp_buffer_error.append(" )");
  552.         error->setText(0, tmp_buffer_error);
  553.     }
  554.  
  555.  
  556.     delete StdoutStr;
  557.     delete StderrorStr;
  558.  
  559.     if(!monitorElemHost.size()) {
  560.         emit killScan();
  561.         qDeleteAll(scanPointerList);
  562.         scanPointerList.clear();
  563.     }
  564.  
  565.     Byte1.clear();
  566.     Byte2.clear();
  567.  
  568.     progressScan->setValue(85);
  569.     if(!scanCounter) {
  570.         progressScan->setValue(100);
  571.     } else {
  572.         progressScan->setValue(55);
  573.     }
  574.  
  575.     action_Scan_menu->setEnabled(true);
  576.     action_Scan_2->setEnabled(true);
  577.     hostEdit->setEnabled(true);
  578.     action_Save_As->setEnabled(true);
  579.     actionSave_As_Menu->setEnabled(true);
  580.     if (!logSessionFile.isEmpty()) {
  581.     actionSave->setEnabled(true);
  582.     actionSave_Menu->setEnabled(true);
  583.     }
  584.  
  585.     parserObjList.append(elemObj);
  586. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement