我有一个使用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);
注意:
提前感谢您的帮助。