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 。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐