netapi: add libnetapi_samr_close_domain/connect_handle.
authorGünther Deschner <gd@samba.org>
Thu, 17 Jul 2008 17:47:59 +0000 (19:47 +0200)
committerGünther Deschner <gd@samba.org>
Fri, 18 Jul 2008 14:51:57 +0000 (16:51 +0200)
Guenther
(This used to be commit b042787ec61bb5cb98f882ac7be8df1691a78921)

source3/lib/netapi/netapi_private.h
source3/lib/netapi/samr.c

index c913fe789de565fb242ad0e5cfa2a0aa02fca219..cb08ed03944a0da920dd6effa273595eef8be199 100644 (file)
@@ -64,5 +64,9 @@ WERROR libnetapi_samr_open_builtin_domain(TALLOC_CTX *mem_ctx,
                                          uint32_t builtin_mask,
                                          struct policy_handle *connect_handle,
                                          struct policy_handle *builtin_handle);
+void libnetapi_samr_close_domain_handle(struct libnetapi_ctx *ctx,
+                                       struct policy_handle *handle);
+void libnetapi_samr_close_connect_handle(struct libnetapi_ctx *ctx,
+                                        struct policy_handle *handle);
 
 #endif
index 2346f7f956541477fecb12dd37b1c07ad2b1dccc..5df50fe85b62257a007a285fc07d5d5812d07315 100644 (file)
@@ -143,3 +143,51 @@ WERROR libnetapi_samr_open_builtin_domain(TALLOC_CTX *mem_ctx,
  done:
        return werr;
 }
+
+/****************************************************************
+****************************************************************/
+
+void libnetapi_samr_close_domain_handle(struct libnetapi_ctx *ctx,
+                                       struct policy_handle *handle)
+{
+       struct libnetapi_private_ctx *priv;
+
+       if (!is_valid_policy_hnd(handle)) {
+               return;
+       }
+
+       priv = talloc_get_type_abort(ctx->private_data,
+               struct libnetapi_private_ctx);
+
+       if (!policy_hnd_equal(handle, &priv->samr.domain_handle)) {
+               return;
+       }
+
+       rpccli_samr_Close(priv->samr.cli, ctx, handle);
+
+       ZERO_STRUCT(priv->samr.domain_handle);
+}
+
+/****************************************************************
+****************************************************************/
+
+void libnetapi_samr_close_connect_handle(struct libnetapi_ctx *ctx,
+                                        struct policy_handle *handle)
+{
+       struct libnetapi_private_ctx *priv;
+
+       if (!is_valid_policy_hnd(handle)) {
+               return;
+       }
+
+       priv = talloc_get_type_abort(ctx->private_data,
+               struct libnetapi_private_ctx);
+
+       if (!policy_hnd_equal(handle, &priv->samr.connect_handle)) {
+               return;
+       }
+
+       rpccli_samr_Close(priv->samr.cli, ctx, handle);
+
+       ZERO_STRUCT(priv->samr.connect_handle);
+}