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;

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-05 13:46:23

android wpa_supplicant.c源码解析的相关文章

Android MIFARE NFCA源码解析

Android MIFARE NFCA源码解析TagTechnology定义了所有标签的共有接口类BasicTagTechnology 实现了TagTechnology的一些接口 再有具体的标签协议继承BasicTagTechnologyNFC-A 遵循ISO 14443-3A协议. 关键字ATQA Answer To Request acc. to ISO/IEC 14443-4ATS Answer To Select acc. to ISO/IEC 14443-4DIF Dual Inter

Android 开源项目源码解析(第二期)

Android 开源项目源码解析(第二期) 阅读目录 android-Ultra-Pull-To-Refresh 源码解析 DynamicLoadApk 源码解析 NineOldAnimations 源码解析 SlidingMenu 源码解析 Cling 源码解析 BaseAdapterHelper 源码分析 Side Menu.Android 源码解析 DiscreteSeekBar 源码解析 CalendarListView 源码解析 PagerSlidingTabStrip 源码解析 公共

Android的ViewDragHelper源码解析

其实我想看的是DrawerLayout, 但发现DrawerLayout里面是使用了ViewDragHelper去实现. 谷歌比较早就放出这个类了,但ViewDragHelper是开发中很少用到一个类.顾名思义这是一个和拖曳触摸有关的类. 本着追根溯源的想法, 加上ViewDragHelper的源码也不算多,就决定将ViewDragHelper的源码看一遍.对实现原理了解下. 代码一千多行,看完还是需要点时间的. 因此不会逐一讲完, 当然下面也会放出该类源码的解析,注释中也有一些个人理解的点写在

【Android】EventBus 源码解析

EventBus 源码解析 本文为 Android 开源项目实现原理解析 中 EventBus 部分项目地址:EventBus,分析的版本:ccc2771,Demo 地址:EventBus Demo分析者:Trinea,校对者:扔物线,校对状态:未完成 1. 功能介绍 1.1 EventBus EventBus 是一个 Android 事件发布/订阅框架,通过解耦发布者和订阅者简化 Android 事件传递,这里的事件可以理解为消息,本文中统一称为事件.事件传递既可用于 Android 四大组件

Android开发——Volley源码解析

0. 前言   其实写这篇文章只为一个目的,虽然Volley用起来很爽,但是面试官问你人家内部是怎么实现呢,没看过源码的话,在面试官眼里你和一个拿着一本Volley使用手册的高中生没啥区别.还是那句话说得好,会用一回事,深入理解又是另一回事了. 1.  Volley源码解析 1.1  Volley入口 Volley首先获取到的是RequestQueue实例.源码中则直接调用了newRequestQueue方法. public static RequestQueue newRequestQueue

Android 属性动画 源码解析 深入了解其内部实现

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/42056859,本文出自:[张鸿洋的博客] 1.概述 Android中想做很炫酷的动画效果,相信在很多时候你都可以选择使用属性动画,关于属性动画如何使用,我们已经很详细的写过两篇博客讲解.如果你还不了解,请参考: Android 属性动画(Property Animation) 完全解析 (上) Android 属性动画(Property Animation) 完全解析 (下)

Android LayoutInflater&LayoutInflaterCompat源码解析

本文分析版本: Android API 23,v4基于 23.2.1 1 简介 实例化布局的XML文件成相应的View对象.它不能被直接使用,应该使用getLayoutInflater()或getSystemService(Class)来获取已关联了当前Context并为你正在运行的设备正确配置的标准LayoutInflater实例对象. 例如: LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.

Android常用库源码解析

图片加载框架比较 共同优点 都对多级缓存.线程池.缓存算法做了处理 自适应程度高,根据系统性能初始化缓存配置.系统信息变更后动态调整策略.比如根据 CPU 核数确定最大并发数,根据可用内存确定内存缓存大小,网络状态变化时调整最大并发数等. 支持多种数据源支持多种数据源,网络.本地.资源.Assets 等 不同点 Picasso所能实现的功能,Glide都能做,无非是所需的设置不同.但是Picasso体积比起Glide小太多. Glide 不仅是一个图片缓存,它支持 Gif.WebP.缩略图.Gl

android之LruCache源码解析

移动设备开发中,由于移动设备(手机等)的内存有限,所以使用有效的缓存技术是必要的.android提供来一个缓存工具类LruCache,开发中我们会经常用到,下面来他是如何实现的. 在package android.util包里面有对LruCache定义的java文件.为了能准确的理解LruCache,我们先来看看原文的说明: * A cache that holds strong references to a limited number of values. Each time * a va