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

        

       

  • 相关阅读:
    字符串算法—正则表达式
    字符串算法—字符串搜索
    字符串算法—字典树
    字符串算法—字符串排序(下篇)
    字符串算法—字符串排序(上篇)
    图表算法—最短路径
    基本算法——前缀和与差分
    图论——图的表示
    基本算法——康托展开与逆康托展开
    基本算法——离散化
  • 原文地址:https://www.cnblogs.com/Flychown/p/6692701.html
Copyright © 2011-2022 走看看