Index: sources/view/settings/VNetworkModel.cpp =================================================================== diff -u -r5b46bc8e4724e4ddb648f901d76bb7ec24f8b6c7 -r2ef03b2ce51b4dc507f66e9671953a8e0824bde9 --- sources/view/settings/VNetworkModel.cpp (.../VNetworkModel.cpp) (revision 5b46bc8e4724e4ddb648f901d76bb7ec24f8b6c7) +++ sources/view/settings/VNetworkModel.cpp (.../VNetworkModel.cpp) (revision 2ef03b2ce51b4dc507f66e9671953a8e0824bde9) @@ -1,13 +1,13 @@ /*! * - * Copyright (c) 2021-2023 Diality Inc. - All Rights Reserved. + * Copyright (c) 2021-2024 Diality Inc. - All Rights Reserved. * \copyright * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * * \file VNetworkModel.cpp * \author (last) Behrouz NematiPour - * \date (last) 23-Nov-2022 + * \date (last) 08-Dec-2023 * \author (original) Behrouz NematiPour * \date (original) 11-May-2021 * @@ -26,6 +26,7 @@ VNetworkModel::VNetworkModel(QAbstractListModel *parent) : QAbstractListModel(parent) { startTimer(_interval); initConnections(); + _devWlan = WifiInterface::iface(); } /*! @@ -91,8 +92,6 @@ connect(this, SIGNAL(didRequestSetDNS (const QString &)), &_WifiInterface, SLOT( doRequestSetDNS (const QString &))); - - } /*! @@ -170,6 +169,8 @@ return network.signalLevel(); case NetworkSupportedRole: { bool isSecurityTypeSupported = (!network.securityTypes().contains(MWifiNetwork::SECURITY_TYPE::WEP) && + !network.securityTypes().contains(MWifiNetwork::SECURITY_TYPE::WPA_TKIP) && + !network.securityTypes().contains(MWifiNetwork::SECURITY_TYPE::WPA_TKIP_AES) && !network.securityTypes().contains(MWifiNetwork::SECURITY_TYPE::UNSUPPORTED)); bool isPasswordProtected = network.requirePassword(); return isSecurityTypeSupported && isPasswordProtected; @@ -403,7 +404,13 @@ { const QNetworkInterface dev = QNetworkInterface::interfaceFromName(_devEth); QString devIP = tr("No Ethernet"); - if ( dev.isValid() ) { + + // The QNetworkInterface object can be valid, but not running+up. + // Check the object's flags to determine running+up state. + bool eth0IsUp = dev.flags().testFlag(QNetworkInterface::IsUp ); + bool eth0IsRunning = dev.flags().testFlag(QNetworkInterface::IsRunning); + + if ( dev.isValid() && (eth0IsUp && eth0IsRunning)) { auto addresses = dev.addressEntries(); if ( addresses.count() ) { devIP = addresses.first().ip().toString();