diff options
Diffstat (limited to 'LogReceiver/logreceiver.h')
-rw-r--r-- | LogReceiver/logreceiver.h | 74 |
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 |