s3:idmap_tdb2: add rw_ops to idmap_tdb2_context and initialize in idmap_tdb2_db_init
[metze/samba/wip.git] / source3 / winbindd / idmap_tdb2.c
index a27d3c78e01d7cbcdf6f4ee35d7a379c9aa8eb95..cb295ba00365dcf21bb6dbc869b53efe66da269b 100644 (file)
@@ -33,6 +33,7 @@
 
 #include "includes.h"
 #include "winbindd.h"
+#include "idmap_rw.h"
 
 #undef DBGC_CLASS
 #define DBGC_CLASS DBGC_IDMAP
@@ -40,6 +41,7 @@
 struct idmap_tdb2_context {
        struct db_context *db;
        const char *script; /* script to provide idmaps */
+       struct idmap_rw_ops *rw_ops;
 };
 
 /* High water mark keys */
@@ -299,6 +301,16 @@ static NTSTATUS idmap_tdb2_db_init(struct idmap_domain *dom,
                talloc_free(config_option);
        }
 
+       ctx->rw_ops = talloc_zero(ctx, struct idmap_rw_ops);
+       if (ctx->rw_ops == NULL) {
+               DEBUG(0, ("Out of memory!\n"));
+               ret = NT_STATUS_NO_MEMORY;
+               goto failed;
+       }
+
+       ctx->rw_ops->get_new_id = idmap_tdb2_get_new_id;
+       ctx->rw_ops->set_mapping = idmap_tdb2_set_mapping;
+
        dom->private_data = ctx;
 
        ret = idmap_tdb2_open_db(dom);