diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2017-04-01 02:34:53 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2017-04-01 02:34:54 +0000 |
commit | 1118034c1c7435138d13f20d232c84ec7bc13c8f (patch) | |
tree | 6c4e56092a3916792ea3d7d3c0fc725dfb048386 | |
parent | a4f38dba0146b8057c2a403991e099e0ad4ed62d (diff) | |
parent | 73d28fd8e60d757c8f648bae6f884fc799a077c1 (diff) | |
download | wpa_supplicant_8-1118034c1c7435138d13f20d232c84ec7bc13c8f.tar.gz |
Merge "wpa_supplicant(hidl): Invoke onDeviceFound for all cases" into oc-dev
-rw-r--r-- | wpa_supplicant/hidl/hidl.cpp | 2 | ||||
-rw-r--r-- | wpa_supplicant/hidl/hidl_manager.cpp | 19 |
2 files changed, 14 insertions, 7 deletions
diff --git a/wpa_supplicant/hidl/hidl.cpp b/wpa_supplicant/hidl/hidl.cpp index 753c87b2..3acc7e24 100644 --- a/wpa_supplicant/hidl/hidl.cpp +++ b/wpa_supplicant/hidl/hidl.cpp @@ -370,7 +370,7 @@ void wpas_hidl_notify_p2p_device_found( const struct p2p_peer_info *info, const u8 *peer_wfd_device_info, u8 peer_wfd_device_info_len) { - if (!wpa_s || !addr || !info || !peer_wfd_device_info) + if (!wpa_s || !addr || !info) return; wpa_printf( diff --git a/wpa_supplicant/hidl/hidl_manager.cpp b/wpa_supplicant/hidl/hidl_manager.cpp index a6749e8f..a2eb101b 100644 --- a/wpa_supplicant/hidl/hidl_manager.cpp +++ b/wpa_supplicant/hidl/hidl_manager.cpp @@ -1058,17 +1058,24 @@ void HidlManager::notifyP2pDeviceFound( const struct p2p_peer_info *info, const u8 *peer_wfd_device_info, u8 peer_wfd_device_info_len) { - if (!wpa_s || !addr || !info || !peer_wfd_device_info) + if (!wpa_s || !addr || !info) return; if (p2p_iface_object_map_.find(wpa_s->ifname) == p2p_iface_object_map_.end()) return; - if (peer_wfd_device_info_len != kWfdDeviceInfoLen) { - wpa_printf( - MSG_ERROR, "Unexpected WFD device info len: %d", - peer_wfd_device_info_len); + std::array<uint8_t, kWfdDeviceInfoLen> hidl_peer_wfd_device_info{}; + if (peer_wfd_device_info) { + if (peer_wfd_device_info_len != kWfdDeviceInfoLen) { + wpa_printf( + MSG_ERROR, "Unexpected WFD device info len: %d", + peer_wfd_device_info_len); + } else { + os_memcpy( + hidl_peer_wfd_device_info.data(), + peer_wfd_device_info, kWfdDeviceInfoLen); + } } callWithEachP2pIfaceCallback( @@ -1077,7 +1084,7 @@ void HidlManager::notifyP2pDeviceFound( &ISupplicantP2pIfaceCallback::onDeviceFound, std::placeholders::_1, addr, info->p2p_device_addr, info->pri_dev_type, info->device_name, info->config_methods, - info->dev_capab, info->group_capab, peer_wfd_device_info)); + info->dev_capab, info->group_capab, hidl_peer_wfd_device_info)); } void HidlManager::notifyP2pDeviceLost( |