summaryrefslogtreecommitdiff
path: root/source4/dsdb/samdb/ldb_modules/samba_dsdb.c
diff options
context:
space:
mode:
authorHoward Chu <hyc@symas.com>2013-09-16 19:51:20 -0700
committerNadezhda Ivanova <nivanova@samba.org>2013-09-18 05:56:19 +0200
commit68a4081dd47344651cb4dfdf57247ce8e893a96e (patch)
treee5858004df9c42d00463117abb925f0cd4863280 /source4/dsdb/samdb/ldb_modules/samba_dsdb.c
parent4879d0810a2ad741e32ad174a7a14cd35521aeaf (diff)
downloadsamba-68a4081dd47344651cb4dfdf57247ce8e893a96e.tar.gz
samba-68a4081dd47344651cb4dfdf57247ce8e893a96e.tar.bz2
samba-68a4081dd47344651cb4dfdf57247ce8e893a96e.zip
Add an OpenLDAP-specific extended_dn_in module
Don't "fix" plain DNs before sending them to OpenLDAP Signed-off-by: Howard Chu <hyc@symas.com> Reviewed-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Nadezhda Ivanova <nivanova@symas.com>
Diffstat (limited to 'source4/dsdb/samdb/ldb_modules/samba_dsdb.c')
-rw-r--r--source4/dsdb/samdb/ldb_modules/samba_dsdb.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/source4/dsdb/samdb/ldb_modules/samba_dsdb.c b/source4/dsdb/samdb/ldb_modules/samba_dsdb.c
index cde53bc9ce..060a9d75fb 100644
--- a/source4/dsdb/samdb/ldb_modules/samba_dsdb.c
+++ b/source4/dsdb/samdb/ldb_modules/samba_dsdb.c
@@ -253,7 +253,7 @@ static int samba_dsdb_init(struct ldb_module *module)
stack visually - the code below then handles the creation of the list
based on the parameters loaded from the database.
*/
- static const char *modules_list[] = {"resolve_oids",
+ static const char *modules_list1[] = {"resolve_oids",
"rootdse",
"schema_load",
"lazy_commit",
@@ -264,8 +264,9 @@ static int samba_dsdb_init(struct ldb_module *module)
"server_sort",
"asq",
"extended_dn_store",
- "extended_dn_in",
- "objectclass",
+ NULL };
+ /* extended_dn_in or extended_dn_in_openldap goes here */
+ static const char *modules_list1a[] = {"objectclass",
"descriptor",
"acl",
"aclread",
@@ -293,6 +294,7 @@ static int samba_dsdb_init(struct ldb_module *module)
const char *extended_dn_module_ldb = "extended_dn_out_ldb";
const char *extended_dn_module_fds = "extended_dn_out_fds";
const char *extended_dn_module_openldap = "extended_dn_out_openldap";
+ const char *extended_dn_in_module = "extended_dn_in";
static const char *modules_list2[] = {"show_deleted",
"new_partition",
@@ -357,6 +359,7 @@ static int samba_dsdb_init(struct ldb_module *module)
link_modules = openldap_modules;
backend_modules = openldap_backend_modules;
extended_dn_module = extended_dn_module_openldap;
+ extended_dn_in_module = "extended_dn_in_openldap";
} else {
return ldb_error(ldb, LDB_ERR_OPERATIONS_ERROR, "invalid backend type");
}
@@ -382,7 +385,13 @@ static int samba_dsdb_init(struct ldb_module *module)
} \
} while (0)
- final_module_list = str_list_copy_const(tmp_ctx, modules_list);
+ final_module_list = str_list_copy_const(tmp_ctx, modules_list1);
+ CHECK_MODULE_LIST;
+
+ final_module_list = str_list_add_const(final_module_list, extended_dn_in_module);
+ CHECK_MODULE_LIST;
+
+ final_module_list = str_list_append_const(final_module_list, modules_list1a);
CHECK_MODULE_LIST;
final_module_list = str_list_append_const(final_module_list, link_modules);