我正在尝试使用 OpenLDAP API 进行 LDAP 搜索。我已经成功连接并绑定到服务器。我已经用 ldap_search_ext_s() 完成了搜索,并用 ldap_parse_result() 解析了结果。但是,我似乎无法弄清楚如何获得搜索的实际结果。不幸的是,OpenLDAP C API 最近发生了变化,Internet 上的许多现有示例都没有使用当前的 API。
我已经尝试使用 ldap_first_attribute()、ldap_next_attribute() 和 ldap_get_values(),如http://www-archive.mozilla.org/directory/csdk-docs/search.htm所示(示例 6-13)。但是,似乎 ldap_get_values() 现在已弃用,而 ldap_get_values_len() 是最接近的替代品。新函数没有返回 char**,而是返回 berval**。我试图通过创建一个值为 barval**[i] 的 berval* 来调整此示例代码。这会导致编译成功,但会在 ber_scanf() 处进行核心转储。
有谁知道如何使用 OpenLDAP C API 获取 LDAP 搜索的结果?
更新:
特别是,我在问如何从搜索消息中获取请求的属性。