开发问题之DHCP

DHCP

本文主要针对DHCP进行功能扩展,记录一次业务需求修改。

udhcpc客户端主要是维护状态机,主要是如下状态
在这里插入图片描述
而借助udhcpc程序设计的选项,进行功能扩展:

  1. 可以增加自定义选项,进行功能设计;
  2. 也可以通过现有的选项,通过脚本进行功能复用和扩展。例如:-s

了解udhcpc的选项功能

在这里插入图片描述
最后的设计选择了-s进行扩展,run script file.

思路整理

1. 自定义选项

C函数设计中,标志位的设计十分常见。相信大家也肯定定义过类似的函数:有一个参数设计是整型(这种常见),作用是表明事件类型,然后函数实现使用if-else或者swtich进行事件处理。
以上是最简单的设计,当然复杂的其实也是一样的道理。而linux中复杂的多选项设计的时候,就得使用getopt相关的函数进行选项处理。“简单的字符串选项给你弄出花来”。
在这里插入图片描述.ALIGN1是字节对齐(都是为了节省空间并且提高效率),原型可能是用了aligned函数或者使用逻辑运算
·但是此处的udhcpc_longopts定义确实没有看懂,还望有人知道,可以告诉一下?·

2.-s

使用自身选项的-s进行扩展,其实本质就是实现一个脚本,该脚本中的内容被udhcpc的udhcp_run_script()执行.

/* Call a script with a par file and env vars */
void udhcp_run_script(struct dhcpMessage *packet, const char *name);

而整个脚本设计思路根据功能来设计,此处我是借助信号的获取,来判断事件来进行程序的开启和关闭。

总结

整个思路的重点是:getopt的使用和udhcpc -s的使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值