summaryrefslogtreecommitdiffstats
path: root/LogReceiver/logreceiver.h
diff options
context:
space:
mode:
Diffstat (limited to 'LogReceiver/logreceiver.h')
-rw-r--r--LogReceiver/logreceiver.h74
1 files changed, 74 insertions, 0 deletions
diff --git a/LogReceiver/logreceiver.h b/LogReceiver/logreceiver.h
new file mode 100644
index 0000000..ce6d070
--- /dev/null
+++ b/LogReceiver/logreceiver.h
@@ -0,0 +1,74 @@
+#ifndef LOGRECEIVER_H
+#define LOGRECEIVER_H
+
+#include <qprocess.h>
+#include <qnetworkinterface.h>
+#include <qnetworkconfigmanager.h>
+#include <qnetworkaccessmanager.h>
+#include <qnetworksession.h>
+#include <qnetworkreply.h>
+#include <qsslerror.h>
+
+class QLocalServer;
+class QLocalSocket;
+
+class LogReceiver: public QObject {
+Q_OBJECT
+
+#define DEFAULT_QTSOCKETADDRESS "/var/tmp/qt_c_socket_default"
+#define DEFAULT_PATHTODHCPCDEXE "/home/niklas/fbgui/workspace/customdhcpcd/src/customdhcpcd"
+
+public:
+ LogReceiver();
+ ~LogReceiver();
+
+ void initAndRun(QString serverPath = DEFAULT_QTSOCKETADDRESS,
+ QString pathToExe = DEFAULT_PATHTODHCPCDEXE,
+ QStringList* args = NULL);
+
+private slots:
+ void handleNewConnection();
+ void handleNewInput();
+ void handleNewInputLine(QLocalSocket * client, QString data);
+ void handleProcessFinished(int exitCode, QProcess::ExitStatus exitStatus);
+ void handleProcessStarted();
+ void handleClientDisconnect();
+
+signals:
+ void addNewInterface(QString ifName);
+ void changeProgressBarValue(QString ifName, int newValue);
+ void connectionEstablished(QString ifName);
+ void abortBoot(QString msg);
+ void updateStatusLabel(QString ifName, QString status);
+ void allProcessesFinished();
+
+private:
+ QLocalServer *server;
+ quint16 blockSize;
+ //QMap<int, QNetworkInterface > interfacesMap;
+ //QMap<QString, int> indexToIfaceNameMap;
+ QMap<QLocalSocket *, QLocalSocket *> clients;
+ QLocalSocket * client;
+ QMap<QString, QLocalSocket*> ifNameToClient;
+ QMap<QProcess*, QString> clientProcessToIfNameMap;
+ QString pathToDhcpcdExe;
+ QStringList dhcpcdArguments;
+ QNetworkConfigurationManager configurationManager;
+ QNetworkAccessManager *accessManager;
+ int numberOfProcesses;
+
+ void handleNewInput(QLocalSocket * client);
+
+ void runDHCPCD(QList<QString> &interfaces);
+ void runDHCPCD(QString interface);
+ QList<QString>checkCarrierState(QList<QString> &interfaces);
+ bool checkCarrierState(QString interface);
+ void checkInternetConnection(QString ifName);
+ void checkInternetConnection(QList<QString> &interfaces);
+ void checkInternetConnectionViaTCP(QString ifName);
+ QList<QString> getListOfNetworkInterfaces();
+ bool checkBlackList(QString i);
+
+};
+
+#endif // LOGRECEIVER_H