udhcp源码详解(一)

udhcp源码详解(一)             之文件组织结构(dhcp server)

Author : hui <632254504@qq.com>

From : <http://blog.csdn.net/hui_love2046>

Created : 2010-10-2

 

       udhcp目录下有十几个源文件,一个源文件相对应一个模块,完成一系列相关的功能,例如在static_leases.c主要针对static_lease链表增删查找等操作。

 

       dhcpd.c——   整个dhcp server运行的主线,server开始运行是从udhcpd_main函数开

|      始,相当于我们程序的main入口。在dhcpd_main将各个功能模块组合起

|      来实现我们的dhcp server

                     |

              arpping.c——这个文件里只有一个函数arppingserver在给客户机分配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文件里读

|             取配置信息,从网上Downudhcpd.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结构体的相应操作函数。

 

相对应得头文件是对函数声明,以及结构体的定义和宏的定义。

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值