s3-rpc_client: Move client pipe functions to own header.
[samba.git] / source3 / rpcclient / cmd_test.c
index b7be038539dd69c431a0e8f720f84981ccd5ac1c..0ad1dfd3288caa57c9e11d3cf3af0b49d406c4b3 100644 (file)
 
 #include "includes.h"
 #include "rpcclient.h"
+#include "rpc_client/cli_pipe.h"
+#include "../librpc/gen_ndr/ndr_lsa_c.h"
+#include "rpc_client/cli_lsarpc.h"
+#include "../librpc/gen_ndr/ndr_samr.h"
+#include "../librpc/gen_ndr/winreg.h"
 
 static NTSTATUS cmd_testme(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx,
                           int argc, const char **argv)
 {
        struct rpc_pipe_client *lsa_pipe = NULL, *samr_pipe = NULL;
-       NTSTATUS status = NT_STATUS_UNSUCCESSFUL;
+       NTSTATUS status = NT_STATUS_UNSUCCESSFUL, result;
        struct policy_handle pol;
+       struct dcerpc_binding_handle *b;
 
        d_printf("testme\n");
 
@@ -44,16 +50,22 @@ static NTSTATUS cmd_testme(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx,
                goto done;
        }
 
+       b = lsa_pipe->binding_handle;
+
        status = rpccli_lsa_open_policy(lsa_pipe, mem_ctx, False,
-                                       SEC_RIGHTS_QUERY_VALUE, &pol);
+                                       KEY_QUERY_VALUE, &pol);
 
        if (!NT_STATUS_IS_OK(status))
                goto done;
 
-       status = rpccli_lsa_Close(lsa_pipe, mem_ctx, &pol);
+       status = dcerpc_lsa_Close(b, mem_ctx, &pol, &result);
 
        if (!NT_STATUS_IS_OK(status))
                goto done;
+       if (!NT_STATUS_IS_OK(result)) {
+               status = result;
+               goto done;
+       }
 
  done:
        TALLOC_FREE(lsa_pipe);