From 3069686075559d7bfce594c40e919a0b1683a064 Mon Sep 17 00:00:00 2001 From: Niklas Date: Tue, 16 Aug 2011 14:32:01 +0200 Subject: new function for checkInternetConnection, check with sessions for each config and test if you can get a valid response with a qhostInfo --- workspace/LogReceiver/LogReceiver | Bin 69772 -> 74661 bytes workspace/LogReceiver/logreceiver.cpp | 25 ++++++++++++++++++++++--- workspace/LogReceiver/logreceiver.h | 3 +++ 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/workspace/LogReceiver/LogReceiver b/workspace/LogReceiver/LogReceiver index 9119d96..f60254e 100755 Binary files a/workspace/LogReceiver/LogReceiver and b/workspace/LogReceiver/LogReceiver 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 &interfaces*/) { + qDebug() << "check internet connection"; + QList 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 #include +#include class QLocalServer; class QLocalSocket; @@ -41,12 +42,14 @@ private: QMap clientProcesses; QString pathToDhcpcdExe; QStringList dhcpcdArguments; + QNetworkConfigurationManager manager; void runDHCPCD(QList &interfaces); void runDHCPCD(QString interface); void checkCarrierState(QList &interfaces); bool checkCarrierState(QString interface); + void checkInternetConnection(/*QList &interfaces*/); QList getListOfNetworkInterfaces(); bool checkBlackList(QString i); -- cgit v1.2.3-55-g7522