#ifndef LOGRECEIVER_H #define LOGRECEIVER_H #include #include #include #include #include #include #include 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/customdhcpcd/src/customdhcpcd" #define DEFAULT_GATEWAY_INFO_LOCATION "/var/tmp/gateways_" 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 interfacesMap; //QMap indexToIfaceNameMap; QMap clients; QLocalSocket * client; QMap ifNameToClient; QMap clientProcessToIfNameMap; QString pathToDhcpcdExe; QStringList dhcpcdArguments; QNetworkConfigurationManager configurationManager; QNetworkAccessManager *accessManager; int numberOfProcesses; void handleNewInput(QLocalSocket * client); void runDHCPCD(QList &interfaces); void runDHCPCD(QString interface); QListcheckCarrierState(QList &interfaces); bool checkCarrierState(QString interface); void checkInternetConnection(QString ifName); void checkInternetConnection(QList &interfaces); void checkInternetConnectionViaTCP(QString ifName); void checkConnectivity(QString ifName); QList getListOfNetworkInterfaces(); bool checkBlackList(QString i); }; #endif // LOGRECEIVER_H