diff options
| author | Niklas | 2011-09-23 14:08:55 +0200 |
|---|---|---|
| committer | Niklas | 2011-09-23 14:08:55 +0200 |
| commit | 0216e9aadb7e794037d3cf553b05474de8322a74 (patch) | |
| tree | fb4c699a56a459d9f4b628a5f66b19796de23f5c /LogReceiver/networkdiscovery.h | |
| parent | changed the css file for the networkdiscovery. now it looks a bit nicer (diff) | |
| download | fbgui-0216e9aadb7e794037d3cf553b05474de8322a74.tar.gz fbgui-0216e9aadb7e794037d3cf553b05474de8322a74.tar.xz fbgui-0216e9aadb7e794037d3cf553b05474de8322a74.zip | |
renamed the logreceiver to networkdiscovery and deleted the abortbootdialog and chooseinterfacedialog since this is now implemented via html/css/jquery
Diffstat (limited to 'LogReceiver/networkdiscovery.h')
| -rw-r--r-- | LogReceiver/networkdiscovery.h | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/LogReceiver/networkdiscovery.h b/LogReceiver/networkdiscovery.h new file mode 100644 index 0000000..9a1441d --- /dev/null +++ b/LogReceiver/networkdiscovery.h @@ -0,0 +1,98 @@ +#ifndef NetworkDiscovery_H +#define NetworkDiscovery_H + +//#include <QMap> +#include <QtNetwork> +#include <QtCore> +//#include <QProcess> + +#include <arpa/inet.h> +#include <stdio.h> +#include <string.h> +#include <stdlib.h> +#include <syslog.h> +#include <sysfs/libsysfs.h> + +#include "interfaceconfiguration.h" +#include "routemanager.h" +//#include <qlocalserver.h> +//#include <qlocalsocket.h> +#include "status.h" +#include "dhcp.h" +#include "interface.h" + +//#include <QProcess> +//#include <QLocalSocket> +//#include <QLocalServer> +//#include <QTcpSocket> +//#include <QSsl> +#include <QNetworkConfigurationManager> +//#include <QNetworkAccessManager> +#include <QWidget> + + +#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_" +#define ACK_SIZE 4 + +class NetworkDiscovery: public QObject { +Q_OBJECT + +public: + NetworkDiscovery(QObject *parent=0); + ~NetworkDiscovery(); + + void initAndRun(QString serverPath = DEFAULT_QTSOCKETADDRESS, + QString pathToExe = DEFAULT_PATHTODHCPCDEXE, + QStringList* args = NULL); + int replaceDefaultRoute(QString &ifName, QString &gateway, int af, int mss); + +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 addInterface(const QString &ifName); + void changeProgressBarValue(const QString & ifName, const int $newValue); + void connectionEstablished(interfaceconfiguration *ifConf); + void abortBoot(QString msg); + void updateStatusLabel(QString ifName, QString status); + void allProcessesFinished(); + void continueBoot(QString ifName, bool userChoice); + +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; + routemanager rm; + bool _userChoice; + bool _blocked; + + void handleNewInput(QLocalSocket * client); + + void runDHCPCD(QList<QString> &interfaces); + void runDHCPCD(QString interface); + QList<QString>checkCarrierState(QList<QString> &interfaces); + bool checkCarrierState(QString interface); + bool checkConnectivity(QString ifName); + QList<QString> getListOfNetworkInterfaces(); + bool checkBlackList(QString i); + +}; + +#endif // NetworkDiscovery_H |
