Check for internet connection in prepare viewmodule.

This commit is contained in:
Teo Mrnjavac 2014-08-25 14:21:10 +02:00
parent b32bbf2b9a
commit 26419f2c8a
3 changed files with 26 additions and 2 deletions

View file

@ -26,6 +26,8 @@
#include "utils/Logger.h"
#include <QBoxLayout>
#include <QDBusConnection>
#include <QDBusInterface>
#include <QLabel>
#include <QProcess>
@ -238,6 +240,24 @@ PrepareViewStep::checkHasPower()
bool
PrepareViewStep::checkHasInternet()
{
return false;
const QString NM_INTF_NAME( "org.freedesktop.NetworkManager" );
const int NM_STATE_CONNECTED_GLOBAL = 70;
QDBusInterface nmIntf( "org.freedesktop.NetworkManager",
"/org/freedesktop/NetworkManager",
NM_INTF_NAME,
QDBusConnection::systemBus(), 0 );
bool ok = false;
int nmState = nmIntf.property( "state" ).toInt( &ok );
if ( !ok || !nmIntf.isValid() )
{
// We can't talk to NM, so no idea. Wild guess: we're connected
// using ssh with X forwarding, and are therefore connected. This
// allows us to proceed with a minimum of complaint.
return true;
}
return nmState == NM_STATE_CONNECTED_GLOBAL;
}