Index: sources/device/DeviceController.cpp =================================================================== diff -u -raad4ef16cb210459b60d16aa01a4dcbd909d9a1f -r3ee91a030e9affe0a50acdee33520c985c05d779 --- sources/device/DeviceController.cpp (.../DeviceController.cpp) (revision aad4ef16cb210459b60d16aa01a4dcbd909d9a1f) +++ sources/device/DeviceController.cpp (.../DeviceController.cpp) (revision 3ee91a030e9affe0a50acdee33520c985c05d779) @@ -253,27 +253,30 @@ */ void DeviceController::checkWiFi() { - QString mIP = tr("WiFi Connection Error"); + if ( ! _wifiAvailable) { + emit didWiFiData(tr("WiFi Connection Error")); + return; + } - if (_wifiValid) { - mIP = tr("No WiFi"); - const QNetworkInterface dev = QNetworkInterface::interfaceFromName("wlan0"); + const QNetworkInterface dev = QNetworkInterface::interfaceFromName("wlan0"); + if ( ! dev.isValid() ) { + emit didWiFiData(tr("No WiFi")); + return; + } - if ( dev.isValid() ) { - auto addresses = dev.addressEntries(); + QList addresses = dev.addressEntries(); + if ( addresses.isEmpty() ) { + emit didWiFiData(tr("WiFi Not Connected")); + return; + } - if ( addresses.count() ) { - if ( dev.flags().testFlag(QNetworkInterface::IsUp) && dev.flags().testFlag(QNetworkInterface::IsRunning) ) { - mIP = addresses.first().ip().toString(); - } - else { - mIP = tr("WiFi Not Connected"); - } - } - } + if ( ! (dev.flags().testFlag(QNetworkInterface::IsUp) && + dev.flags().testFlag(QNetworkInterface::IsRunning))) { + emit didWiFiData(tr("WiFi Not Connected")); + return; } - emit didWiFiData(mIP); + emit didWiFiData(addresses.first().ip().toString()); } /*! @@ -1063,7 +1066,7 @@ */ void DeviceController::wifiInfoRequest() { - // ----- check that script exists. + // ----- check that script exists. QString script; if ( checkError( DeviceError::checkScript(script, Scripts_Wifi_Info), _deviceWifiInfoResponse, script) ) return; @@ -1079,8 +1082,6 @@ TimedProcess *timedProcess = new TimedProcess(&_processWifiInfo, script, timeout_ms, {}); timedProcess->start(); - _wifiValid = true; - MDeviceWifiInfoResponse model; model._data.mCompleted = false; model._data.mAccepted = false; @@ -1104,6 +1105,7 @@ } } else { + _wifiAvailable = true; processWifiInfoComplete(model, vExitCode, vStatus); emit didAttributeResponse(model.data()); model._data.clear();