wifidog client_list.c&.h分析

来源:互联网 发布:nginx动静分离原理 编辑:程序博客网 时间:2024/05/17 22:25

同样读.c文件注释获得.c中函数功能为client list


31-45头文件,不在说明


48 互斥锁,防止client list修改过程中可能出现的问题


53 头结点,t_client定义节点的信息,在.h文件中定义,包括IP,MAC,TOKEN,防火墙中状态,HTTP socket ,流量等


流量在.h中定义了_t_counters结构,包括上行总流量,下行总流量,重启wifidog之前的上行总流量,下行总流量。


client_get_first_client()函数获取连接列表中的第一个节点,即第一client的信息。这个函数主要在firewall.c 中调用,如fw_init()函数中。

client_list_init()函数用于初始化连接列表。只在gateway.c中main函数中调用。

client_list_append()函数在原有基础上增加一个新节点,即增加一个新client,x新client有如下属性,ip,mac,token,即该函数的参数。此函数只在http.c中被

http_callback_auth()函数调用。

client_list_find()函数在列表中查找指定ip和mac的client信息,此函数在3个文件中被调用,auth.c,firewall.c和http.c

client_list_find_by_ip()函数和上一个函数功能相近,只是此函数只使用ip进行查询,这个函数在大致这几个地方被调用auth.c,fw_iptables.c

client_list_find_by_mac()和client_list_find_by_token()和上一相同原理

_client_list_free_node()释放掉节点内存,防止内存泄露,在client_list_delete()中调用

client_list_delete()从连接列表中移除指定节点,并释放掉节点内存,主要在Firewall.c和http.c中调用



0 0
原创粉丝点击