现在的位置: 主页 > 商讯 > 文章列表

android wpa_supplicant.c源码解析

作者:北京财贸天阶投资顾问有限公司 来源:www.usasheng.com 发布时间:2017-09-06 10:01:09
 

android wpa_supplicant.c源码解析

要看明白wpa_supplicant.c的代码,首先需要搞清楚三个很重要的结构体: struct wpa_supplicant,struct wpa_config和wpa_ssid。下面对struct wpa_supplicant的各个成员代表的含义进行说明。

struct wpa_supplicant {

u8 bssid[ETH_ALEN];//连接到的bssid对应的mac地址,只有在认证时才会设置此值

u8 pending_bssid[ETH_ALEN];//认证时将要进行连接的bssid

struct wpa_bss *current_bss;//当前连接的ssid

unsigned char own_addr[ETH_ALEN];//本机对应的mac地址

int reassociate;//认证失败后置为1

int new_connection;//连上时值为0,没连上值为1

int disconnected;//指示当前supplicant是否处于disconnected状态

int *next_scan_freqs;//扫描特定bss时用特定的freq

enum scan_req_type scan_req;//scan类型,有连接扫描,自动扫描,手动扫描

int normal_scans;//连接扫描优先自动扫描

int prev_scan_wildcard;//分为全扫描还是针对特定ssid的扫描

struct wpa_radio_work *connect_work;//注意struct wpa_radio_work和struct wpa_supplicant相互之间的关系

int group_cipher;//多播密码

int pairwise_cipher;//单播密码

int key_mgmt;//单播密钥管理类型

int mgmt_group_cipher;//多播密钥管理类型

int wpa_proto;//支持的安全方式,如WPA/WPA2(RSN)

struct l2_packet_data *l2;//数据链路层EAPOL数据包

int eapol_received;//接收到的EAPOL数据包的个数,总共为4个

unsigned int drv_flags;//driver的当前状态及能承担的角色

struct eapol_sm *eapol;//对应的struct eapol_sm状态机

struct wpa_sm *wpa;//对应的struct wpa_sm状态机

struct wpa_config *conf;//struct wpa_supplicant对应wpa_supplicant结构体

char *confname;//对应wpa_supplicant.conf文件

char *confanother;//对应p2p_supplicant.conf文件

enum wpa_states wpa_state;//对应WPA_DISCONNECTED等def.h中定义的状态

struct wpa_supplicant *next;//说明struct wpa_supplicant形成了一个链表

struct wpa_supplicant *parent;//对应struct wpa_supplicant链表的头节点

struct wpa_global *global;//全局管理struct wpa_supplicant,包含struct wpa_supplicant头节点

char ifname[100];//ctrl iface接口的名字,比较ifname和ctrl_iface

struct ctrl_iface_priv *ctrl_iface;

企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:天门网站制作 http://tianmen.666rj.com

  • 上一篇:分享本人做网络几年的心得经验
  • 下一篇:最后一页
  •