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
This commit is contained in:
lesl
2021-01-08 15:22:49 +08:00
committed by Etan Cohen
parent ef6aafa210
commit f012b65dc0

View File

@@ -1795,7 +1795,16 @@ bool WifiChip::isDualStaConcurrencyAllowedInCurrentMode() {
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";