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等等,每個文件中的函數是具體的實現動作,這些將在后面以功能模塊的方式解析較為合理。
?
轉載于:https://www.cnblogs.com/Flychown/p/6692701.html
總結
以上是生活随笔為你收集整理的udhcp server端源码分析1--文件组织结构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ubuntu配置交叉编译环境
- 下一篇: 详解log4j2(上) - 从基础到实战