udhcp源码分析1--文件组织结构

Posted 会飞的小丑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了udhcp源码分析1--文件组织结构相关的知识,希望对你有一定的参考价值。

1:dhcpd.c

  里面的main/udhcpd_main函数是整个程序的入口,依次完成的主要工作有读取配置文件信息至全局结构体、记录程序pid number、初始化lease链表、将程序作为daemon运行、死循环中用socket监听报文执行DHCP报文交互逻辑.

2:files.c

  2.1--read_config 一行一行读取配置文件信息,将配置信息填写入全局结构体以供后面访问使用.

  2.2--read_leases/write_leases 读或记录当前租赁出去的ip及到期信息到文件中

3:pidfile.c

  记录当前程序的pid number到文件中

4:lease.c

  在租赁信息链表中添加、查找租赁信息

5:socket.c

  封装创建socket fd的函数以供使用

6:serverpacket.c

  主要封装执行DHCP报文交互逻辑的函数,如sendOffer、sendACK等等

7:packet.c

   是serverpacket.c中函数的辅助函数,实现具体的报文封装事宜

8:options.c

  报文中相关options的操作(1:DHCP交互报文中的options项  2:配置文件中指定的opt项)  

  udhcpd 程序的主要功能就是这些文件实现的,这里忽略了一些重要的全局结构体,比如记录配置文件信息的struct server_config_t server_config和记录已租用出去IP信息的struct dhcpOfferedAddr *leases等等,每个文件中的函数是具体的实现动作,这些将在后面以功能模块的方式解析较为合理。

 

    

   

以上是关于udhcp源码分析1--文件组织结构的主要内容,如果未能解决你的问题,请参考以下文章

7z文件格式及其源码的分析

KLog源码分析

Boltdb源码分析----meta结构

鸿蒙轻内核源码分析:文件系统LittleFS

Topology智能绘图引擎源码分析——项目结构目录梳理

Postgres数据库词法分析和语法分析源码解析