summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNiklas2011-08-16 14:32:01 +0200
committerNiklas2011-08-16 14:32:01 +0200
commit3069686075559d7bfce594c40e919a0b1683a064 (patch)
tree21e81b5ace87f013a4c3efb140bb22d82f9fabf6
parentadded some log statements to the dhcpcd client. But unfortunately it seems th... (diff)
downloadfbgui-3069686075559d7bfce594c40e919a0b1683a064.tar.gz
fbgui-3069686075559d7bfce594c40e919a0b1683a064.tar.xz
fbgui-3069686075559d7bfce594c40e919a0b1683a064.zip
new function for checkInternetConnection, check with sessions for each config and test if you can get a valid response with a qhostInfo
-rwxr-xr-xworkspace/LogReceiver/LogReceiverbin69772 -> 74661 bytes
-rw-r--r--workspace/LogReceiver/logreceiver.cpp25
-rw-r--r--workspace/LogReceiver/logreceiver.h3
3 files changed, 25 insertions, 3 deletions
diff --git a/workspace/LogReceiver/LogReceiver b/workspace/LogReceiver/LogReceiver
index 9119d96..f60254e 100755
--- a/workspace/LogReceiver/LogReceiver
+++ b/workspace/LogReceiver/LogReceiver
Binary files differ
diff --git a/workspace/LogReceiver/logreceiver.cpp b/workspace/LogReceiver/logreceiver.cpp
index 60e8b5c..2f41e08 100644
--- a/workspace/LogReceiver/logreceiver.cpp
+++ b/workspace/LogReceiver/logreceiver.cpp
@@ -55,8 +55,8 @@ void LogReceiver::initAndRun(QString serverPath,
dhcpcdArguments.append(*args);
}
- dhcpcdArguments.append("-d");
- QString ifName("eth1");
+ //dhcpcdArguments.append("-d");
+ QString ifName("eth0");
runDHCPCD(ifName);
}
@@ -280,6 +280,25 @@ bool LogReceiver::checkCarrierState(QString interface) {
}
+void LogReceiver::checkInternetConnection(/*QList<QNetworkInterface> &interfaces*/) {
+ qDebug() << "check internet connection";
+ QList<QNetworkConfiguration> allConfigs = manager.allConfigurations(QNetworkConfiguration::Discovered);
+ foreach(QNetworkConfiguration nC, allConfigs) {
+ qDebug() << nC.name();
+ if(nC.isValid()) {
+ qDebug() << "config is valid";
+ qDebug() << "try to open a new session";
+ QNetworkSession session = new QNetworkSession(nC, this);
+ conntect(session,SIGNAL(error), this, SLOT(handleSessionError()));
+ conntect(session,SIGNAL(opened), this, SLOT(handleSessionOpened()));
+ session.open();
+ session.waitForOpened();
+
+ }
+ }
+ qDebug() << "check internet connection done";
+}
+
void LogReceiver::handleProcessFinished(int exitCode,
QProcess::ExitStatus exitStatus) {
@@ -291,6 +310,7 @@ void LogReceiver::handleProcessFinished(int exitCode,
}
else {
qDebug() << "process finished: " << client->pid() << exitCode << exitStatus;
+ checkInternetConnection();
}
}
@@ -299,7 +319,6 @@ void LogReceiver::handleProcessStarted() {
}
-
bool LogReceiver::checkBlackList(QString i) {
if (i.startsWith("v", Qt::CaseInsensitive)) {
return true;
diff --git a/workspace/LogReceiver/logreceiver.h b/workspace/LogReceiver/logreceiver.h
index 561b406..fb65d58 100644
--- a/workspace/LogReceiver/logreceiver.h
+++ b/workspace/LogReceiver/logreceiver.h
@@ -3,6 +3,7 @@
#include <qprocess.h>
#include <qnetworkinterface.h>
+#include <qnetworkconfigmanager.h>
class QLocalServer;
class QLocalSocket;
@@ -41,12 +42,14 @@ private:
QMap<Q_PID, QProcess * > clientProcesses;
QString pathToDhcpcdExe;
QStringList dhcpcdArguments;
+ QNetworkConfigurationManager manager;
void runDHCPCD(QList<QNetworkInterface> &interfaces);
void runDHCPCD(QString interface);
void checkCarrierState(QList<QNetworkInterface> &interfaces);
bool checkCarrierState(QString interface);
+ void checkInternetConnection(/*QList<QNetworkInterface> &interfaces*/);
QList<QNetworkInterface> getListOfNetworkInterfaces();
bool checkBlackList(QString i);