zoukankan      html  css  js  c++  java
  • 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等等,每个文件中的函数是具体的实现动作,这些将在后面以功能模块的方式解析较为合理。

        

       

  • 相关阅读:
    Mysql update from
    抽象类
    表自链接递归查询死循环
    复制订阅服务器和 AlwaysOn 可用性组 (SQL Server)
    C#找出接口的所有实现类并遍历执行这些类的公共方法
    Cors Http 访问控制
    返回参数去掉xml格式,以纯json格式返回(转)
    混布技术提升资源利用率
    fair scheduler配置
    ambari安装
  • 原文地址:https://www.cnblogs.com/Flychown/p/6692701.html
Copyright © 2011-2022 走看看