summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/lib/smbconf/smbconf.c14
-rw-r--r--source3/lib/smbconf/smbconf_private.h2
2 files changed, 15 insertions, 1 deletions
diff --git a/source3/lib/smbconf/smbconf.c b/source3/lib/smbconf/smbconf.c
index a9e895a168..4a5cbbd489 100644
--- a/source3/lib/smbconf/smbconf.c
+++ b/source3/lib/smbconf/smbconf.c
@@ -395,7 +395,7 @@ done:
static int smbconf_destroy_ctx(struct smbconf_ctx *ctx)
{
- return regdb_close();
+ return ctx->ops->close_conf(ctx);
}
static WERROR smbconf_global_check(struct smbconf_ctx *ctx)
@@ -436,6 +436,16 @@ done:
return werr;
}
+static WERROR smbconf_reg_open(struct smbconf_ctx *ctx)
+{
+ return regdb_open();
+}
+
+static int smbconf_reg_close(struct smbconf_ctx *ctx)
+{
+ return regdb_close();
+}
+
/**
* Get the change sequence number of the given service/parameter.
* service and parameter strings may be NULL.
@@ -751,6 +761,8 @@ done:
struct smbconf_ops smbconf_ops_reg = {
.init = smbconf_reg_init,
+ .open_conf = smbconf_reg_open,
+ .close_conf = smbconf_reg_close,
.get_csn = smbconf_reg_get_csn,
.drop = smbconf_reg_drop,
.get_share_names = smbconf_reg_get_share_names,
diff --git a/source3/lib/smbconf/smbconf_private.h b/source3/lib/smbconf/smbconf_private.h
index d9e0f1396a..a8dc23fefc 100644
--- a/source3/lib/smbconf/smbconf_private.h
+++ b/source3/lib/smbconf/smbconf_private.h
@@ -22,6 +22,8 @@
struct smbconf_ops {
WERROR (*init)(struct smbconf_ctx *ctx);
+ WERROR (*open_conf)(struct smbconf_ctx *ctx);
+ int (*close_conf)(struct smbconf_ctx *ctx);
void (*get_csn)(struct smbconf_ctx *ctx, struct smbconf_csn *csn,
const char *service, const char *param);
WERROR (*drop)(struct smbconf_ctx *ctx);