wifi: fix incorrect active wlan iface in bridged mode
The hal use first active wlan iface to get chip info.
It should should return active wlan instance in bridged mode.
Bug: 162686273
Test: Manual test.
1. Wifi Off (SAA off), make sure bridged AP is first wlan iface
2. Enable bridged mode
Change-Id: Id5a3d5ab53c6ed34d5633be22ad56070f5f0d0e2
diff --git a/wifi/1.5/default/wifi_chip.cpp b/wifi/1.5/default/wifi_chip.cpp
index a37fee2..80a48f5 100644
--- a/wifi/1.5/default/wifi_chip.cpp
+++ b/wifi/1.5/default/wifi_chip.cpp
@@ -1795,7 +1795,16 @@
std::string WifiChip::getFirstActiveWlanIfaceName() {
if (sta_ifaces_.size() > 0) return sta_ifaces_[0]->getName();
- if (ap_ifaces_.size() > 0) return ap_ifaces_[0]->getName();
+ if (ap_ifaces_.size() > 0) {
+ // If the first active wlan iface is bridged iface.
+ // Return first instance name.
+ for (auto const& it : br_ifaces_ap_instances_) {
+ if (it.first == ap_ifaces_[0]->getName()) {
+ return it.second[0];
+ }
+ }
+ return ap_ifaces_[0]->getName();
+ }
// This could happen if the chip call is made before any STA/AP
// iface is created. Default to wlan0 for such cases.
LOG(WARNING) << "No active wlan interfaces in use! Using default";