diff options
author | Niklas | 2011-09-29 15:48:11 +0200 |
---|---|---|
committer | Niklas | 2011-09-29 15:48:11 +0200 |
commit | 1a88507a1b7294e6288e64bbd326c9ef923f656e (patch) | |
tree | 4210a9a2c201d91112d895c743a8ef773df3b24a | |
parent | did some refactoring. added a user choice screen which is shown 2 seconds bef... (diff) | |
download | fbgui-1a88507a1b7294e6288e64bbd326c9ef923f656e.tar.gz fbgui-1a88507a1b7294e6288e64bbd326c9ef923f656e.tar.xz fbgui-1a88507a1b7294e6288e64bbd326c9ef923f656e.zip |
tried to solve the timing problem. but failed. it is also enough to test for the isRunning flag in order to get informations about pluged state
-rw-r--r-- | LogReceiver/ndgui.cpp | 12 | ||||
-rw-r--r-- | LogReceiver/networkdiscovery.cpp | 17 | ||||
-rw-r--r-- | LogReceiver/networkdiscovery.h | 2 |
3 files changed, 19 insertions, 12 deletions
diff --git a/LogReceiver/ndgui.cpp b/LogReceiver/ndgui.cpp index be01224..eafc2f6 100644 --- a/LogReceiver/ndgui.cpp +++ b/LogReceiver/ndgui.cpp @@ -116,18 +116,6 @@ void ndgui::showLog() { QVariantList ndgui::getManualConfInterfaces() { qDebug() << "call getManualConfInterfaces"; - /* - QString jsonArr(""); - if(_manConfList.size() > 0) { - jsonArr = "["; - for(int i = 0; i < _manConfList.size()-1; i++) { - jsonArr += "'" + _manConfList.value(i) + "',"; - } - jsonArr += "'" + _manConfList.last() + "']"; - - } - qDebug() << "value of jsonArr:" << jsonArr; - */ QVariantList jsonArr; foreach (QString s, _manConfList) { QVariant e(s); diff --git a/LogReceiver/networkdiscovery.cpp b/LogReceiver/networkdiscovery.cpp index a526a6f..ee0b5ad 100644 --- a/LogReceiver/networkdiscovery.cpp +++ b/LogReceiver/networkdiscovery.cpp @@ -154,6 +154,11 @@ QList<QString> NetworkDiscovery::getListOfNetworkInterfaces() { if(!(nI.flags() & QNetworkInterface::IsUp)) { _networkManager.bringInterfaceUP(nI.humanReadableName()); } + /* + * if(!checkForIsRunning(nI)) { + continue; + } + */ if (!checkCarrierState(nI.humanReadableName())) { continue; } @@ -166,6 +171,18 @@ QList<QString> NetworkDiscovery::getListOfNetworkInterfaces() { return result; } +bool NetworkDiscovery::checkForIsRunning(QNetworkInterface networkInterface) { + bool retval = false; + for (int i = 0; i < 4; i++) { + retval = (networkInterface.flags() & QNetworkInterface::IsRunning); + if(retval) { + return retval; + } + sleep(1); + } + return retval; +} + QList<QString> NetworkDiscovery::checkCarrierState(QList<QString> &interfaces) { QList<QString> result; foreach(QString nI, interfaces) diff --git a/LogReceiver/networkdiscovery.h b/LogReceiver/networkdiscovery.h index 913a5b4..4a9bc3c 100644 --- a/LogReceiver/networkdiscovery.h +++ b/LogReceiver/networkdiscovery.h @@ -8,6 +8,7 @@ #include <arpa/inet.h> #include <stdio.h> +#include <unistd.h> #include <string.h> #include <stdlib.h> #include <syslog.h> @@ -93,6 +94,7 @@ private: void runDHCPCD(QString interface); QList<QString>checkCarrierState(QList<QString> &interfaces); bool checkCarrierState(QString interface); + bool checkForIsRunning(QNetworkInterface networkInterface); bool checkConnectivity(QString ifName); bool checkConnectivityViaTcp(QString server); QList<QString> getListOfNetworkInterfaces(); |