r21806: I've been working over the last week to fix up the LDAP backend for
authorAndrew Bartlett <abartlet@samba.org>
Tue, 13 Mar 2007 00:59:06 +0000 (00:59 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:49:29 +0000 (14:49 -0500)
commit9b03286b32a916dbef59f1459eefa01f0ebfeed3
treeacc52923c4ce8e92dc902b201c12b046f8a04826
parentb6b98f63009b00e3e6766eee46d1142b8772c966
r21806: I've been working over the last week to fix up the LDAP backend for
Samba4.  This only broke on global catalog queries, which turned out to
be due to changes in the partitions module that metze needed for his
DRSUAPI work.

I've reworked partitions.c to always include the 'problematic' control,
and therefore demonstrated that this is the issue.  This ensures
consistency, and should help with finding issues like this in future.

As this control (DSDB_CONTROL_CURRENT_PARTITION_OID) is not intended to
be linearised, I've added logic to allow it to be skipped when creating
network packets.

I've likewise make our LDAP server skip unknown controls, when marked
'not critical' on it's input, rather than just dropping the entire
request.  I need some help to generate a correct error packet when it is
marked critical.

Further work could perhaps be to have the ldap_encode routine return a
textual description of what failed to encode, as that would have saved
me a lot of time...

Andrew Bartlett
(This used to be commit eef710668f91d1bbaa2d834d9e653e11c8aac817)
source4/dsdb/samdb/ldb_modules/partition.c
source4/ldap_server/ldap_server.c
source4/libcli/cldap/cldap.c
source4/libcli/ldap/ldap.c
source4/libcli/ldap/ldap_client.c
source4/libcli/ldap/ldap_controls.c