udhcpd解析域名_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等等,每个文件中的函数是具体的实现动作,这些将在后面以功能模块的方式解析较为合理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值