From 1fd41f27283c849b7e9cedf46f70336dcbe37c12 Mon Sep 17 00:00:00 2001 From: jincysam87 <167995204+jincysam87@users.noreply.github.com> Date: Thu, 7 May 2026 13:43:42 -0400 Subject: [PATCH 01/38] Update NetworkManagerGnomeProxy.cpp --- plugin/gnome/NetworkManagerGnomeProxy.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin/gnome/NetworkManagerGnomeProxy.cpp b/plugin/gnome/NetworkManagerGnomeProxy.cpp index b661a8de..ac74072b 100644 --- a/plugin/gnome/NetworkManagerGnomeProxy.cpp +++ b/plugin/gnome/NetworkManagerGnomeProxy.cpp @@ -1011,7 +1011,7 @@ namespace WPEFramework } nmEvent->setwifiScanOptions(true); - if(wifi->wifiScanRequest(m_filterSsidslist.size() == 1 ? m_filterSsidslist[0] : "")) + if(wifi->wifiScanRequest(m_filterSsidslist)) rc = Core::ERROR_NONE; return rc; } From 3e1b4575e2ee0482dc31bb45c91bc2704ad1fb62 Mon Sep 17 00:00:00 2001 From: jincysam87 <167995204+jincysam87@users.noreply.github.com> Date: Thu, 7 May 2026 13:54:58 -0400 Subject: [PATCH 02/38] Update NetworkManagerGnomeWIFI.cpp --- plugin/gnome/NetworkManagerGnomeWIFI.cpp | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/plugin/gnome/NetworkManagerGnomeWIFI.cpp b/plugin/gnome/NetworkManagerGnomeWIFI.cpp index 2348124d..2f860559 100644 --- a/plugin/gnome/NetworkManagerGnomeWIFI.cpp +++ b/plugin/gnome/NetworkManagerGnomeWIFI.cpp @@ -1685,7 +1685,7 @@ namespace WPEFramework g_main_loop_quit(_wifiManager->m_loop); } - bool wifiManager::wifiScanRequest(std::string ssidReq) + bool wifiManager::wifiScanRequest(std::vector ssidsToFilter) { if(!createClientNewConnection()) return false; @@ -1696,23 +1696,29 @@ namespace WPEFramework return false; } m_isSuccess = false; - if(!ssidReq.empty()) + if(!ssidsToFilter.empty()) { - NMLOG_INFO("starting wifi scanning .. %s", ssidReq.c_str()); + NMLOG_INFO("Starting wifi scanning for %d SSIDs:", ssidsToFilter.size()); + for (size_t i = 0; i < ssidsToFilter.size(); ++i) + { + NMLOG_INFO("SSID-%d:%s", i+1, ssidsToFilter[i].c_str()"); + } GVariantBuilder builder, array_builder; GVariant *options; g_variant_builder_init(&builder, G_VARIANT_TYPE_VARDICT); g_variant_builder_init(&array_builder, G_VARIANT_TYPE("aay")); - g_variant_builder_add(&array_builder, "@ay", - g_variant_new_fixed_array(G_VARIANT_TYPE_BYTE, (const guint8 *) ssidReq.c_str(), ssidReq.length(), 1) - ); + for (const auto& ssid : ssidsToFilter) { + g_variant_builder_add(&array_builder, "@ay", + g_variant_new_fixed_array(G_VARIANT_TYPE_BYTE, (const guint8 *) ssid.c_str(), ssid.length(), 1) + ); + } g_variant_builder_add(&builder, "{sv}", "ssids", g_variant_builder_end(&array_builder)); options = g_variant_builder_end(&builder); nm_device_wifi_request_scan_options_async(wifiDevice, options, m_cancellable, wifiScanCb, this); g_variant_unref(options); // Unreference the GVariant after passing it to the async function } else { - NMLOG_INFO("staring normal wifi scanning .."); + NMLOG_INFO("Starting normal wifi scanning .."); nm_device_wifi_request_scan_async(wifiDevice, m_cancellable, wifiScanCb, this); } wait(m_loop); From e0ed060df6494c85acc18087b9b02d257f24720e Mon Sep 17 00:00:00 2001 From: jincysam87 <167995204+jincysam87@users.noreply.github.com> Date: Thu, 7 May 2026 13:55:46 -0400 Subject: [PATCH 03/38] Update NetworkManagerGnomeWIFI.h --- plugin/gnome/NetworkManagerGnomeWIFI.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin/gnome/NetworkManagerGnomeWIFI.h b/plugin/gnome/NetworkManagerGnomeWIFI.h index 51164aa5..1f9934ba 100644 --- a/plugin/gnome/NetworkManagerGnomeWIFI.h +++ b/plugin/gnome/NetworkManagerGnomeWIFI.h @@ -54,7 +54,7 @@ namespace WPEFramework bool activateKnownConnection(std::string iface, std::string knowConnectionID=""); bool wifiConnectedSSIDInfo(Exchange::INetworkManager::WiFiSSIDInfo &ssidinfo); bool wifiConnect(const Exchange::INetworkManager::WiFiConnectTo &ssidInfo); - bool wifiScanRequest(std::string ssidReq = ""); + bool wifiScanRequest(std::vector ssidsToFilter = {}); bool isWifiScannedRecently(int timelimitInSec = 5); // default 5 sec as shotest scanning interval bool getKnownSSIDs(std::list& ssids); bool addToKnownSSIDs(const Exchange::INetworkManager::WiFiConnectTo &ssidinfo); From 5448555cf4c01a1bbf89dc7a37ce75d60369e0f9 Mon Sep 17 00:00:00 2001 From: jincysam87 <167995204+jincysam87@users.noreply.github.com> Date: Thu, 7 May 2026 14:07:22 -0400 Subject: [PATCH 04/38] Update NetworkManagerGnomeWIFI.cpp --- plugin/gnome/NetworkManagerGnomeWIFI.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin/gnome/NetworkManagerGnomeWIFI.cpp b/plugin/gnome/NetworkManagerGnomeWIFI.cpp index 2f860559..84610841 100644 --- a/plugin/gnome/NetworkManagerGnomeWIFI.cpp +++ b/plugin/gnome/NetworkManagerGnomeWIFI.cpp @@ -1701,7 +1701,7 @@ namespace WPEFramework NMLOG_INFO("Starting wifi scanning for %d SSIDs:", ssidsToFilter.size()); for (size_t i = 0; i < ssidsToFilter.size(); ++i) { - NMLOG_INFO("SSID-%d:%s", i+1, ssidsToFilter[i].c_str()"); + NMLOG_INFO("MYTESTSSID-%d:%s", i+1, ssidsToFilter[i].c_str()); } GVariantBuilder builder, array_builder; GVariant *options; From 17d1c07dfcf28442743b19d3bec3978ee3958ba8 Mon Sep 17 00:00:00 2001 From: jincysam87 <167995204+jincysam87@users.noreply.github.com> Date: Fri, 8 May 2026 11:24:37 -0400 Subject: [PATCH 05/38] Update NetworkManagerImplementation.cpp --- plugin/NetworkManagerImplementation.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/plugin/NetworkManagerImplementation.cpp b/plugin/NetworkManagerImplementation.cpp index b4b5bca6..daca6573 100644 --- a/plugin/NetworkManagerImplementation.cpp +++ b/plugin/NetworkManagerImplementation.cpp @@ -607,8 +607,13 @@ namespace WPEFramework if (!m_filterfrequency.empty()) { filterFreq = std::stod(m_filterfrequency); + NMLOG_INFO("MYTEST: filterFreq =%f", filterFreq); } - + else + { + NMLOG_INFO("MYTEST: filterFreq is empty); + } + for (int i = 0; i < ssids.Length(); i++) { JsonObject object = ssids[i].Object(); @@ -619,7 +624,7 @@ namespace WPEFramework double frequencyValue = std::stod(frequency); bool ssidMatches = scanForSsidsSet.empty() || scanForSsidsSet.find(ssid) != scanForSsidsSet.end(); bool freqMatches = m_filterfrequency.empty() || (filterFreq == frequencyValue); - + NMLOG_INFO("MYTEST: freqMatches =%d frequencyValue=%s", freqMatches , frequencyValue.c_str()); if (ssidMatches && freqMatches) result.Add(object); } From c79bae1340551fd5b6a2db115e74d59e86437ea5 Mon Sep 17 00:00:00 2001 From: jincysam87 <167995204+jincysam87@users.noreply.github.com> Date: Fri, 8 May 2026 11:49:08 -0400 Subject: [PATCH 06/38] Update NetworkManagerImplementation.cpp --- plugin/NetworkManagerImplementation.cpp | 6 ------ 1 file changed, 6 deletions(-) diff --git a/plugin/NetworkManagerImplementation.cpp b/plugin/NetworkManagerImplementation.cpp index daca6573..7599a144 100644 --- a/plugin/NetworkManagerImplementation.cpp +++ b/plugin/NetworkManagerImplementation.cpp @@ -607,12 +607,7 @@ namespace WPEFramework if (!m_filterfrequency.empty()) { filterFreq = std::stod(m_filterfrequency); - NMLOG_INFO("MYTEST: filterFreq =%f", filterFreq); } - else - { - NMLOG_INFO("MYTEST: filterFreq is empty); - } for (int i = 0; i < ssids.Length(); i++) { @@ -624,7 +619,6 @@ namespace WPEFramework double frequencyValue = std::stod(frequency); bool ssidMatches = scanForSsidsSet.empty() || scanForSsidsSet.find(ssid) != scanForSsidsSet.end(); bool freqMatches = m_filterfrequency.empty() || (filterFreq == frequencyValue); - NMLOG_INFO("MYTEST: freqMatches =%d frequencyValue=%s", freqMatches , frequencyValue.c_str()); if (ssidMatches && freqMatches) result.Add(object); } From bb2d2113c3d4482df5c00a9552741c074a9809b5 Mon Sep 17 00:00:00 2001 From: jincysam87 <167995204+jincysam87@users.noreply.github.com> Date: Fri, 8 May 2026 11:50:24 -0400 Subject: [PATCH 07/38] Update NetworkManagerImplementation.cpp --- plugin/NetworkManagerImplementation.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/plugin/NetworkManagerImplementation.cpp b/plugin/NetworkManagerImplementation.cpp index 7599a144..4e36482c 100644 --- a/plugin/NetworkManagerImplementation.cpp +++ b/plugin/NetworkManagerImplementation.cpp @@ -619,6 +619,7 @@ namespace WPEFramework double frequencyValue = std::stod(frequency); bool ssidMatches = scanForSsidsSet.empty() || scanForSsidsSet.find(ssid) != scanForSsidsSet.end(); bool freqMatches = m_filterfrequency.empty() || (filterFreq == frequencyValue); + if (ssidMatches && freqMatches) result.Add(object); } From 96e92965b13ef0ad4c765ce9acb1829ad215b3c7 Mon Sep 17 00:00:00 2001 From: jincysam87 <167995204+jincysam87@users.noreply.github.com> Date: Fri, 8 May 2026 11:53:10 -0400 Subject: [PATCH 08/38] Update NetworkManagerImplementation.cpp --- plugin/NetworkManagerImplementation.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugin/NetworkManagerImplementation.cpp b/plugin/NetworkManagerImplementation.cpp index 4e36482c..b4b5bca6 100644 --- a/plugin/NetworkManagerImplementation.cpp +++ b/plugin/NetworkManagerImplementation.cpp @@ -608,7 +608,7 @@ namespace WPEFramework { filterFreq = std::stod(m_filterfrequency); } - + for (int i = 0; i < ssids.Length(); i++) { JsonObject object = ssids[i].Object(); @@ -619,7 +619,7 @@ namespace WPEFramework double frequencyValue = std::stod(frequency); bool ssidMatches = scanForSsidsSet.empty() || scanForSsidsSet.find(ssid) != scanForSsidsSet.end(); bool freqMatches = m_filterfrequency.empty() || (filterFreq == frequencyValue); - + if (ssidMatches && freqMatches) result.Add(object); } From 3a19acceccc0a318e6cc4dfe13d05882fc706504 Mon Sep 17 00:00:00 2001 From: jincysam87 <167995204+jincysam87@users.noreply.github.com> Date: Fri, 8 May 2026 11:56:30 -0400 Subject: [PATCH 09/38] Update NetworkManagerGnomeWIFI.cpp --- plugin/gnome/NetworkManagerGnomeWIFI.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/plugin/gnome/NetworkManagerGnomeWIFI.cpp b/plugin/gnome/NetworkManagerGnomeWIFI.cpp index 84610841..35b495d1 100644 --- a/plugin/gnome/NetworkManagerGnomeWIFI.cpp +++ b/plugin/gnome/NetworkManagerGnomeWIFI.cpp @@ -1699,10 +1699,6 @@ namespace WPEFramework if(!ssidsToFilter.empty()) { NMLOG_INFO("Starting wifi scanning for %d SSIDs:", ssidsToFilter.size()); - for (size_t i = 0; i < ssidsToFilter.size(); ++i) - { - NMLOG_INFO("MYTESTSSID-%d:%s", i+1, ssidsToFilter[i].c_str()); - } GVariantBuilder builder, array_builder; GVariant *options; g_variant_builder_init(&builder, G_VARIANT_TYPE_VARDICT); From ec5d3a29de54bd2ac60ea74ffeafb9101de09387 Mon Sep 17 00:00:00 2001 From: jincysam87 <167995204+jincysam87@users.noreply.github.com> Date: Fri, 8 May 2026 12:05:37 -0400 Subject: [PATCH 10/38] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- plugin/gnome/NetworkManagerGnomeWIFI.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin/gnome/NetworkManagerGnomeWIFI.cpp b/plugin/gnome/NetworkManagerGnomeWIFI.cpp index 35b495d1..df18837d 100644 --- a/plugin/gnome/NetworkManagerGnomeWIFI.cpp +++ b/plugin/gnome/NetworkManagerGnomeWIFI.cpp @@ -1685,7 +1685,7 @@ namespace WPEFramework g_main_loop_quit(_wifiManager->m_loop); } - bool wifiManager::wifiScanRequest(std::vector ssidsToFilter) + bool wifiManager::wifiScanRequest(const std::vector& ssidsToFilter) { if(!createClientNewConnection()) return false; From 216fb46048e438f654e102c9b08caf4866ef58ba Mon Sep 17 00:00:00 2001 From: jincysam87 <167995204+jincysam87@users.noreply.github.com> Date: Fri, 8 May 2026 12:13:41 -0400 Subject: [PATCH 11/38] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- plugin/gnome/NetworkManagerGnomeWIFI.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin/gnome/NetworkManagerGnomeWIFI.h b/plugin/gnome/NetworkManagerGnomeWIFI.h index 1f9934ba..3c0d4102 100644 --- a/plugin/gnome/NetworkManagerGnomeWIFI.h +++ b/plugin/gnome/NetworkManagerGnomeWIFI.h @@ -54,7 +54,7 @@ namespace WPEFramework bool activateKnownConnection(std::string iface, std::string knowConnectionID=""); bool wifiConnectedSSIDInfo(Exchange::INetworkManager::WiFiSSIDInfo &ssidinfo); bool wifiConnect(const Exchange::INetworkManager::WiFiConnectTo &ssidInfo); - bool wifiScanRequest(std::vector ssidsToFilter = {}); + bool wifiScanRequest(const std::vector& ssidsToFilter = {}); bool isWifiScannedRecently(int timelimitInSec = 5); // default 5 sec as shotest scanning interval bool getKnownSSIDs(std::list& ssids); bool addToKnownSSIDs(const Exchange::INetworkManager::WiFiConnectTo &ssidinfo); From 3aba5bb62fd917d818a71a1add8c1e96376e75dc Mon Sep 17 00:00:00 2001 From: jincysam87 <167995204+jincysam87@users.noreply.github.com> Date: Fri, 8 May 2026 12:13:47 -0400 Subject: [PATCH 12/38] Update NetworkManagerGnomeWIFI.cpp --- plugin/gnome/NetworkManagerGnomeWIFI.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin/gnome/NetworkManagerGnomeWIFI.cpp b/plugin/gnome/NetworkManagerGnomeWIFI.cpp index df18837d..f80f7476 100644 --- a/plugin/gnome/NetworkManagerGnomeWIFI.cpp +++ b/plugin/gnome/NetworkManagerGnomeWIFI.cpp @@ -1698,7 +1698,7 @@ namespace WPEFramework m_isSuccess = false; if(!ssidsToFilter.empty()) { - NMLOG_INFO("Starting wifi scanning for %d SSIDs:", ssidsToFilter.size()); + NMLOG_INFO("Starting wifi scanning for %d SSIDs:",static_cast(ssidsToFilter.size())); GVariantBuilder builder, array_builder; GVariant *options; g_variant_builder_init(&builder, G_VARIANT_TYPE_VARDICT); From 7032c4694d71ac22e91cae8714188747b97b5e86 Mon Sep 17 00:00:00 2001 From: jincysam87 <167995204+jincysam87@users.noreply.github.com> Date: Fri, 8 May 2026 12:15:07 -0400 Subject: [PATCH 13/38] Update NetworkManagerGnomeWIFI.h --- plugin/gnome/NetworkManagerGnomeWIFI.h | 1 + 1 file changed, 1 insertion(+) diff --git a/plugin/gnome/NetworkManagerGnomeWIFI.h b/plugin/gnome/NetworkManagerGnomeWIFI.h index 3c0d4102..4d0fa086 100644 --- a/plugin/gnome/NetworkManagerGnomeWIFI.h +++ b/plugin/gnome/NetworkManagerGnomeWIFI.h @@ -31,6 +31,7 @@ #include #include #include +#include #define WPS_RETRY_WAIT_IN_MS 10 // 10 sec #define WPS_RETRY_COUNT 10 From 712eeba121350a6de14cd06ee976cdb3e7679e7c Mon Sep 17 00:00:00 2001 From: jincysam87 <167995204+jincysam87@users.noreply.github.com> Date: Fri, 8 May 2026 12:40:30 -0400 Subject: [PATCH 14/38] Update NetworkManagerGnomeWIFI.cpp --- plugin/gnome/NetworkManagerGnomeWIFI.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/plugin/gnome/NetworkManagerGnomeWIFI.cpp b/plugin/gnome/NetworkManagerGnomeWIFI.cpp index f80f7476..e4069c12 100644 --- a/plugin/gnome/NetworkManagerGnomeWIFI.cpp +++ b/plugin/gnome/NetworkManagerGnomeWIFI.cpp @@ -1704,9 +1704,11 @@ namespace WPEFramework g_variant_builder_init(&builder, G_VARIANT_TYPE_VARDICT); g_variant_builder_init(&array_builder, G_VARIANT_TYPE("aay")); for (const auto& ssid : ssidsToFilter) { - g_variant_builder_add(&array_builder, "@ay", - g_variant_new_fixed_array(G_VARIANT_TYPE_BYTE, (const guint8 *) ssid.c_str(), ssid.length(), 1) - ); + if (!ssid.empty()) { + g_variant_builder_add(&array_builder, "@ay", + g_variant_new_fixed_array(G_VARIANT_TYPE_BYTE, (const guint8 *) ssid.c_str(), ssid.length(), 1) + ); + } } g_variant_builder_add(&builder, "{sv}", "ssids", g_variant_builder_end(&array_builder)); options = g_variant_builder_end(&builder); From dbe71195fd340d1600f955557624adb565dc5053 Mon Sep 17 00:00:00 2001 From: jincysam87 <167995204+jincysam87@users.noreply.github.com> Date: Fri, 8 May 2026 12:52:09 -0400 Subject: [PATCH 15/38] Update NetworkManagerLibnmTest.cpp --- tools/plugincli/NetworkManagerLibnmTest.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/plugincli/NetworkManagerLibnmTest.cpp b/tools/plugincli/NetworkManagerLibnmTest.cpp index 650a1ba1..aea13488 100644 --- a/tools/plugincli/NetworkManagerLibnmTest.cpp +++ b/tools/plugincli/NetworkManagerLibnmTest.cpp @@ -220,7 +220,7 @@ int main() NMLOG_INFO("Sending WiFi scan request%s", ssid.empty() ? " (all SSIDs)" : (" for SSID: " + ssid).c_str()); - if (wifiMgr->wifiScanRequest(ssid)) { + if (wifiMgr->wifiScanRequest({ssid})) { NMLOG_INFO("WiFi scan request sent successfully."); } else { NMLOG_ERROR("Failed to send WiFi scan request."); From 9a9ff932298f468b119b1274c764d409faa1487e Mon Sep 17 00:00:00 2001 From: jincysam87 <167995204+jincysam87@users.noreply.github.com> Date: Fri, 8 May 2026 13:02:49 -0400 Subject: [PATCH 16/38] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- tools/plugincli/NetworkManagerLibnmTest.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/plugincli/NetworkManagerLibnmTest.cpp b/tools/plugincli/NetworkManagerLibnmTest.cpp index aea13488..3a358b56 100644 --- a/tools/plugincli/NetworkManagerLibnmTest.cpp +++ b/tools/plugincli/NetworkManagerLibnmTest.cpp @@ -220,7 +220,8 @@ int main() NMLOG_INFO("Sending WiFi scan request%s", ssid.empty() ? " (all SSIDs)" : (" for SSID: " + ssid).c_str()); - if (wifiMgr->wifiScanRequest({ssid})) { + bool scanRequestSent = ssid.empty() ? wifiMgr->wifiScanRequest() : wifiMgr->wifiScanRequest({ssid}); + if (scanRequestSent) { NMLOG_INFO("WiFi scan request sent successfully."); } else { NMLOG_ERROR("Failed to send WiFi scan request."); From b5d5456ca7f620794c38c97e8727f741a7d14545 Mon Sep 17 00:00:00 2001 From: jincysam87 <167995204+jincysam87@users.noreply.github.com> Date: Fri, 8 May 2026 13:11:15 -0400 Subject: [PATCH 17/38] Update NetworkManagerGnomeProxy.cpp --- plugin/gnome/NetworkManagerGnomeProxy.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/plugin/gnome/NetworkManagerGnomeProxy.cpp b/plugin/gnome/NetworkManagerGnomeProxy.cpp index ac74072b..7e67855f 100644 --- a/plugin/gnome/NetworkManagerGnomeProxy.cpp +++ b/plugin/gnome/NetworkManagerGnomeProxy.cpp @@ -999,8 +999,15 @@ namespace WPEFramework string tmpssidlist{}; while (ssids->Next(tmpssidlist) == true) { - m_filterSsidslist.push_back(tmpssidlist.c_str()); - NMLOG_DEBUG("%s added to SSID filtering", tmpssidlist.c_str()); + if (!tmpssidlist.empty()) + { + m_filterSsidslist.push_back(tmpssidlist.c_str()); + NMLOG_DEBUG("%s added to SSID filtering", tmpssidlist.c_str()); + } + else + { + NMLOG_DEBUG("Empty SSID encountered in input list; skipping."); + } } } From 8b1f241577589df9b4107d34b9932caab6082225 Mon Sep 17 00:00:00 2001 From: jincysam87 <167995204+jincysam87@users.noreply.github.com> Date: Fri, 8 May 2026 13:12:08 -0400 Subject: [PATCH 18/38] Update NetworkManagerGnomeWIFI.cpp --- plugin/gnome/NetworkManagerGnomeWIFI.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/plugin/gnome/NetworkManagerGnomeWIFI.cpp b/plugin/gnome/NetworkManagerGnomeWIFI.cpp index e4069c12..f80f7476 100644 --- a/plugin/gnome/NetworkManagerGnomeWIFI.cpp +++ b/plugin/gnome/NetworkManagerGnomeWIFI.cpp @@ -1704,11 +1704,9 @@ namespace WPEFramework g_variant_builder_init(&builder, G_VARIANT_TYPE_VARDICT); g_variant_builder_init(&array_builder, G_VARIANT_TYPE("aay")); for (const auto& ssid : ssidsToFilter) { - if (!ssid.empty()) { - g_variant_builder_add(&array_builder, "@ay", - g_variant_new_fixed_array(G_VARIANT_TYPE_BYTE, (const guint8 *) ssid.c_str(), ssid.length(), 1) - ); - } + g_variant_builder_add(&array_builder, "@ay", + g_variant_new_fixed_array(G_VARIANT_TYPE_BYTE, (const guint8 *) ssid.c_str(), ssid.length(), 1) + ); } g_variant_builder_add(&builder, "{sv}", "ssids", g_variant_builder_end(&array_builder)); options = g_variant_builder_end(&builder); From 50bf8c05b6ae083a3422fb453241c98be74c228b Mon Sep 17 00:00:00 2001 From: jincysam87 <167995204+jincysam87@users.noreply.github.com> Date: Wed, 13 May 2026 11:27:22 -0400 Subject: [PATCH 19/38] Update INetworkManager.h --- interface/INetworkManager.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/interface/INetworkManager.h b/interface/INetworkManager.h index 15c739cf..0d630471 100644 --- a/interface/INetworkManager.h +++ b/interface/INetworkManager.h @@ -30,7 +30,8 @@ namespace WPEFramework ID_NETWORKMANAGER = 0x800004E0, ID_NETWORKMANAGER_NOTIFICATION = ID_NETWORKMANAGER + 1, ID_NETWORKMANAGER_INTERFACE_DETAILS_ITERATOR = ID_NETWORKMANAGER + 2, - ID_NETWORKMANAGER_WIFI_SECURITY_MODE_ITERATOR = ID_NETWORKMANAGER + 3 + ID_NETWORKMANAGER_WIFI_SECURITY_MODE_ITERATOR = ID_NETWORKMANAGER + 3, + ID_NETWORKMANAGER_WIFI_FREQUENCY_ITERATOR = ID_NETWORKMANAGER + 4 }; /* @json @text:keep */ @@ -202,6 +203,7 @@ namespace WPEFramework using IInterfaceDetailsIterator = RPC::IIteratorType; using ISecurityModeIterator = RPC::IIteratorType; using IStringIterator = RPC::IIteratorType; + using IWIFIFrequencyIterator = RPC::IIteratorType; /* @brief Get all the Available Interfaces */ virtual uint32_t GetAvailableInterfaces (IInterfaceDetailsIterator*& interfaces/* @out */) = 0; @@ -248,7 +250,7 @@ namespace WPEFramework // WiFi Specific Methods /* @brief Initiate a WIFI Scan; This is Async method and returns the scan results as Event */ - virtual uint32_t StartWiFiScan(const string& frequency /* @in */, IStringIterator* const ssids/* @in */) = 0; + virtual uint32_t StartWiFiScan(IWIFIFrequencyIterator* const frequencies /* @in */, IStringIterator* const ssids/* @in */) = 0; virtual uint32_t StopWiFiScan(void) = 0; virtual uint32_t GetKnownSSIDs(IStringIterator*& ssids /* @out */) = 0; From 8e2be7cda5c69511b90954e397e3c612fc932f72 Mon Sep 17 00:00:00 2001 From: jincysam87 <167995204+jincysam87@users.noreply.github.com> Date: Wed, 13 May 2026 11:32:28 -0400 Subject: [PATCH 20/38] Update NetworkManager.json --- definition/NetworkManager.json | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/definition/NetworkManager.json b/definition/NetworkManager.json index 2252aed0..5b07ba8d 100644 --- a/definition/NetworkManager.json +++ b/definition/NetworkManager.json @@ -854,9 +854,13 @@ "type": "object", "properties": { "frequency": { - "summary": "The frequency to scan. An empty or `null` value scans all frequencies.", - "type": "string", - "example": "5" + "summary": "Frequency bands to scan. Array values: 1=2.4GHz, 2=5GHz, 3=6GHz. An empty or `null` or 0 value scans all frequencies.",", + "type": "array", + "items": { + "type": "integer", + "enum": [1, 2, 3] + }, + "example": [1, 2] }, "ssids": { "summary": "The list of SSIDs to be scanned.", From 4d9db50d50c012b0a41108adc77cad1ba601c8fd Mon Sep 17 00:00:00 2001 From: jincysam87 <167995204+jincysam87@users.noreply.github.com> Date: Wed, 13 May 2026 11:48:30 -0400 Subject: [PATCH 21/38] Update NetworkManagerPlugin.md --- docs/NetworkManagerPlugin.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/docs/NetworkManagerPlugin.md b/docs/NetworkManagerPlugin.md index 9e4d969c..886e292a 100644 --- a/docs/NetworkManagerPlugin.md +++ b/docs/NetworkManagerPlugin.md @@ -1006,7 +1006,7 @@ Traces the specified endpoint with the specified number of packets using `tracer ## *StartWiFiScan [method](#head.Methods)* -Initiates WiFi scaning. This method supports scanning for specific range of frequency like 2.4GHz only or 5GHz only or 6GHz only or ALL. When no input passed about the frequency to be scanned, it scans for all. When list of SSIDs to be scanned specifically, it can be passed as input. It publishes 'onAvailableSSIDs' event upon completion. +Initiates WiFi scaning. This method supports scanning specific frequencies (2.4GHz, 5GHz, 6GHz). When no input is passed for frequency, it scans all supported frequencies. When list of SSIDs to be scanned specifically, it can be passed as input. It publishes 'onAvailableSSIDs' event upon completion. Also see: [onAvailableSSIDs](#event.onAvailableSSIDs) @@ -1015,7 +1015,8 @@ Also see: [onAvailableSSIDs](#event.onAvailableSSIDs) | Name | Type | Description | | :-------- | :-------- | :-------- | | params | object | | -| params?.frequency | string | *(optional)* The frequency to scan. An empty or `null` value scans all frequencies | +| params?.frequency | array | *(optional)* The frequency list to scan. Supported values are `1` (2.4GHz), `2` (5GHz), `3` (6GHz) | +| params?.frequency[#] | integer | *(optional)* Frequency enum value | | params?.ssids | array | *(optional)* The list of SSIDs to be scanned | | params?.ssids[#] | string | *(optional)* The SSID to scan | @@ -1036,7 +1037,9 @@ Also see: [onAvailableSSIDs](#event.onAvailableSSIDs) "id": 42, "method": "org.rdk.NetworkManager.1.StartWiFiScan", "params": { - "frequency": "5", + "frequency": [ + 2 + ], "ssids": [ "Xfinity Mobile" ] From 54725e6180627fc7c5c8c61070de5e1b0444a79a Mon Sep 17 00:00:00 2001 From: jincysam87 <167995204+jincysam87@users.noreply.github.com> Date: Wed, 13 May 2026 12:15:17 -0400 Subject: [PATCH 22/38] Update NetworkManagerGnomeProxy.cpp --- plugin/gnome/NetworkManagerGnomeProxy.cpp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/plugin/gnome/NetworkManagerGnomeProxy.cpp b/plugin/gnome/NetworkManagerGnomeProxy.cpp index 7e67855f..be3a43e6 100644 --- a/plugin/gnome/NetworkManagerGnomeProxy.cpp +++ b/plugin/gnome/NetworkManagerGnomeProxy.cpp @@ -986,13 +986,13 @@ namespace WPEFramework return rc; } - uint32_t NetworkManagerImplementation::StartWiFiScan(const string& frequency /* @in */, IStringIterator* const ssids/* @in */) + uint32_t NetworkManagerImplementation::StartWiFiScan(IWIFIFrequencyIterator* const frequencies /* @in */, IStringIterator* const ssids/* @in */) { uint32_t rc = Core::ERROR_RPC_CALL_FAILED; //Cleared the Existing Store filterred SSID list m_filterSsidslist.clear(); - m_filterfrequency.clear(); + m_filterFrequencies.clear(); if(ssids) { @@ -1011,10 +1011,17 @@ namespace WPEFramework } } - if (!frequency.empty()) + if (frequencies) { - m_filterfrequency = frequency; - NMLOG_DEBUG("Scan SSIDs of frequency %s", m_filterfrequency.c_str()); + Exchange::INetworkManager::WIFIFrequency frequency = Exchange::INetworkManager::WIFI_FREQUENCY_NONE; + while (frequencies->Next(frequency) == true) + { + if (frequency != Exchange::INetworkManager::WIFI_FREQUENCY_NONE) + { + m_filterFrequencies.push_back(frequency); + NMLOG_DEBUG("Frequency %u added to scan filtering", static_cast(frequency)); + } + } } nmEvent->setwifiScanOptions(true); From 3aca01b0d594bbc343bbe5dac7c314d4aff9c38e Mon Sep 17 00:00:00 2001 From: jincysam87 <167995204+jincysam87@users.noreply.github.com> Date: Wed, 13 May 2026 12:23:02 -0400 Subject: [PATCH 23/38] Update NetworkManagerImplementation.cpp --- plugin/NetworkManagerImplementation.cpp | 43 +++++++++++++++++++------ 1 file changed, 34 insertions(+), 9 deletions(-) diff --git a/plugin/NetworkManagerImplementation.cpp b/plugin/NetworkManagerImplementation.cpp index b4b5bca6..95ab4807 100644 --- a/plugin/NetworkManagerImplementation.cpp +++ b/plugin/NetworkManagerImplementation.cpp @@ -589,26 +589,39 @@ namespace WPEFramework } return; } - + + namespace { + Exchange::INetworkManager::WIFIFrequency GetFrequencyFromMHz(const double frequencyMHz) + { + // Normalize frequency to MHz even if reported in GHz (2.4/5/6) or report MHz (2412/5180/5955). + const double normalizedMHz = (frequencyMHz > 0.0 && frequencyMHz < 100.0) + ? (frequencyMHz * 1000.0) + : frequencyMHz; + + if ((normalizedMHz >= 2400.0) && (normalizedMHz < 2500.0)) { + return Exchange::INetworkManager::WIFI_FREQUENCY_2_4_GHZ; + } else if ((normalizedMHz >= 4900.0) && (normalizedMHz < 5925.0)) { + return Exchange::INetworkManager::WIFI_FREQUENCY_5_GHZ; + } else if ((normalizedMHz >= 5925.0) && (normalizedMHz < 7125.0)) { + return Exchange::INetworkManager::WIFI_FREQUENCY_6_GHZ; + } else { + return Exchange::INetworkManager::WIFI_FREQUENCY_NONE; + } + } + } void NetworkManagerImplementation::filterScanResults(JsonArray &ssids) { JsonArray result; - double filterFreq = 0.0; std::unordered_set scanForSsidsSet(m_filterSsidslist.begin(), m_filterSsidslist.end()); // If neither SSID list nor frequency is provided, exit - if (m_filterSsidslist.empty() && m_filterfrequency.empty()) + if (m_filterSsidslist.empty() && m_filterFrequencies.empty()) { NMLOG_DEBUG("Neither SSID nor Frequency is provided. Exiting function."); return; } - if (!m_filterfrequency.empty()) - { - filterFreq = std::stod(m_filterfrequency); - } - for (int i = 0; i < ssids.Length(); i++) { JsonObject object = ssids[i].Object(); @@ -618,7 +631,19 @@ namespace WPEFramework double frequencyValue = std::stod(frequency); bool ssidMatches = scanForSsidsSet.empty() || scanForSsidsSet.find(ssid) != scanForSsidsSet.end(); - bool freqMatches = m_filterfrequency.empty() || (filterFreq == frequencyValue); + bool freqMatches = m_filterFrequencies.empty(); + if (!freqMatches) + { + const auto ssidFrequencyBand = GetFrequencyFromMHz(frequencyValue); + for (const auto selectedFrequency : m_filterFrequencies) + { + if (selectedFrequency == ssidFrequencyBand) + { + freqMatches = true; + break; + } + } + } if (ssidMatches && freqMatches) result.Add(object); From fc4b3d86c2ff37d897b09706aa206634ab6465b1 Mon Sep 17 00:00:00 2001 From: jincysam87 <167995204+jincysam87@users.noreply.github.com> Date: Wed, 13 May 2026 12:24:37 -0400 Subject: [PATCH 24/38] Update NetworkManagerImplementation.h --- plugin/NetworkManagerImplementation.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugin/NetworkManagerImplementation.h b/plugin/NetworkManagerImplementation.h index f5bd49b1..46aa4831 100644 --- a/plugin/NetworkManagerImplementation.h +++ b/plugin/NetworkManagerImplementation.h @@ -216,7 +216,7 @@ namespace WPEFramework // WiFi Specific Methods /* @brief Initiate a WIFI Scan; This is Async method and returns the scan results as Event */ - uint32_t StartWiFiScan(const string& frequency /* @in */, IStringIterator* const ssids/* @in */) override; + uint32_t StartWiFiScan(IWIFIFrequencyIterator* const frequencies /* @in */, IStringIterator* const ssids/* @in */) override; uint32_t StopWiFiScan(void) override; uint32_t GetKnownSSIDs(IStringIterator*& ssids /* @out */) override; @@ -301,7 +301,7 @@ namespace WPEFramework uint16_t m_stunBindTimeout; uint16_t m_stunCacheTimeout; std::thread m_registrationThread; - string m_filterfrequency; + std::vector m_filterFrequencies; std::vector m_filterSsidslist; std::thread m_monitorThread; From 8e44e9fcedd2379c7bb55cfa4446dd71864d5453 Mon Sep 17 00:00:00 2001 From: jincysam87 <167995204+jincysam87@users.noreply.github.com> Date: Wed, 13 May 2026 15:18:30 -0400 Subject: [PATCH 25/38] Update NetworkManagerJsonRpc.cpp --- plugin/NetworkManagerJsonRpc.cpp | 59 ++++++++++++++++++++++++++------ 1 file changed, 49 insertions(+), 10 deletions(-) diff --git a/plugin/NetworkManagerJsonRpc.cpp b/plugin/NetworkManagerJsonRpc.cpp index 5ed0b60f..ea4ee649 100644 --- a/plugin/NetworkManagerJsonRpc.cpp +++ b/plugin/NetworkManagerJsonRpc.cpp @@ -642,19 +642,55 @@ namespace WPEFramework { LOG_INPARAM(); uint32_t rc = Core::ERROR_GENERAL; - string frequency{}; - Exchange::INetworkManager::IStringIterator* ssids = NULL; - - if (parameters.HasLabel("frequency")) - frequency = parameters["frequency"].String(); - - if (parameters.HasLabel("ssids")) + Exchange::INetworkManager::IWIFIFrequencyIterator* frequencies = nullptr; + Exchange::INetworkManager::IStringIterator* ssids = NULL; + + if (parameters.HasLabel("frequency")) + { + std::vector frequencyList; + JsonArray array = parameters["frequency"].Array(); + JsonArray::Iterator index(array.Elements()); + while (index.Next() == true) + { + if (Core::JSON::Variant::type::NUMBER == index.Current().Content()) + { + const int freq = index.Current().Number(); + if (freq < static_cast(Exchange::INetworkManager::WIFI_FREQUENCY_NONE) + || freq > static_cast(Exchange::INetworkManager::WIFI_FREQUENCY_6_GHZ)) + { + NMLOG_ERROR("Invalid frequency value in array"); + return Core::ERROR_BAD_REQUEST; + returnJson(rc); + } + + const auto parsedFrequency = static_cast(freq); + if (parsedFrequency != Exchange::INetworkManager::WIFI_FREQUENCY_NONE) + { + frequencyList.push_back(parsedFrequency); + } + } + else + { + NMLOG_ERROR("Unexpected variant type in frequency array."); + returnJson(rc); + } + } + } + if (!frequencyList.empty()) { + using FrequencyIterator = RPC::IteratorType; + frequencies = Core::Service::Create(frequencyList); + if (frequencies == nullptr) { + returnJson(rc); + } + } + + if (parameters.HasLabel("ssids")) { JsonArray array = parameters["ssids"].Array(); std::vector ssidslist; - JsonArray::Iterator index(array.Elements()); + JsonArray::Iterator index(array.Elements()); - while (index.Next() == true) + while (index.Next() == true) { if (Core::JSON::Variant::type::STRING == index.Current().Content()) { @@ -673,10 +709,13 @@ namespace WPEFramework } if (_networkManager) - rc = _networkManager->StartWiFiScan(frequency, ssids); + rc = _networkManager->StartWiFiScan(frequencies, ssids); else rc = Core::ERROR_UNAVAILABLE; + if (frequencies) + frequencies->Release(); + if (ssids) ssids->Release(); From f8f97cf3e730e1b6e9d84203ccc965e75473a909 Mon Sep 17 00:00:00 2001 From: jincysam87 <167995204+jincysam87@users.noreply.github.com> Date: Wed, 13 May 2026 15:35:42 -0400 Subject: [PATCH 26/38] Update NetworkManager.json --- definition/NetworkManager.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/definition/NetworkManager.json b/definition/NetworkManager.json index 5b07ba8d..3aa04e16 100644 --- a/definition/NetworkManager.json +++ b/definition/NetworkManager.json @@ -854,7 +854,7 @@ "type": "object", "properties": { "frequency": { - "summary": "Frequency bands to scan. Array values: 1=2.4GHz, 2=5GHz, 3=6GHz. An empty or `null` or 0 value scans all frequencies.",", + "summary": "Frequency bands to scan. Array values: 1=2.4GHz, 2=5GHz, 3=6GHz. An empty or 0 value scans all frequencies.",", "type": "array", "items": { "type": "integer", From 301e9bb1b7ecc8d6efcdfb8f078c9d8e69126985 Mon Sep 17 00:00:00 2001 From: jincysam87 <167995204+jincysam87@users.noreply.github.com> Date: Wed, 13 May 2026 15:45:55 -0400 Subject: [PATCH 27/38] Update NetworkManagerJsonRpc.cpp --- plugin/NetworkManagerJsonRpc.cpp | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/plugin/NetworkManagerJsonRpc.cpp b/plugin/NetworkManagerJsonRpc.cpp index ea4ee649..f8c2b0bc 100644 --- a/plugin/NetworkManagerJsonRpc.cpp +++ b/plugin/NetworkManagerJsonRpc.cpp @@ -662,12 +662,7 @@ namespace WPEFramework return Core::ERROR_BAD_REQUEST; returnJson(rc); } - - const auto parsedFrequency = static_cast(freq); - if (parsedFrequency != Exchange::INetworkManager::WIFI_FREQUENCY_NONE) - { - frequencyList.push_back(parsedFrequency); - } + frequencyList.push_back(static_cast(freq)); } else { From fa88011b095f5590a7c061f7f5880573f9a3ad34 Mon Sep 17 00:00:00 2001 From: jincysam87 <167995204+jincysam87@users.noreply.github.com> Date: Wed, 13 May 2026 16:00:37 -0400 Subject: [PATCH 28/38] Update NetworkManager.json --- definition/NetworkManager.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/definition/NetworkManager.json b/definition/NetworkManager.json index 3aa04e16..fba1b66b 100644 --- a/definition/NetworkManager.json +++ b/definition/NetworkManager.json @@ -854,7 +854,7 @@ "type": "object", "properties": { "frequency": { - "summary": "Frequency bands to scan. Array values: 1=2.4GHz, 2=5GHz, 3=6GHz. An empty or 0 value scans all frequencies.",", + "summary": "Frequency bands to scan. Array values: 1=2.4GHz, 2=5GHz, 3=6GHz. An empty or 0 value scans all frequencies.", "type": "array", "items": { "type": "integer", From 738c6fc8f26b378a1a3c1a1f9ab7bfc20315e8f8 Mon Sep 17 00:00:00 2001 From: jincysam87 <167995204+jincysam87@users.noreply.github.com> Date: Wed, 13 May 2026 16:08:08 -0400 Subject: [PATCH 29/38] Update NetworkManager.json --- definition/NetworkManager.json | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/definition/NetworkManager.json b/definition/NetworkManager.json index fba1b66b..7dd6d246 100644 --- a/definition/NetworkManager.json +++ b/definition/NetworkManager.json @@ -854,11 +854,10 @@ "type": "object", "properties": { "frequency": { - "summary": "Frequency bands to scan. Array values: 1=2.4GHz, 2=5GHz, 3=6GHz. An empty or 0 value scans all frequencies.", + "summary": "Frequency bands to scan. Array values: 1=2.4GHz, 2=5GHz, 3=6GHz. Omit this field or pass an empty array to scan all frequencies.", "type": "array", "items": { - "type": "integer", - "enum": [1, 2, 3] + "type": "integer" }, "example": [1, 2] }, From 0b287f6d4160f8a29a513bb822bf16934e72d1bc Mon Sep 17 00:00:00 2001 From: jincysam87 <167995204+jincysam87@users.noreply.github.com> Date: Thu, 14 May 2026 10:38:46 -0400 Subject: [PATCH 30/38] Update NetworkManagerJsonRpc.cpp --- plugin/NetworkManagerJsonRpc.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin/NetworkManagerJsonRpc.cpp b/plugin/NetworkManagerJsonRpc.cpp index f8c2b0bc..ee64fe15 100644 --- a/plugin/NetworkManagerJsonRpc.cpp +++ b/plugin/NetworkManagerJsonRpc.cpp @@ -645,9 +645,9 @@ namespace WPEFramework Exchange::INetworkManager::IWIFIFrequencyIterator* frequencies = nullptr; Exchange::INetworkManager::IStringIterator* ssids = NULL; + std::vector frequencyList; if (parameters.HasLabel("frequency")) { - std::vector frequencyList; JsonArray array = parameters["frequency"].Array(); JsonArray::Iterator index(array.Elements()); while (index.Next() == true) From 27830ea5cf70a2fb4afed66f0b81cbe99a328eee Mon Sep 17 00:00:00 2001 From: jincysam87 <167995204+jincysam87@users.noreply.github.com> Date: Thu, 14 May 2026 10:51:02 -0400 Subject: [PATCH 31/38] Update LegacyWiFiManagerAPIs.cpp --- legacy/LegacyWiFiManagerAPIs.cpp | 40 +++++++++++++++++++++++++++++--- 1 file changed, 37 insertions(+), 3 deletions(-) diff --git a/legacy/LegacyWiFiManagerAPIs.cpp b/legacy/LegacyWiFiManagerAPIs.cpp index 9132ed09..0c2d89e0 100644 --- a/legacy/LegacyWiFiManagerAPIs.cpp +++ b/legacy/LegacyWiFiManagerAPIs.cpp @@ -634,12 +634,43 @@ namespace WPEFramework { LOG_INPARAM(); uint32_t rc = Core::ERROR_GENERAL; - string frequency{}; + Exchange::INetworkManager::IWIFIFrequencyIterator* frequencies = nullptr; Exchange::INetworkManager::IStringIterator* ssids = NULL; + std::vector frequencyList; if (parameters.HasLabel("frequency")) - frequency = parameters["frequency"].String(); + { + JsonArray array = parameters["frequency"].Array(); + JsonArray::Iterator index(array.Elements()); + while (index.Next() == true) + { + if (Core::JSON::Variant::type::NUMBER == index.Current().Content()) + { + const int freq = index.Current().Number(); + if (freq < static_cast(Exchange::INetworkManager::WIFI_FREQUENCY_NONE) + || freq > static_cast(Exchange::INetworkManager::WIFI_FREQUENCY_6_GHZ)) + { + NMLOG_ERROR("Invalid frequency value in array"); + return Core::ERROR_BAD_REQUEST; + returnJson(rc); + } + frequencyList.push_back(static_cast(freq)); + } + else + { + NMLOG_ERROR("Unexpected variant type in frequency array."); + returnJson(rc); + } + } + } + if (!frequencyList.empty()) { + using FrequencyIterator = RPC::IteratorType; + frequencies = Core::Service::Create(frequencyList); + if (frequencies == nullptr) { + returnJson(rc); + } + } if (parameters.HasLabel("ssid")) { @@ -661,12 +692,15 @@ namespace WPEFramework auto _nwmgr = m_service->QueryInterfaceByCallsign(NETWORK_MANAGER_CALLSIGN); if (_nwmgr) { - rc = _nwmgr->StartWiFiScan(frequency, ssids); + rc = _networkManager->StartWiFiScan(frequency, ssids); _nwmgr->Release(); } else rc = Core::ERROR_UNAVAILABLE; + if (frequencies) + frequencies->Release(); + if (ssids) ssids->Release(); From 8657f1b777a6d2d718f2e4486aa6e81083b52f5a Mon Sep 17 00:00:00 2001 From: jincysam87 <167995204+jincysam87@users.noreply.github.com> Date: Thu, 14 May 2026 10:56:16 -0400 Subject: [PATCH 32/38] Update LegacyWiFiManagerAPIs.cpp --- legacy/LegacyWiFiManagerAPIs.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legacy/LegacyWiFiManagerAPIs.cpp b/legacy/LegacyWiFiManagerAPIs.cpp index 0c2d89e0..e5db7b26 100644 --- a/legacy/LegacyWiFiManagerAPIs.cpp +++ b/legacy/LegacyWiFiManagerAPIs.cpp @@ -692,7 +692,7 @@ namespace WPEFramework auto _nwmgr = m_service->QueryInterfaceByCallsign(NETWORK_MANAGER_CALLSIGN); if (_nwmgr) { - rc = _networkManager->StartWiFiScan(frequency, ssids); + rc = _nwmgr->StartWiFiScan(frequencies, ssids); _nwmgr->Release(); } else From ee38c7b71b1973bf0bccb877f7dab20d003eca30 Mon Sep 17 00:00:00 2001 From: jincysam87 <167995204+jincysam87@users.noreply.github.com> Date: Thu, 14 May 2026 11:20:57 -0400 Subject: [PATCH 33/38] Update NetworkManagerGdbusProxy.cpp --- plugin/gnome/gdbus/NetworkManagerGdbusProxy.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin/gnome/gdbus/NetworkManagerGdbusProxy.cpp b/plugin/gnome/gdbus/NetworkManagerGdbusProxy.cpp index 73aa49d9..e0387786 100644 --- a/plugin/gnome/gdbus/NetworkManagerGdbusProxy.cpp +++ b/plugin/gnome/gdbus/NetworkManagerGdbusProxy.cpp @@ -216,7 +216,7 @@ namespace WPEFramework return rc; } - uint32_t NetworkManagerImplementation::StartWiFiScan(const string& frequency /* @in */, IStringIterator* const ssids/* @in */) + uint32_t NetworkManagerImplementation::StartWiFiScan(IWIFIFrequencyIterator* const frequencies /* @in */, IStringIterator* const ssids/* @in */) { uint32_t rc = Core::ERROR_GENERAL; _nmGdbusEvents->setwifiScanOptions(true); /* Enable event posting */ From 730d1e9dd17f4486cd9e67960e89516e70115bce Mon Sep 17 00:00:00 2001 From: jincysam87 <167995204+jincysam87@users.noreply.github.com> Date: Thu, 14 May 2026 11:33:12 -0400 Subject: [PATCH 34/38] Update NetworkManagerGnomeProxy.cpp --- plugin/gnome/NetworkManagerGnomeProxy.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugin/gnome/NetworkManagerGnomeProxy.cpp b/plugin/gnome/NetworkManagerGnomeProxy.cpp index be3a43e6..d9c79eb6 100644 --- a/plugin/gnome/NetworkManagerGnomeProxy.cpp +++ b/plugin/gnome/NetworkManagerGnomeProxy.cpp @@ -1013,9 +1013,11 @@ namespace WPEFramework if (frequencies) { + NMLOG_ERROR("MYTEST Frequency present"); Exchange::INetworkManager::WIFIFrequency frequency = Exchange::INetworkManager::WIFI_FREQUENCY_NONE; while (frequencies->Next(frequency) == true) { + NMLOG_ERROR("MYTEST Frequency present %u", static_cast(frequency)); if (frequency != Exchange::INetworkManager::WIFI_FREQUENCY_NONE) { m_filterFrequencies.push_back(frequency); From 6e18b9ab63662e2529392e15eac281a6198d2d4a Mon Sep 17 00:00:00 2001 From: jincysam87 <167995204+jincysam87@users.noreply.github.com> Date: Thu, 14 May 2026 11:50:54 -0400 Subject: [PATCH 35/38] Update NetworkManagerJsonRpc.cpp --- plugin/NetworkManagerJsonRpc.cpp | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/plugin/NetworkManagerJsonRpc.cpp b/plugin/NetworkManagerJsonRpc.cpp index ee64fe15..10048160 100644 --- a/plugin/NetworkManagerJsonRpc.cpp +++ b/plugin/NetworkManagerJsonRpc.cpp @@ -648,12 +648,15 @@ namespace WPEFramework std::vector frequencyList; if (parameters.HasLabel("frequency")) { + NMLOG_ERROR("MYTEST: HAS frequency field"); JsonArray array = parameters["frequency"].Array(); JsonArray::Iterator index(array.Elements()); while (index.Next() == true) { + NMLOG_ERROR("MYTEST: HAS frequency field In while"); if (Core::JSON::Variant::type::NUMBER == index.Current().Content()) { + NMLOG_ERROR("MYTEST: HAS frequency field In If"); const int freq = index.Current().Number(); if (freq < static_cast(Exchange::INetworkManager::WIFI_FREQUENCY_NONE) || freq > static_cast(Exchange::INetworkManager::WIFI_FREQUENCY_6_GHZ)) @@ -670,15 +673,17 @@ namespace WPEFramework returnJson(rc); } } - } - if (!frequencyList.empty()) { - using FrequencyIterator = RPC::IteratorType; - frequencies = Core::Service::Create(frequencyList); - if (frequencies == nullptr) { - returnJson(rc); + if (!frequencyList.empty()) { + NMLOG_ERROR("MYTEST: HAS frequency field and not empty"); + using FrequencyIterator = RPC::IteratorType; + frequencies = Core::Service::Create(frequencyList); + if (frequencies == nullptr) { + returnJson(rc); + } } } + if (parameters.HasLabel("ssids")) { JsonArray array = parameters["ssids"].Array(); From 30bf54b8fe8bd042e9b5337d923978e53a883a38 Mon Sep 17 00:00:00 2001 From: jincysam87 <167995204+jincysam87@users.noreply.github.com> Date: Thu, 14 May 2026 12:28:18 -0400 Subject: [PATCH 36/38] Update NetworkManagerGnomeProxy.cpp --- plugin/gnome/NetworkManagerGnomeProxy.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin/gnome/NetworkManagerGnomeProxy.cpp b/plugin/gnome/NetworkManagerGnomeProxy.cpp index d9c79eb6..8c0f1c8b 100644 --- a/plugin/gnome/NetworkManagerGnomeProxy.cpp +++ b/plugin/gnome/NetworkManagerGnomeProxy.cpp @@ -1011,7 +1011,7 @@ namespace WPEFramework } } - if (frequencies) + if (frequencies && frequencies->Count() > 0) { NMLOG_ERROR("MYTEST Frequency present"); Exchange::INetworkManager::WIFIFrequency frequency = Exchange::INetworkManager::WIFI_FREQUENCY_NONE; From 0999c222e55b7cf90e963d394a0af7375b9334cf Mon Sep 17 00:00:00 2001 From: jincysam87 <167995204+jincysam87@users.noreply.github.com> Date: Thu, 14 May 2026 13:51:01 -0400 Subject: [PATCH 37/38] Update NetworkManagerJsonRpc.cpp --- plugin/NetworkManagerJsonRpc.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/plugin/NetworkManagerJsonRpc.cpp b/plugin/NetworkManagerJsonRpc.cpp index 10048160..b63abbe3 100644 --- a/plugin/NetworkManagerJsonRpc.cpp +++ b/plugin/NetworkManagerJsonRpc.cpp @@ -645,8 +645,11 @@ namespace WPEFramework Exchange::INetworkManager::IWIFIFrequencyIterator* frequencies = nullptr; Exchange::INetworkManager::IStringIterator* ssids = NULL; + const bool hasFrequencyLabel = parameters.HasLabel("frequency"); + NMLOG_ERROR("MYTEST: StartWiFiScan hasFrequencyLabel=%s", hasFrequencyLabel ? "true" : "false"); + std::vector frequencyList; - if (parameters.HasLabel("frequency")) + if (hasFrequencyLabel) { NMLOG_ERROR("MYTEST: HAS frequency field"); JsonArray array = parameters["frequency"].Array(); @@ -682,6 +685,7 @@ namespace WPEFramework } } } + NMLOG_ERROR("MYTEST: frequencyListSize=%zu frequenciesPtr=%p", frequencyList.size(), static_cast(frequencies)); if (parameters.HasLabel("ssids")) From 7069aa00468842e8e4aa1c07fa04a18abf601363 Mon Sep 17 00:00:00 2001 From: jincysam87 <167995204+jincysam87@users.noreply.github.com> Date: Thu, 14 May 2026 13:52:39 -0400 Subject: [PATCH 38/38] Update NetworkManagerGnomeProxy.cpp --- plugin/gnome/NetworkManagerGnomeProxy.cpp | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/plugin/gnome/NetworkManagerGnomeProxy.cpp b/plugin/gnome/NetworkManagerGnomeProxy.cpp index 8c0f1c8b..8268ffb6 100644 --- a/plugin/gnome/NetworkManagerGnomeProxy.cpp +++ b/plugin/gnome/NetworkManagerGnomeProxy.cpp @@ -1011,19 +1011,36 @@ namespace WPEFramework } } - if (frequencies && frequencies->Count() > 0) + uint32_t frequencyCount = 0; + if (frequencies) + { + frequencyCount = frequencies->Count(); + NMLOG_ERROR("MYTEST: backend frequenciesPtr=%p count=%u", static_cast(frequencies), frequencyCount); + } + + if (frequencies && frequencyCount > 0) { - NMLOG_ERROR("MYTEST Frequency present"); Exchange::INetworkManager::WIFIFrequency frequency = Exchange::INetworkManager::WIFI_FREQUENCY_NONE; + bool hasValidFrequency = false; while (frequencies->Next(frequency) == true) { - NMLOG_ERROR("MYTEST Frequency present %u", static_cast(frequency)); if (frequency != Exchange::INetworkManager::WIFI_FREQUENCY_NONE) { + hasValidFrequency = true; + NMLOG_ERROR("MYTEST Frequency present %u", static_cast(frequency)); m_filterFrequencies.push_back(frequency); NMLOG_DEBUG("Frequency %u added to scan filtering", static_cast(frequency)); } } + + if (hasValidFrequency) + { + NMLOG_ERROR("MYTEST Frequency present"); + } + else + { + NMLOG_ERROR("MYTEST: backend iterator had %u entries but all were NONE", frequencyCount); + } } nmEvent->setwifiScanOptions(true);