s3-rpc_cli: pass down ndr_interface_table to cli_rpc_pipe_open_noauth().
[metze/samba/wip.git] / source3 / rpcclient / cmd_test.c
index b7be038539dd69c431a0e8f720f84981ccd5ac1c..367dc713baf1d44bbbdc72a298127181781e678b 100644 (file)
 
 #include "includes.h"
 #include "rpcclient.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");
 
        status = cli_rpc_pipe_open_noauth(rpc_pipe_np_smb_conn(cli),
-                                         &ndr_table_lsarpc.syntax_id,
+                                         &ndr_table_lsarpc,
                                          &lsa_pipe);
        if (!NT_STATUS_IS_OK(status)) {
                goto done;
        }
 
        status = cli_rpc_pipe_open_noauth(rpc_pipe_np_smb_conn(cli),
-                                         &ndr_table_samr.syntax_id,
+                                         &ndr_table_samr,
                                          &samr_pipe);
        if (!NT_STATUS_IS_OK(status)) {
                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);