使用DHCP库会产生无限循环

时间:2014-08-11 07:05:03

标签: c linux dhcp

我有一个使用DHCP库(代码:4.2.6)的代码来获取连接到系统的DHCP客户端的硬件地址。在DHCP对象初始化之后的这个过程中,我尝试了如下的dhcp_connect(),这导致了一个infinte循环。

dhcpctl_initialize ();
status=dhcpctl_connect (&connection, "127.0.0.1", 7911, 0);

当我试图调试这个问题时,我发现了一个函数“omapi_wait_for_completion”(在ompai / dispatch.c中),有一个do-while检查服务器对象及其状态,该对象应该改变其状态以准备好来离开这个循环,但这永远不会发生,导致无限循环。

这里我只是将循环复制为参考。

do {
    status = omapi_one_dispatch ((omapi_object_t *)waiter, t);
    if (status != ISC_R_SUCCESS)
      return status;
   } while (!waiter || !waiter -> ready);

注意:

  • 当我运行从系统命令行中的代码生成的二进制文件时没有问题,但是当我通过应用程序触发相同的命令时,我们遇到了这个问题。
  • 触发我的二进制文件的应用程序不使用DHCP库或文件。
  • 请注意,具有相同应用程序的相同二进制文件正在运行 使用较旧的DHCP软件包(3.0.5)。

提前感谢您的帮助。

0 个答案:

没有答案