【WiFi】Hostapd工作流程分析

news2024/11/20 18:35:46

目录

1.Hostapd概述

2.Hostapd代码框架

 3.Hostapd各种命令配置工具

4.hostaod的主函数

 5.hostaod代码分析


1.Hostapd概述

        Hostapd是一个运行在用户态的守护进程,可以通过Hostapd来读取配置文件,通过nl802.11来控制底层的状态如RTS/CTS beacon帧间隔等等信息;也可以读取相关的信息。

2.Hostapd代码框架

  其代码框架如下图所示:hostapd_cli是基于文本的命令命令界面,GUI则是图形控制界面;event loop是一个死循环函数用于接收和处理各种事件信息。

 3.Hostapd各种命令配置工具

下图是各种命令配置工具以及无线工作流程:

         实际上可以看到无论是wpa_supplient iw还是hostapd工具都是通过调用libnl的相关方法来完成信息的配置预读取的。

4.hostaod的主函数

         接下来分析hostaod的主函数:

int main(int argc, char *argv[])
{
    struct hapd_interfaces interfaces;
    int ret = 1;
    size_t i, j;
    int c, debug = 0;
    const char *log_file = NULL;
    const char *entropy_file = NULL;
    char **bss_config = NULL, **tmp_bss;
    size_t num_bss_configs = 0;
#ifdef CONFIG_DEBUG_LINUX_TRACING
    int enable_trace_dbg = 0;
#endif /* CONFIG_DEBUG_LINUX_TRACING */

    if (os_program_init())
        return -1;

    os_memset(&interfaces, 0, sizeof(interfaces));
    interfaces.reload_config = hostapd_reload_config;
    interfaces.config_read_cb = hostapd_config_read;
    interfaces.for_each_interface = hostapd_for_each_interface;
    interfaces.ctrl_iface_init = hostapd_ctrl_iface_init;
    interfaces.ctrl_iface_deinit = hostapd_ctrl_iface_deinit;
    interfaces.driver_init = hostapd_driver_init;
    interfaces.global_iface_path = NULL;
    interfaces.global_iface_name = NULL;
    interfaces.global_ctrl_sock = -1;

    wpa_sup

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/830301.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

录音怎么转换成文字?这几种简单转换方法学起来

将录音转换成文字可以方便查找和引用重要信息,可以使用搜索功能快速找到关键词和短语,而无需听整个录音。其次,将录音转换成文字可以提高准确性和完整性,因为可以在记录文本中添加遗漏的细节和备注。此外,将录音转换成…

【cluster_block_exception】写操作elasticsearch索引报错

【cluster_block_exception】操作elasticsearch索引b报错 背景导致原因:解决方法: 背景 今天线上elk的数据太多,服务器的空间不足了。所以打算删除一些没用用的数据。我是用下面的request: POST /{index_name}/_delete_by_query…

Java基础面试题3

Java基础面试题 1:https://cloud.fynote.com/share/d/qPGzAVr5 2:https://cloud.fynote.com/share/d/MPG9AVsAG 3:https://cloud.fynote.com/share/d/qPGHKVsM 一、JavaWeb专题 1.HTTP响应码有哪些 1、1xx(临时响应&#xf…

调整心态,走出焦虑,追求更高的自我!

每个人都希望能够成为最好的自己,追求自我提升和进步。然而,在这个竞争激烈的社会中,我们常常会感到焦虑和迷茫。看着周围的人在学习、工作、生活中取得成功,我们不禁会问自己,为什么他们能够做到,而我却做…

识别万物扫一扫,遇到不认识的物品扫就完事

随着科技的不断发展,移动设备已经成为人们日常生活中必不可少的工具。移动设备上的扫一扫功能,可以通过摄像头扫描物品,识别并获取相关信息,为人们的生活带来了很大的便利。本文将探讨识别万物扫一扫的使用及原理。 识别万物的使用…

opencv-32 图像平滑处理-高斯滤波cv2.GaussianBlur()

在进行均值滤波和方框滤波时,其邻域内每个像素的权重是相等的。在高斯滤波中,会将中心点的权重值加大,远离中心点的权重值减小,在此基础上计算邻域内各个像素值不同权重 的和。 基本原理 在高斯滤波中,卷积核中的值不…

【TIZI】霆智服务器登录控制太后,显示no VNC

【问题描述】 登录霆智服务器管理平台后, 点击【控制台】出现no VNC界面, 以及可能会显示 Error 500: closing file "var/tmp/pve-reserved-ports.tmp.1514’ failed - No space left on device。 最终该界面停留在Loading状态。 【解决方法】 方法…

性能测试工具在提升软件质量和用户体验方面的关键作用

在当今的数字时代,软件应用的性能和响应速度对于用户体验和企业的成功至关重要。为了满足用户对高性能和卓越体验的期望,开发团队需要使用专业的性能测试工具来检测和改进应用程序的性能。本文将讨论性能测试工具在提升软件质量和用户体验方面的关键作用…

养鸡场损失背后,是通讯故障还是数据大危机

近日,一场特殊的案件完成了判决,由于设备发生通信故障导致风机停止工作,进而导致1466只养殖的蛋鸡死亡,造成了巨额财产损失。最终,提供物联网终端设备的神桥公司被判处承担农场的70%的赔偿责任。 虽然被答辩人未公开表…

【漏洞复现】Metabase 远程命令执行漏洞(CVE-2023-38646)

文章目录 前言声明一、漏洞介绍二、影响版本三、漏洞原理四、漏洞复现五、修复建议 前言 Metabase 0.46.6.1之前版本和Metabase Enterprise 1.46.6.1之前版本存在安全漏洞,未经身份认证的远程攻击者利用该漏洞可以在服务器上以运行 Metabase 服务器的权限执行任意命…

光谱通用积分球的定义和原理

积分球是一个中空的、内壁涂以理想漫反射材料的球体,外部材质一般为金属材料,球壁上开有若干个窗孔,用以放置光接收器或作为球体的进光孔。进入积分球内部的光经内壁漫反射层多次反射以后,在整个内壁上都能得到均匀的照度&#xf…

大数据技术之Hadoop(二)

目录 一、Hadoop的诞生 二、大数据概述 三、大数据软件生态 3.1 数据存储相关技术 3.2 数据计算相关技术 3.3 数据传输相关技术 四、什么是Hadoop 本篇主要讲解大数据的核心概念以及Hadoop的基本介绍。 一、Hadoop的诞生 大数据的发展与日益庞大的数据量是密不可分的。从…

2023 7.31~8.6 周报 (多尺度的DL-FWI + 自然图像的风格迁移速度模型)

->目录<- 0 上周回顾1 本周论文背景简述2 模型架构3 风格化速度模型4 训练与实际数据的测试5 存在的一些问题6 总结和下一步工作 0 上周回顾 上周完成了VelocityGAN的重现和学习. 认识到了利用判别器网络对于常规网络进行约束是很一种很高效的设计思路. 1 本周论文背景…

恒运资本:股票总市值是什么意思?

职业新手可能会疑惑地问&#xff0c;股票总市值到底是什么意思&#xff1f;究竟&#xff0c;这是普通出资者常常看到的词汇&#xff0c;要了解股票总市值的含义&#xff0c;是需求了解金融商场的基本概念的。 股票总市值简介 股票的总市值是由公司一切的股票的数量乘以现在的价…

PREEvision Client 10.6.0

PREEvision Client 10.6.0 2692407267qq.com&#xff0c;更多内容请见http://user.qzone.qq.com/2692407267/

cookie的secure属性详解

cookie的secure属性详解 今天做项目的时候涉及到了cookie跨域传递的问题&#xff0c;也因此了解了cookie的一个属性——secure。 顾名思义&#xff0c;这个属性就是用来保证cookie的安全的。 当secure属性设置为true时&#xff0c;cookie只有在https协议下才能上传到服务器&a…

认识Webpack插件Plugin;CleanWebpackPlugin插件;HtmlWebpackPlugin;DefinePlugin;Mode模式

目录 1_认识插件Plugin2_CleanWebpackPlugin3_HtmlWebpackPlugin4_DefinePlugin4.1_介绍4.2_DefinePlugin的使用 5_Mode模式 1_认识插件Plugin Webpack的另一个核心是Plugin&#xff0c;官方有这样一段对Plugin的描述&#xff1a; While loaders are used to transform certai…

Linux - 进程控制(进程替换)

0.引入 创建子进程的目的是什么&#xff1f; 就是为了让子进程帮我执行特定的任务 让子进程执行父进程的一部分代码 如果子进程想执行一个全新的程序代码呢&#xff1f; 那么就要使用 进程的程序替换 为什么要有程序替换&#xff1f; 也就是说子进程想执行一个全新的程序代码&a…

P3957 [NOIP2017 普及组] 跳房子 (动态规划)(内附封面)

[NOIP2017 普及组] 跳房子 题目背景 NOIP2017 普及组 T4 题目描述 跳房子&#xff0c;也叫跳飞机&#xff0c;是一种世界性的儿童游戏&#xff0c;也是中国民间传统的体育游戏之一。 跳房子的游戏规则如下&#xff1a; 在地面上确定一个起点&#xff0c;然后在起点右侧画…

3.病人排队

【题目】 病人登记看病&#xff0c;编写一个程序&#xff0c;将登记的病人按照以下原则排出看病的先后顺序&#xff1a; 老年人&#xff08;年龄 > 60岁&#xff09;比非老年人优先看病。 老年人按年龄从大到小的顺序看病&#xff0c;年龄相同的按登记的先后顺序排序。 非…