分布式软总线/authmanager/wifi_auth_manager.c文件代码分析(一)


由于代码量较大,这里分为两个部分来讲解。这一部分重点简介前面关于List双向链表的相关函数,后一篇重点讲解整个剩下的关于authmanager顶层函数的封装与功能

知识总结

  1. common_info_manager.h中封装的宏
    在这里插入图片描述
    循环一个链表直到pos指针指到head
    多处的链表操作时都用到了这个循环

总体概述

前一部分的函数块跟bus_manager.c中的函数类似都是关于双向链表的操作

代码详解

由于wifi_auth_manager.h并没有特别新奇的地方,所以这里并不浪费篇幅讲解,有需要的可以自己查看源码

wifi_auth_manager.c

  1. 将aconn指针所指的数据块上链的函数
    我们可以注意到数据插入前,都会有一系列检查——这也是封装函数的用处之一——检查异常
    在这里插入图片描述
  2. 通过唯一标识符fd在List中寻找相应的连接
    在这里插入图片描述
  3. 通过另外的参数IP和onlinestate确定node.aconn
    在这里插入图片描述
  4. 删除结点,结点下List的函数
    在这里插入图片描述
  5. 初始化和删除的函数(没什么多说的)
    在这里插入图片描述
  6. 三个连着的嵌套的用于关闭会话的函数
    void ProcessConnectEvent(int fd, const char *ip)
    void CloseConn(const AuthConn *conn)
    void AuthConnClose(const AuthConn *conn)
    具体的流程如下:
    首先通过传入的fd找到指定的aconn非空时,调用函数CloseConn进行会话的关闭,而在函数CloseConn中通过conn中的fd将密钥链上会话对应的密钥块删除,再调用AuthConnClose将其关闭,调用DelAuthConnNode函数将其从会话链表中删除释放;如果没有找到对应的aconn,则将参数中传入的IP赋给aconn.deviceIp,新建一个aconn,使用函数AddAuthConnToList将其上链。
    在这里插入图片描述
    在这里插入图片描述

欢迎点赞评论关注!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

国家一级假勤奋研究牲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值