第三行是什么意思。我在绑定用户时运行openldap服务器时收到此消息。
entry_decode(cn=user,dc=example,dc=com)
5a3fd996 => bdb_search
5a3fd996 bdb_dn2entry("cn=kerberoskdc,cn=config,dc=example,dc=com")
这是slapd
请求其后端加载对应于可分辨名称"cn=kerberoskdc,cn=config,dc=example,dc=com"
的数据。在执行ldap操作时,这会发生很多事情,dn用作快速查找的主键。
bdb_dn2entry
是slapd
后端使用的内部函数,它在执行ldap操作时被调用(您应该能够看到哪个操作在日志文件中触发此行出现的调用)。
Openldap使用后端作为普通的slapd数据库。后端执行存储或检索数据以响应LDAP请求的实际工作。后端可以静态编译为slapd,或者当启用模块支持时,可以动态加载它们。
OpenLDAP的
bdb
abdhdb
后端使用Oracle Berkeley DB(BDB)包来存储数据。
bdb_dn2entry
是一个实际从数据库中检索数据的函数。它与其他ldap的后端共享(不仅适用于bdb / hdb),因为它在源代码的头文件proto-bdb.h中定义为函数原型:
/**
* dn2entry.c
*/
#define bdb_dn2entry BDB_SYMBOL(dn2entry)
int bdb_dn2entry LDAP_P(( Operation *op, DB_TXN *tid,
struct berval *dn, EntryInfo **e, int matched,
DB_LOCK *lock ));
实际行动发生在dn2entry.c:
dn2entry
在缓存/索引中查找dn
并返回相应的条目。如果未找到请求的DN且matched
为TRUE
,则返回DN的最近祖先的信息。否则EntryInfo e
是NULL
。