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

1:dhcpd.c

  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项) 

9:arpping.c

  只有一个函数arpping,被check_ip函数调用,使用arp协议检查ip是否已被使用了

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

 

    

   

posted @ 2017-04-11 11:16  会飞的小丑  阅读(579)  评论(0编辑  收藏  举报