From 3887fc87ebfea2e8acc6b440b4c7a49b0feb1975 Mon Sep 17 00:00:00 2001 From: ShaneSmiskol Date: Wed, 30 Jun 2021 23:35:09 -0700 Subject: [PATCH] don't try to use adapter when not available --- selfdrive/ui/qt/offroad/wifiManager.cc | 18 ++++++++++++------ selfdrive/ui/qt/offroad/wifiManager.h | 3 ++- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/selfdrive/ui/qt/offroad/wifiManager.cc b/selfdrive/ui/qt/offroad/wifiManager.cc index 0e55b0eacb..ad0bec8986 100644 --- a/selfdrive/ui/qt/offroad/wifiManager.cc +++ b/selfdrive/ui/qt/offroad/wifiManager.cc @@ -266,7 +266,7 @@ void WifiManager::deactivateConnection(const QString &ssid) { nm.setTimeout(dbus_timeout); QDBusObjectPath pth = get_response(nm.call("Get", connection_iface, "SpecificObject")); - if (pth.path() != "" && pth.path() != "/") { + if (validPath(pth.path())) { QString Ssid = get_property(pth.path(), "Ssid"); if (Ssid == ssid) { QDBusInterface nm2(nm_service, nm_path, nm_iface, bus); @@ -314,6 +314,10 @@ bool WifiManager::isWirelessAdapter(const QDBusObjectPath &path) { return deviceType == device_type_wifi; } +bool WifiManager::validPath(const QString &path) { + return !path.isEmpty() && path != "/"; +} + void WifiManager::requestScan() { QDBusInterface nm(nm_service, adapter, wireless_device_iface, bus); nm.setTimeout(dbus_timeout); @@ -395,7 +399,7 @@ void WifiManager::propertyChange(const QString &interface, const QVariantMap &pr } void WifiManager::deviceAdded(const QDBusObjectPath &path) { - if (isWirelessAdapter(path) && (adapter.isEmpty() || adapter == "/")) { + if (isWirelessAdapter(path) && !validPath(adapter)) { adapter = path.path(); setup(); } @@ -412,7 +416,7 @@ void WifiManager::newConnection(const QDBusObjectPath &path) { void WifiManager::disconnect() { QString active_ap = get_active_ap(); - if (active_ap != "" && active_ap != "/") { + if (validPath(active_ap)) { deactivateConnection(get_property(active_ap, "Ssid")); } } @@ -500,9 +504,11 @@ void WifiManager::disableTethering() { } bool WifiManager::tetheringEnabled() { - QString active_ap = get_active_ap(); - if (active_ap != "" && active_ap != "/") { - return get_property(active_ap, "Ssid") == tethering_ssid; + if (validPath(adapter)) { + QString active_ap = get_active_ap(); + if (validPath(active_ap)) { + return get_property(active_ap, "Ssid") == tethering_ssid; + } } return false; } diff --git a/selfdrive/ui/qt/offroad/wifiManager.h b/selfdrive/ui/qt/offroad/wifiManager.h index 9913bab7a8..e01bf99481 100644 --- a/selfdrive/ui/qt/offroad/wifiManager.h +++ b/selfdrive/ui/qt/offroad/wifiManager.h @@ -33,7 +33,7 @@ public: void requestScan(); QVector seen_networks; QMap knownConnections; - QString ipv4_address; + QString ipv4_address = ""; void refreshNetworks(); void forgetConnection(const QString &ssid); @@ -64,6 +64,7 @@ private: QString getAdapter(); bool isWirelessAdapter(const QDBusObjectPath &path); + bool validPath(const QString &path); QString get_ipv4_address(); QList get_networks(); void connect(const QByteArray &ssid, const QString &username, const QString &password, SecurityType security_type);