From 1a88507a1b7294e6288e64bbd326c9ef923f656e Mon Sep 17 00:00:00 2001 From: Niklas Date: Thu, 29 Sep 2011 15:48:11 +0200 Subject: 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 --- LogReceiver/ndgui.cpp | 12 ------------ LogReceiver/networkdiscovery.cpp | 17 +++++++++++++++++ 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 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 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 NetworkDiscovery::checkCarrierState(QList &interfaces) { QList 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 #include +#include #include #include #include @@ -93,6 +94,7 @@ private: void runDHCPCD(QString interface); QListcheckCarrierState(QList &interfaces); bool checkCarrierState(QString interface); + bool checkForIsRunning(QNetworkInterface networkInterface); bool checkConnectivity(QString ifName); bool checkConnectivityViaTcp(QString server); QList getListOfNetworkInterfaces(); -- cgit v1.2.3-55-g7522