udhcp源码详解(一)之文件组织结构(dhcp server) --转
udhcp目录下有十几个源文件,一个源文件相对应一个模块,完成一系列相关的功能,例如在static_leases.c主要针对static_lease链表增删查找等操作。
dhcpd.c—— 整个dhcp server运行的主线,server开始运行是从udhcpd_main函数开
| 始,相当于我们程序的main入口。在dhcpd_main将各个功能模块组合起
| 来实现我们的dhcp server。
|
arpping.c——这个文件里只有一个函数arpping,server在给客户机分配IP地址
| 从IP地址池里找到a Free IP后,会调用arpping函数看网络上是否
| 主机使用该地址。
|
common.c — 引用文件的注释:Functions for debugging and logging as well as some
| other simple helper functions.
|
file.c —— 文件名可以看出她是跟文件打交道的。file.c里有个很重要的函数
| read_config,读取默认配置信息和从配置文件udhcpd.conf文件里读
| 取配置信息,从网上Down个udhcpd.conf,她和Linux下其他配置文
| 件格式一样,以后写这类函数时候可以模仿着写。
|
leases.c—— 针对在dhcpd.h文件里声明的struct dhcpOfferedAddr结构的操作函
| 数。
|
option.c—— 在dhcp交互的数据报文中有个选项字段options,该文件里的函数操作
| 对象也就是选项信息。
|
serverpacket.c 数据报文发送之前,根据不同情况对各个字段的填充相应的信息。
| |
| |
| packet.c—— dhcp报文的发送信息封装与向网络发送。
|
pidfile.c—— Functions to assist in the writing and removing of pidfiles.
| 主要针对 /var/run/udhcpd.pid
|
signalpipe.c— server会监听两个文件描述符,其中一个是”管道”描述符,该描述符
| 的相应操作就在signalpipe.c文件里,另外还有对signal的设置……
|
socket.c—— socket套接字创建,interface信息读取。
|
static_leases.c 对在dhcpd.h里定义的struct static_lease结构体的相应操作函数。
相对应得头文件是对函数声明,以及结构体的定义和宏的定义。
最新文章
- tornado 异步调用系统命令和非阻塞线程池
- Android Studio中获取SHA1或MD5的方法
- ASP.NET MVC4 Forms 登录验证
- c# System.Data.OracleClient需要Oracle客户端软件8.1.7或更高版本
- html5 web database
- windows一些快捷键
- MySql5.7.12设置log-bin
- -Dmaven.multiModuleProjectDirectory system property is not set. Check $M2_HOME environment variable
- JS_Ajax基础
- Tips12: 私人定制 专属的Unity3D 脚本模板
- node.js http.get 和http.post 数据
- 开机自启动redis
- [POJ 2461] Billiard
- ASP。net中如何在一个按钮click事件中调用另一个按钮的click事件
- Mad Lib程序
- redis和spring集成
- 使用BurpSuite进行双文件上传拿Webshell
- Python之List列表的循环和切片
- cocos2d-x学习记录6——自定义Button
- Send or receive files via Xshell
热门文章
- js hover 下拉框
- [POJ] 2223 Muddy Fields
- <;Spring Cloud>;入门四 Feign
- hdu1394(Minimum Inversion Number)线段树
- python_面向对象笔记
- LeetCode(37) Sudoku Solver
- 对于easyui $.messager.alert和 $.messager.confirm 不同浏览器中位置控制
- oo第三单元博客作业
- 使用inline-box代替float
- [转]使用fdisk磁盘分区和 Linux 文件系统