android11 wpa_supplicant源码架构分析
android11 wpa_supplicant源码架构分析
·
1 位置: external/wpa_supplicant_8/
notify.c:
将一个子系统的事件通知给另外一个子系统,而他们是独立的。
将部分事件转发给HIDL接口的实现类hidl.cpp ,
部分事件转发给dbus:
如:
int wpas_notify_iface_added(struct wpa_supplicant *wpa_s)
{
/* HIDL interface wants to keep track of the P2P mgmt iface. */
if (wpas_aidl_register_interface(wpa_s))
return -1;
return 0;
}
void wpas_notify_disconnect_reason(struct wpa_supplicant *wpa_s)
{
wpa_printf(MSG_ERROR, "notify.c : wpas_notify_disconnect_reason");
if (wpa_s->p2p_mgmt)
return;
wpas_dbus_signal_prop_changed(wpa_s, WPAS_DBUS_PROP_DISCONNECT_REASON);
wpas_hidl_notify_disconnect_reason(wpa_s);
}
events.c:事件处理
事件来源于2个地方:
1 wpa_supplicant_event 函数
在函数 wpa_supplicant_event 里面把接受到的事件发给对应的处理函数,如收到EVENT_DEAUTH事件就会分发给wpas_event_deauth,
wpas_event_disconnect
wpas_event_disconnect
wpa_supplicant_event_disassoc_finish 在这里通知notify.c的wpas_notify_disconnect_reason。
被调用的地方有 : driver_nl80211_event.c
1 wpa_supplicant_event_global 函数
wpa_supplicant.c
核心类:
wpa_supplicant_init :
初始化各种参数,netlink socket 等 。在进程启动的时候被main调用 。
wpa_supplicant_add_iface :
wpa_supplicant_driver_init:
wpa_supplicant_add_iface:
driver_nl80211.c:
实现了驱动需要的接口,
name = “nl80211”,
放入数组 wpa_drivers 。
更多推荐
已为社区贡献50条内容
所有评论(0)