Reformat NetstatAgent

remotes/origin/HEAD
markuspg 6 years ago
parent c3e623f236
commit c2d4f6024c

@ -1,5 +1,5 @@
/* /*
* Copyright 2014-2016 Markus Prasser * Copyright 2014-2018 Markus Prasser, Tobias Weiss
* *
* This file is part of Labcontrol. * This file is part of Labcontrol.
* *
@ -19,33 +19,31 @@
#include "netstatagent.h" #include "netstatagent.h"
lc::NetstatAgent::NetstatAgent( const QString &argNetstatCommand, QObject *argParent ) : lc::NetstatAgent::NetstatAgent(const QString &argNetstatCommand,
QObject{ argParent }, QObject *argParent) :
extractionRegexp{ "\\d+\\.\\d+\\.\\d+\\.\\d+" }, QObject{argParent},
netstatArguments{ QStringList{} << "-anp" << "--tcp" }, netstatCommand{argNetstatCommand}
netstatCommand{ argNetstatCommand },
netstatQueryProcess{ this },
searchRegexp{ "\\W(ESTABLISHED|VERBUNDEN)( +)(\\d+)(/ztree.exe)\\W", QRegularExpression::CaseInsensitiveOption }
{ {
QProcessEnvironment env = QProcessEnvironment::systemEnvironment(); netstatQueryProcess.setProcessEnvironment(QProcessEnvironment::systemEnvironment());
netstatQueryProcess.setProcessEnvironment( env );
} }
void lc::NetstatAgent::QueryClientConnections() { void lc::NetstatAgent::QueryClientConnections()
netstatQueryProcess.start( netstatCommand, netstatArguments ); {
if ( !netstatQueryProcess.waitForFinished( 400 ) ) { netstatQueryProcess.start(netstatCommand, netstatArguments);
emit QueryFinished( nullptr ); if (!netstatQueryProcess.waitForFinished(400)) {
emit QueryFinished(nullptr);
} else { } else {
// Get all 'netstat_query_process' standard output and store it temporarily in 'temp_strings' // Get all 'netstat_query_process' standard output and store it temporarily in 'temp_strings'
QByteArray netstatQueryProcessOutputByteArray = netstatQueryProcess.readAllStandardOutput(); const QString netstatQueryProcessOutputString{netstatQueryProcess.readAllStandardOutput()};
QString netstatQueryProcessOutputString( netstatQueryProcessOutputByteArray ); const QStringList tempStrings{
QStringList tempStrings = netstatQueryProcessOutputString.split( '\n', QString::SkipEmptyParts ); netstatQueryProcessOutputString.split('\n', QString::SkipEmptyParts)};
QStringList *netstatQueryProcessOutput = new QStringList; const auto netstatQueryProcessOutput = new QStringList;
for ( auto s: tempStrings ) { for (const auto &s : tempStrings) {
if ( s.contains( searchRegexp ) ) { if (s.contains(searchRegexp)) {
QRegularExpressionMatch match = extractionRegexp.match( s, s.indexOf( ':', 0, Qt::CaseInsensitive ) ); QRegularExpressionMatch match{extractionRegexp.match(s, s.indexOf(':', 0,
netstatQueryProcessOutput->append( match.captured() ); Qt::CaseInsensitive))};
netstatQueryProcessOutput->append(match.captured());
} }
} }

@ -1,5 +1,5 @@
/* /*
* Copyright 2014-2016 Markus Prasser * Copyright 2014-2018 Markus Prasser, Tobias Weiss
* *
* This file is part of Labcontrol. * This file is part of Labcontrol.
* *
@ -31,11 +31,13 @@ namespace lc {
/*! /*!
This class is just used for repetive executions of netstat. This class is just used for repetive executions of netstat.
*/ */
class NetstatAgent : public QObject { class NetstatAgent : public QObject
{
Q_OBJECT Q_OBJECT
public: public:
explicit NetstatAgent( const QString &argNetstatCommand, QObject *argParent = nullptr ); explicit NetstatAgent(const QString &argNetstatCommand,
QObject *argParent = nullptr);
signals: signals:
//! This signal is emitted if the query of the currently active zLeaf connections finished //! This signal is emitted if the query of the currently active zLeaf connections finished
@ -45,13 +47,17 @@ public slots:
void QueryClientConnections(); void QueryClientConnections();
private: private:
const QRegularExpression extractionRegexp; const QRegularExpression extractionRegexp
const QStringList netstatArguments; = QRegularExpression{"\\d+\\.\\d+\\.\\d+\\.\\d+"};
const QString &netstatCommand; const QStringList netstatArguments
= QStringList{"-anp", "--tcp"};
const QString netstatCommand;
QProcess netstatQueryProcess; QProcess netstatQueryProcess;
const QRegularExpression searchRegexp; const QRegularExpression searchRegexp
= QRegularExpression{"\\W(ESTABLISHED|VERBUNDEN)( +)(\\d+)(/ztree.exe)\\W",
QRegularExpression::CaseInsensitiveOption};
}; };
} } // namespace lc
#endif // NETSTATAGENT_H #endif // NETSTATAGENT_H

Loading…
Cancel
Save