new ldb schema module

Simo Sorce idra at
Thu Jan 6 15:09:23 GMT 2005

On Thu, 2005-01-06 at 20:37 +1100, Andrew Tridgell wrote:
> Simo,
>  > Add a first very basic schema module
>  > To use it you should provide a schema.ldb file where the schema is stored
>  > and load the module in the ldb you want to have schema check activated
> Can you explain why you decided to put the schema in a separate ldb,
> rather than building it into a subtree of the existing ldb? For
> example, using a basedn of "dn=schema" might make sense.

Initially I tought to make it separate and make it possible to see it as
parte of the tree through the ldap server.
Since then I have not thought much about it but just kept separate to
keep the tree clean.
Once the module start to be stable and really usable I think I will move
it into the tree so that even provisioning will be schema checked.
We need it into the tree anyway.

> The reason for putting it in the one ldb is that it allows the
> administrator to backup/restore and generally manipulate a database as
> one file. I think one of the curses of OpenLDAP is that the schema
> isn't integrated in the database itself.

well having 1 or 2 files seem not a big problem to me, the real problem
I see in openldap is not being able to change schema and acls on the
Having to stop the service for such operations really sucks and I want
to avoid that for samba4.

> The obvious format for the schema records is the one exported by LDAP
> databases in the
>    CN=$OBJECTCLASS,CN=Schema,CN=Configuration,... 
> subtree. Is that what you've used?

It is what I will use.

> I also think you really need to create some simple utility functions
> to make the schema.c code more readable. Some of the lines of code are
> over 190 chars wide, and nested 12 levels deep! A few well chosen
> utility functions would help a lot.

Absolutely, I started with a very basci repetitive structure, I've
already spotted points where it is ok to group functions now, and will
do the cleaning work soon.


Simo Sorce
Una scelta di liberta': Software Libero.
A choice of freedom: Free Software.

More information about the samba-technical mailing list