wpa_supplicant代码初探收藏
wpa_supplicant代码初探收藏 这几天在尝试把wpa_supplicant移植到windows ce上,替换微软的WZC。先把源代码down下来,了解了一下大致的结构。 wpa_supplicant运行的整个 核心就是 eloop_run 函数 。这个函数负责处理应用程序的请求和数据链路层发来的EAPOL数据。eloop的针对不同的平台有好几个实现版本,我这里只讨论针对WIN32的eloop_win.c版本。 外部需要通过调用eloop_register_event或者eloop_register_read_sock来注册一个回调函数,并绑定了一个相应的事件。eloop会等待每一个事件的发生,并在事件发生时调用相应的回调函数进行处理。 所有与平台相关的网络驱动程序接口,都被通过wpa_driver_ops结构抽象成统一的接口,不管你是WEXT或者NDIS。因此也实现了平台无关性。 此外,wpa_supplicant与应用层通信的方式多种多样,有pipe、socket,你也可以实现自己的方式。只需要实现几个基本的函数就可以了: wpa_supplicant_global_ctrl_iface_init wpa_supplicant_global_ctrl_iface_deinit wpa_supplicant_ctrl_iface_init wpa_supplicant