s3:idmap_ldap: add idmap_rw_ops to idmap_ldap_context and init in db_init()
authorMichael Adam <obnox@samba.org>
Wed, 23 Jun 2010 10:18:35 +0000 (12:18 +0200)
committerMichael Adam <obnox@samba.org>
Sat, 14 Aug 2010 00:10:57 +0000 (02:10 +0200)
source3/Makefile.in
source3/winbindd/idmap_ldap.c

index 9feabfbcedb80591122065ec655030c56a931ce9..1eb1dbb59a27c07eb20b80a22cfbd965035db79d 100644 (file)
@@ -2689,9 +2689,9 @@ bin/tdb2.@SHLIBEXT@: $(BINARY_PREREQS) winbindd/idmap_tdb2.o $(IDMAP_RW_OBJ)
        @echo "Building plugin $@"
        @$(SHLD_MODULE) winbindd/idmap_tdb2.o $(IDMAP_RW_OBJ)
 
-bin/ldap.@SHLIBEXT@: $(BINARY_PREREQS) winbindd/idmap_ldap.o
+bin/ldap.@SHLIBEXT@: $(BINARY_PREREQS) winbindd/idmap_ldap.o $(IDMAP_RW_OBJ)
        @echo "Building plugin $@"
-       @$(SHLD_MODULE) winbindd/idmap_ldap.o
+       @$(SHLD_MODULE) winbindd/idmap_ldap.o $(IDMAP_RW_OBJ)
 
 bin/weird.@SHLIBEXT@: $(BINARY_PREREQS) $(DEVEL_HELP_WEIRD_OBJ)
        @echo "Building plugin $@"
index 995471f2b804103a138a93375699edb056f3592c..3223e7d223667bd8e587be1ec731364efa51b1c2 100644 (file)
@@ -26,6 +26,7 @@
 #include "includes.h"
 #include "winbindd.h"
 #include "secrets.h"
+#include "idmap_rw.h"
 
 #undef DBGC_CLASS
 #define DBGC_CLASS DBGC_IDMAP
@@ -72,6 +73,7 @@ struct idmap_ldap_context {
        char *user_dn;
        bool anon;
        struct idmap_ldap_alloc_context *alloc;
+       struct idmap_rw_ops *rw_ops;
 };
 
 #define CHECK_ALLOC_DONE(mem) do { \
@@ -540,6 +542,9 @@ static int idmap_ldap_close_destructor(struct idmap_ldap_context *ctx)
  Initialise idmap database.
 ********************************/
 
+static NTSTATUS idmap_ldap_set_mapping(struct idmap_domain *dom,
+                                      const struct id_map *map);
+
 static NTSTATUS idmap_ldap_db_init(struct idmap_domain *dom,
                                   const char *params)
 {
@@ -601,6 +606,12 @@ static NTSTATUS idmap_ldap_db_init(struct idmap_domain *dom,
        ctx->suffix = talloc_strdup(ctx, tmp);
        CHECK_ALLOC_DONE(ctx->suffix);
 
+       ctx->rw_ops = talloc_zero(ctx, struct idmap_rw_ops);
+       CHECK_ALLOC_DONE(ctx->rw_ops);
+
+       ctx->rw_ops->get_new_id = idmap_ldap_get_new_id;
+       ctx->rw_ops->set_mapping = idmap_ldap_set_mapping;
+
        ret = smbldap_init(ctx, winbind_event_context(), ctx->url,
                           &ctx->smbldap_state);
        if (!NT_STATUS_IS_OK(ret)) {