svn commit: samba r17703 - in branches/SAMBA_4_0/source/dsdb/samdb/ldb_modules: .

abartlet at samba.org abartlet at samba.org
Tue Aug 22 10:05:22 GMT 2006


Author: abartlet
Date: 2006-08-22 10:05:20 +0000 (Tue, 22 Aug 2006)
New Revision: 17703

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=17703

Log:
Fixes to enable the entryUUID module to work for it's objectClass ->
OID mappings.

The key point is to 'enable' the partitions in the partitions module
before the init is complete.  That way, the modules can perform
searches that use partitions.

Andrew Bartlett

Modified:
   branches/SAMBA_4_0/source/dsdb/samdb/ldb_modules/entryUUID.c
   branches/SAMBA_4_0/source/dsdb/samdb/ldb_modules/partition.c


Changeset:
Modified: branches/SAMBA_4_0/source/dsdb/samdb/ldb_modules/entryUUID.c
===================================================================
--- branches/SAMBA_4_0/source/dsdb/samdb/ldb_modules/entryUUID.c	2006-08-22 07:20:59 UTC (rev 17702)
+++ branches/SAMBA_4_0/source/dsdb/samdb/ldb_modules/entryUUID.c	2006-08-22 10:05:20 UTC (rev 17703)
@@ -116,7 +116,7 @@
 	entryUUID_private = talloc_get_type(map_private->caller_private, struct entryUUID_private);
 	list = entryUUID_private->objectclass_res;
 
-	for (i=0; list && i < list->count; i++) {
+	for (i=0; list && (i < list->count); i++) {
 		if (ldb_attr_cmp(val->data, ldb_msg_find_attr_as_string(list->msgs[i], "lDAPDisplayName", NULL)) == 0) {
 			char *dn = ldb_dn_linearize(ctx, list->msgs[i]->dn);
 			return data_blob_string_const(dn);
@@ -137,7 +137,7 @@
 	entryUUID_private = talloc_get_type(map_private->caller_private, struct entryUUID_private);
 	list = entryUUID_private->objectclass_res;
 
-	for (i=0; list && i < list->count; i++) {
+	for (i=0; list && (i < list->count); i++) {
 		if (ldb_attr_cmp(val->data, ldb_msg_find_attr_as_string(list->msgs[i], "lDAPDisplayName", NULL)) == 0) {
 			const char *oid = ldb_msg_find_attr_as_string(list->msgs[i], "governsID", NULL);
 			return data_blob_string_const(oid);
@@ -158,7 +158,7 @@
 	entryUUID_private = talloc_get_type(map_private->caller_private, struct entryUUID_private);
 	list = entryUUID_private->objectclass_res;
 
-	for (i=0; list && i < list->count; i++) {
+	for (i=0; list && (i < list->count); i++) {
 		if (ldb_attr_cmp(val->data, ldb_msg_find_attr_as_string(list->msgs[i], "governsID", NULL)) == 0) {
 			const char *oc = ldb_msg_find_attr_as_string(list->msgs[i], "lDAPDisplayName", NULL);
 			return data_blob_string_const(oc);

Modified: branches/SAMBA_4_0/source/dsdb/samdb/ldb_modules/partition.c
===================================================================
--- branches/SAMBA_4_0/source/dsdb/samdb/ldb_modules/partition.c	2006-08-22 07:20:59 UTC (rev 17702)
+++ branches/SAMBA_4_0/source/dsdb/samdb/ldb_modules/partition.c	2006-08-22 10:05:20 UTC (rev 17703)
@@ -643,6 +643,10 @@
 		data->replicate[i] = NULL;
 	}
 
+	/* Make the private data available to any searches the modules may trigger in initialisation */
+	module->private_data = data;
+	talloc_steal(module, data);
+	
 	modules_attributes = ldb_msg_find_element(msg, "modules");
 	if (modules_attributes) {
 		for (i=0; i < modules_attributes->num_values; i++) {
@@ -708,9 +712,6 @@
 		}
 	}
 
-	module->private_data = data;
-	talloc_steal(module, data);
-	
 	talloc_free(mem_ctx);
 	return ldb_next_init(module);
 }



More information about the samba-cvs mailing list