From: Kurt D. Z. <Ku...@Op...> - 2000-11-29 17:00:54
|
BTW, OpenLDAP 2.x provides an LDAPv3 implementation. At 10:46 AM 11/29/00 +0000, Chris Ridd wrote: >OK, that's not the way LDAP does it really. LDAPv3 servers store schema in >special places called subentries in the directory, and places pointers (ie >DNs) to those subentries in the subschemaSubentry attribute in the root DSE. Every entry should have a subschemaSubentry attribute whose value refers to the subschema entry (or subentry) which controls it. One must be very careful using the subschemaSubentry attribute in the root DSE due to the fact that there may be multiple subschema subentries and the root DSE provides no mechanism for the client to relate which subentry controls which entry held by the server. Client developers should avoid using the subschemaSubentry within the root DSE as this mechanism is likely to be changed when LDAPv3 goes from Proposed to Draft Standard. >What $ldap->schema() does is read the root entry, read the >subschemaSubentry attribute from there, and then read the schema from those >subentries. > >To shortcut this extra read, and to support servers that don't contain a >subschemaSubentry attribute in the root DSE but do hold schema in the >directory, you can also tell $ldap->schema() to read the subschema from a >certain DN, by saying $ldap->schema(dn => 'where the subschema is') > >I think you should probably just remove the dn arguments from the call to >$ldap->schema(). > >Cheers, > >Chris |