wpa_supplicant分析 2. wpa_supplicant

wpa_supplicant


1 wpa_supplicant_init

该函数用于初始化wpa_supplicant。初始化成功后,返回的数据指针可用于添加或删除网络接口,以及最后释放wpa_supplicant


    • 调用wpa_debug_open_file,打开log文件。

    • 调用eap_peer_register_methods,注册与EAP_PEER相关的方法,如EAP_MD5EAP_TLSEAP_MSCHAPv2EAP_PEAPEAP_TTLSEAP_GTCEAP_OTPEAP_SIMEAP_LEAPEAP_PSKEAP_AKAEAP_AKA_PRIMEEAP_FASTEAP_PAXEAP_SAKEEAP_GPSKEAP_WSCEAP_IKEV2EAP_VENDOR_TESTEAP_TNC等,后面会对EAPPEER方法进行详细说明。

    • 调用eloop_init,初始化守护进程所使用到的参数,如daemonize,wait_for_monitor,dbus_ctrl_interface,ctrl_interface,wpa_debug_level,wpa_debug_show_keys等。

    • 调用wpa_supplicant_global_ctrl_iface_init,创建priv->sock并绑定地址os_strlcpy(addr.sun_path,global->params.ctrl_interface,

sizeof(addr.sun_path));

    • 如果有dbus接口,则调用wpa_supplicant_dbus_ctrl_iface_init函数进行初始化。

    • 对所支持的wpa_supplicant驱动进行初始化。

for(i = 0; wpa_supplicant_drivers[i]; i++)

global->drv_priv[i]= wpa_supplicant_drivers[i]->global_init();

2wpa_supplicant_add_iface

该函数的功能是为wpa_supplicant添加一个网络接口。该函数在wpa_supplicant_run之前调用。另外,wpa_supplicant运行后也可动态添加一个网络接口,比如,一个热插拔网卡插入时。

global参数:wpa_supplicant_init返回的全局数据

iface参数:接口配置选项

返回值:如果添加成功,则返回接口否则返回NULL


  • 调用wpa_supplicant_alloc(),申请一个新的wpa_supplicant

  • 调用wpa_supplicant_init_ifacewpa_supplicant_init_iface2初始化新接口,wpa_supplicant_init_iface功能是将iface去付给新申请的wpa_supplicantwpa_supplicant_init_iface2功能是初始化驱动接口,注册驱动事件以及设置驱动参数,初始化状态机,初始化控制接口。

  • 调用wpas_dbus_register_iface注册dbus控制接口。

3 wpa_supplicant_run

该函数的功能是跑主事件循环。


  • 调用eloop_register_signal_terminate注册主循环调用的终止处理函数。

  • 调用eloop_register_signal_reconfig注册主循环调用的重配置函数。

  • 调用eloop_run跑循环体,对各种事件消息进行分配。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值