我试图了解如何正确实现对 LDAP 服务器的 OpenLDAP 绑定请求的超时。根据我的发现,似乎有两种方法可以做到这一点,LDAP_OPT_TIMELIMIT 和 LDAP_OPT_TIMEOUT。我的主要困惑来自于试图弄清楚这些之间的区别。
据我了解,TIMELIMIT 是一个 LDAP 标准,它为任何 ldap 搜索设置请求/响应周期的时间限制。至少在 Windows 中,默认值为 120 秒。
另一方面,TIMEOUT 是特定于 OpenLDAP 的,纯粹在客户端用于超时 LDAP 绑定请求。这实际上听起来最接近我想要实现的。我从讨论中知道,使用 ldap_set_opt 进行 TIMEOUT 直到 2.4 才完全实现。从如何导致 ldap_simple_bind_s 超时?我知道早期版本的解决方法是使用异步绑定,然后使用带有超时的 ldap_result 和超时情况下的 ldap_abandon_ext 以丢弃请求。这是有道理的,尽管在 2.4 版中查看同步绑定的源代码,但它似乎从未以这种方式处理超时。这让我想知道调用 ldap_abandon_ext 的重要性是什么。
任何答案或见解将不胜感激。