From 5aa568daae23daa7ac190e56df469e9566075257 Mon Sep 17 00:00:00 2001 From: Niklas Date: Mon, 10 Oct 2011 17:08:35 +0200 Subject: new veriosn of the fbgui src (same as in fbgui-ng) combined with my networkDiscovery in front. --- src/networkdiscovery.h | 110 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 src/networkdiscovery.h (limited to 'src/networkdiscovery.h') diff --git a/src/networkdiscovery.h b/src/networkdiscovery.h new file mode 100644 index 0000000..49ac731 --- /dev/null +++ b/src/networkdiscovery.h @@ -0,0 +1,110 @@ +#ifndef NetworkDiscovery_H +#define NetworkDiscovery_H + +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include "loggerengine.h" +#include "interfaceconfiguration.h" +#include "networkmanager.h" + +#include "../common/fbgui.h" + +#include "dhcp.h" + + +#define DEFAULT_QTSOCKETADDRESS "/var/tmp/qt_c_socket_default" +#define DEFAULT_PATHTODHCPCDEXE "/home/niklas/fbgui/customdhcpcd/src/build/cdhcpcd" + +class NetworkDiscovery: public QObject { +Q_OBJECT + +public: + NetworkDiscovery(QObject *parent=0); + ~NetworkDiscovery(); + + void initAndRun(QString serverIp, bool userChoice, + bool autoUp, + QString pathToLogFile, + QString serverPath = DEFAULT_QTSOCKETADDRESS, + QString pathToExe = DEFAULT_PATHTODHCPCDEXE, + QStringList* args = NULL); + int ip4_replaceDefaultRoute(QString ifName, QString gateway, int mss); + QString getGatewayForInterface(QString ifName); + + int ip4_setManualConfiguration(QVariantMap result); + QString readLogFile(); + +private slots: + void handleNewConnection(); + void handleNewInput(); + void handleNewInputLine(QLocalSocket * client, QString data); + void handleProcessFinished(int exitCode, QProcess::ExitStatus exitStatus); + void handleProcessStarted(); + void handleClientDisconnect(); + + void slotReadyForRun(); + + void checkForIsRunning(); + + +signals: + void addInterface(const QString &ifName); + void changeProgressBarValue(const QString & ifName, const int $newValue); + void connectionEstablished(QString ifName); + void abortBoot(QString msg); + void updateStatusLabel(QString ifName, QString status); + void allProcessesFinished(); + void continueBoot(QString ifName, int userChoice); + void setManualConfInterfaces(QString jsonArr); + + void readyForRun(); + +private: + QString _tag; + QLocalServer *_server; + QMap _clients; + QLocalSocket * _client; + QMap _ifNameToClient; + QMap _clientProcessToIfNameMap; + QString _pathToDhcpcdExe; + QStringList _dhcpcdArguments; + int _numberOfProcesses; + NetworkManager _networkManager; + bool _userChoice; + bool _blocked; + bool _autoUp; + QString _serverIp; + QString _pathToLogFile; + QList _ifUpList; + QList _ifDownList; + int _ifUpCountdown; + QTimer* _timer; + + QMap _ifcMap; + + void handleNewInput(QLocalSocket * client); + + void runDHCPCD(QList &interfaces); + void runDHCPCD(QString interface); + + bool checkCarrierState(QString interface); + bool checkConnectivity(QString ifName); + bool checkConnectivityViaTcp(QString server); + bool checkBlackList(QString i); + + void getListOfNetworkInterfaces(); + void getListOfNetworkInterfacesWithAutoUp(); + + +}; + +#endif // NetworkDiscovery_H -- cgit v1.2.3-55-g7522