summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/libnet/libnet_conf.c44
1 files changed, 43 insertions, 1 deletions
diff --git a/source3/libnet/libnet_conf.c b/source3/libnet/libnet_conf.c
index d0ef6eb0e6..dcb80d96ea 100644
--- a/source3/libnet/libnet_conf.c
+++ b/source3/libnet/libnet_conf.c
@@ -110,7 +110,7 @@ static WERROR libnet_conf_reg_open_path(TALLOC_CTX *mem_ctx,
}
werr = ntstatus_to_werror(registry_create_admin_token(tmp_ctx, &token));
- if (W_ERROR_IS_OK(werr)) {
+ if (!W_ERROR_IS_OK(werr)) {
DEBUG(1, ("Error creating admin token\n"));
goto done;
}
@@ -421,6 +421,48 @@ done:
**********************************************************************/
/**
+ * Open the configuration.
+ *
+ * Upon success, this creates and returns the conf context
+ * that should be passed around in subsequent calls to the other
+ * libnet_conf functions.
+ */
+WERROR libnet_conf_open(TALLOC_CTX *mem_ctx, struct libnet_conf_ctx **conf_ctx)
+{
+ WERROR werr = WERR_OK;
+ struct libnet_conf_ctx *ctx;
+
+ if (conf_ctx == NULL) {
+ return WERR_INVALID_PARAM;
+ }
+
+ ctx = talloc_zero(mem_ctx, struct libnet_conf_ctx);
+ if (ctx == NULL) {
+ return WERR_NOMEM;
+ }
+
+ talloc_set_destructor(ctx, libnet_conf_destrox_ctx);
+
+ ctx->token = registry_create_admin_token(tmp_ctx);
+ if (ctx->token == NULL) {
+ DEBUG(1, ("Error creating admin token\n"));
+ /* what is the appropriate error code here? */
+ werr = WERR_CAN_NOT_COMPLETE;
+ goto done;
+ }
+
+
+}
+
+/**
+ * Close the configuration.
+ */
+WERROR libnet_conf_close(struct libnet_conf_ctx *ctx)
+{
+ regdb_close();
+}
+
+/**
* Drop the whole configuration (restarting empty).
*/
WERROR libnet_conf_drop(void)