The branch, master has been updated
       via  586b2ee s3-epmap: use correct dcerpc client header in dcerpc_ep.c
       via  00478b0 s3-net: prefer dcerpc_lsa_X functions in "net rpc".
       via  eab0049 s3-net: prefer dcerpc_lsa_X functions in "net rpc rights".
       via  8055bc8 s3-net: use status variable in "net rpc rights".
       via  3206434 s3-net: prefer dcerpc_lsa_X functions in net_util.c
       via  63de60c s3-net: prefer dcerpc_lsa_X functions in "net rpc join".
       via  61d18b7 s3-net: prefer dcerpc_lsa_X functions in "net rpc audit".
       via  d38d743 s3-net: use status variable in "net rpc audit".
       via  fe6c535 s3-rpcclient: prefer dcerpc_lsa_X functions.
       via  204eeac s3-rpcclient: prefer dcerpc_lsa_X functions.
       via  36cd79f s3-rpcclient: prefer dcerpc_lsa_X functions.
       via  707d572 s3-rpcclient: use status variable.
       via  fcaba0f s3-libsmb: prefer dcerpc_lsa_X functions.
       via  95cf60a s3-libnet: prefer dcerpc_lsa_X functions.
       via  e32b508 s3-libnetapi: prefer dcerpc_lsa_X functions.
      from  ee5de71 s3-waf: remove RPCCLI_SAMR subsystem.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 586b2ee82655d5849c8483eb787f5ba77c80f478
Author: Günther Deschner <g...@samba.org>
Date:   Wed Feb 2 18:50:39 2011 +0100

    s3-epmap: use correct dcerpc client header in dcerpc_ep.c
    
    Guenther
    
    Autobuild-User: Günther Deschner <g...@samba.org>
    Autobuild-Date: Wed Feb  2 19:50:02 CET 2011 on sn-devel-104

commit 00478b0559023d6e54e07053cb21c6e6e6936f35
Author: Günther Deschner <g...@samba.org>
Date:   Tue Jan 18 17:25:02 2011 +0100

    s3-net: prefer dcerpc_lsa_X functions in "net rpc".
    
    Guenther

commit eab00491f3d25085aa3ba55c137acb1c87c4066b
Author: Günther Deschner <g...@samba.org>
Date:   Tue Jan 18 16:46:39 2011 +0100

    s3-net: prefer dcerpc_lsa_X functions in "net rpc rights".
    
    Guenther

commit 8055bc82b0949473e3defa3cd419713525967424
Author: Günther Deschner <g...@samba.org>
Date:   Tue Jan 18 16:37:05 2011 +0100

    s3-net: use status variable in "net rpc rights".
    
    Guenther

commit 32064346f08ee936f41a6114c2226664055e036e
Author: Günther Deschner <g...@samba.org>
Date:   Tue Jan 18 16:35:14 2011 +0100

    s3-net: prefer dcerpc_lsa_X functions in net_util.c
    
    Guenther

commit 63de60c2bc7049866cb8233817b6342ec4ce970b
Author: Günther Deschner <g...@samba.org>
Date:   Tue Jan 18 16:24:12 2011 +0100

    s3-net: prefer dcerpc_lsa_X functions in "net rpc join".
    
    Guenther

commit 61d18b7f086eef4e9a6366306dfc441710d57209
Author: Günther Deschner <g...@samba.org>
Date:   Tue Jan 18 16:21:24 2011 +0100

    s3-net: prefer dcerpc_lsa_X functions in "net rpc audit".
    
    Guenther

commit d38d7431660e36628a1edebdf1557d4eae0f981c
Author: Günther Deschner <g...@samba.org>
Date:   Tue Jan 18 16:14:35 2011 +0100

    s3-net: use status variable in "net rpc audit".
    
    Guenther

commit fe6c5353a085bb295bafb28feedcd571abed09ff
Author: Günther Deschner <g...@samba.org>
Date:   Tue Jan 18 16:29:16 2011 +0100

    s3-rpcclient: prefer dcerpc_lsa_X functions.
    
    Guenther

commit 204eeacfc51bd3fae7c1a349c5d03dbdd8a00f68
Author: Günther Deschner <g...@samba.org>
Date:   Tue Jan 18 16:11:46 2011 +0100

    s3-rpcclient: prefer dcerpc_lsa_X functions.
    
    Guenther

commit 36cd79f14b31b571b3be01656190210a8171e281
Author: Günther Deschner <g...@samba.org>
Date:   Tue Jan 18 16:08:05 2011 +0100

    s3-rpcclient: prefer dcerpc_lsa_X functions.
    
    Guenther

commit 707d572f622b2144702d1c616ad9662382dfda82
Author: Günther Deschner <g...@samba.org>
Date:   Tue Jan 18 15:42:47 2011 +0100

    s3-rpcclient: use status variable.
    
    Guenther

commit fcaba0fb59a883baff3ee6608d377d73addd6deb
Author: Günther Deschner <g...@samba.org>
Date:   Tue Jan 18 14:59:20 2011 +0100

    s3-libsmb: prefer dcerpc_lsa_X functions.
    
    Guenther

commit 95cf60a2e5aadeb75a680bedaa6090817caa8276
Author: Günther Deschner <g...@samba.org>
Date:   Tue Jan 18 14:55:48 2011 +0100

    s3-libnet: prefer dcerpc_lsa_X functions.
    
    Guenther

commit e32b50894ba6e163c1c483fff668ff6161414541
Author: Günther Deschner <g...@samba.org>
Date:   Tue Jan 18 14:48:58 2011 +0100

    s3-libnetapi: prefer dcerpc_lsa_X functions.
    
    Guenther

-----------------------------------------------------------------------

Summary of changes:
 source3/lib/netapi/localgroup.c |   11 +-
 source3/libnet/libnet_join.c    |   25 +-
 source3/librpc/rpc/dcerpc_ep.c  |    2 +-
 source3/libsmb/trusts_util.c    |   36 ++-
 source3/rpcclient/cmd_lsarpc.c  |  792 +++++++++++++++++++++++++--------------
 source3/rpcclient/cmd_test.c    |   13 +-
 source3/rpcclient/rpcclient.c   |   18 +-
 source3/utils/net_rpc.c         |  155 ++++++--
 source3/utils/net_rpc_audit.c   |  123 ++++---
 source3/utils/net_rpc_join.c    |   14 +-
 source3/utils/net_rpc_rights.c  |  251 +++++++------
 source3/utils/net_util.c        |   29 +-
 12 files changed, 935 insertions(+), 534 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/lib/netapi/localgroup.c b/source3/lib/netapi/localgroup.c
index 7955ce5..ce9df27 100644
--- a/source3/lib/netapi/localgroup.c
+++ b/source3/lib/netapi/localgroup.c
@@ -24,7 +24,7 @@
 #include "lib/netapi/netapi_private.h"
 #include "lib/netapi/libnetapi.h"
 #include "../librpc/gen_ndr/ndr_samr_c.h"
-#include "../librpc/gen_ndr/cli_lsa.h"
+#include "../librpc/gen_ndr/ndr_lsa_c.h"
 #include "rpc_client/cli_lsarpc.h"
 #include "rpc_client/init_lsa.h"
 #include "../libcli/security/security.h"
@@ -999,8 +999,9 @@ static NTSTATUS libnetapi_lsa_lookup_names3(TALLOC_CTX 
*mem_ctx,
                                            const char *name,
                                            struct dom_sid *sid)
 {
-       NTSTATUS status;
+       NTSTATUS status, result;
        struct policy_handle lsa_handle;
+       struct dcerpc_binding_handle *b = lsa_pipe->binding_handle;
 
        struct lsa_RefDomainList *domains = NULL;
        struct lsa_TransSidArray3 sids;
@@ -1025,7 +1026,7 @@ static NTSTATUS libnetapi_lsa_lookup_names3(TALLOC_CTX 
*mem_ctx,
                                         &lsa_handle);
        NT_STATUS_NOT_OK_RETURN(status);
 
-       status = rpccli_lsa_LookupNames3(lsa_pipe, mem_ctx,
+       status = dcerpc_lsa_LookupNames3(b, mem_ctx,
                                         &lsa_handle,
                                         num_names,
                                         &names,
@@ -1033,8 +1034,10 @@ static NTSTATUS libnetapi_lsa_lookup_names3(TALLOC_CTX 
*mem_ctx,
                                         &sids,
                                         LSA_LOOKUP_NAMES_ALL, /* sure ? */
                                         &count,
-                                        0, 0);
+                                        0, 0,
+                                        &result);
        NT_STATUS_NOT_OK_RETURN(status);
+       NT_STATUS_NOT_OK_RETURN(result);
 
        if (count != 1 || sids.count != 1) {
                return NT_STATUS_NONE_MAPPED;
diff --git a/source3/libnet/libnet_join.c b/source3/libnet/libnet_join.c
index c0150f2..6c85608 100644
--- a/source3/libnet/libnet_join.c
+++ b/source3/libnet/libnet_join.c
@@ -25,7 +25,7 @@
 #include "libcli/auth/libcli_auth.h"
 #include "../librpc/gen_ndr/ndr_samr_c.h"
 #include "rpc_client/init_samr.h"
-#include "../librpc/gen_ndr/cli_lsa.h"
+#include "../librpc/gen_ndr/ndr_lsa_c.h"
 #include "rpc_client/cli_lsarpc.h"
 #include "../librpc/gen_ndr/ndr_netlogon.h"
 #include "rpc_client/cli_netlogon.h"
@@ -710,8 +710,9 @@ static NTSTATUS libnet_join_lookup_dc_rpc(TALLOC_CTX 
*mem_ctx,
 {
        struct rpc_pipe_client *pipe_hnd = NULL;
        struct policy_handle lsa_pol;
-       NTSTATUS status = NT_STATUS_UNSUCCESSFUL;
+       NTSTATUS status, result;
        union lsa_PolicyInformation *info = NULL;
+       struct dcerpc_binding_handle *b;
 
        status = libnet_join_connect_dc_ipc(r->in.dc_name,
                                            r->in.admin_account,
@@ -730,17 +731,20 @@ static NTSTATUS libnet_join_lookup_dc_rpc(TALLOC_CTX 
*mem_ctx,
                goto done;
        }
 
+       b = pipe_hnd->binding_handle;
+
        status = rpccli_lsa_open_policy(pipe_hnd, mem_ctx, true,
                                        SEC_FLAG_MAXIMUM_ALLOWED, &lsa_pol);
        if (!NT_STATUS_IS_OK(status)) {
                goto done;
        }
 
-       status = rpccli_lsa_QueryInfoPolicy2(pipe_hnd, mem_ctx,
+       status = dcerpc_lsa_QueryInfoPolicy2(b, mem_ctx,
                                             &lsa_pol,
                                             LSA_POLICY_INFO_DNS,
-                                            &info);
-       if (NT_STATUS_IS_OK(status)) {
+                                            &info,
+                                            &result);
+       if (NT_STATUS_IS_OK(status) && NT_STATUS_IS_OK(result)) {
                r->out.domain_is_ad = true;
                r->out.netbios_domain_name = info->dns.name.string;
                r->out.dns_domain_name = info->dns.dns_domain.string;
@@ -750,20 +754,25 @@ static NTSTATUS libnet_join_lookup_dc_rpc(TALLOC_CTX 
*mem_ctx,
        }
 
        if (!NT_STATUS_IS_OK(status)) {
-               status = rpccli_lsa_QueryInfoPolicy(pipe_hnd, mem_ctx,
+               status = dcerpc_lsa_QueryInfoPolicy(b, mem_ctx,
                                                    &lsa_pol,
                                                    
LSA_POLICY_INFO_ACCOUNT_DOMAIN,
-                                                   &info);
+                                                   &info,
+                                                   &result);
                if (!NT_STATUS_IS_OK(status)) {
                        goto done;
                }
+               if (!NT_STATUS_IS_OK(result)) {
+                       status = result;
+                       goto done;
+               }
 
                r->out.netbios_domain_name = info->account_domain.name.string;
                r->out.domain_sid = dom_sid_dup(mem_ctx, 
info->account_domain.sid);
                NT_STATUS_HAVE_NO_MEMORY(r->out.domain_sid);
        }
 
-       rpccli_lsa_Close(pipe_hnd, mem_ctx, &lsa_pol);
+       dcerpc_lsa_Close(b, mem_ctx, &lsa_pol, &result);
        TALLOC_FREE(pipe_hnd);
 
  done:
diff --git a/source3/librpc/rpc/dcerpc_ep.c b/source3/librpc/rpc/dcerpc_ep.c
index ffe372c..b0c9104 100644
--- a/source3/librpc/rpc/dcerpc_ep.c
+++ b/source3/librpc/rpc/dcerpc_ep.c
@@ -20,7 +20,7 @@
 #include "includes.h"
 #include "librpc/rpc/dcerpc.h"
 #include "librpc/rpc/dcerpc_ep.h"
-#include "librpc/gen_ndr/cli_epmapper.h"
+#include "../librpc/gen_ndr/ndr_epmapper_c.h"
 
 #define EPM_MAX_ANNOTATION_SIZE 64
 
diff --git a/source3/libsmb/trusts_util.c b/source3/libsmb/trusts_util.c
index c7db679..a9794ed 100644
--- a/source3/libsmb/trusts_util.c
+++ b/source3/libsmb/trusts_util.c
@@ -20,7 +20,7 @@
 
 #include "includes.h"
 #include "../libcli/auth/libcli_auth.h"
-#include "../librpc/gen_ndr/cli_lsa.h"
+#include "../librpc/gen_ndr/ndr_lsa_c.h"
 #include "rpc_client/cli_lsarpc.h"
 #include "rpc_client/cli_netlogon.h"
 #include "../librpc/gen_ndr/ndr_netlogon.h"
@@ -142,7 +142,7 @@ bool enumerate_domain_trusts( TALLOC_CTX *mem_ctx, const 
char *domain,
                                     struct dom_sid **sids )
 {
        struct policy_handle    pol;
-       NTSTATUS        result = NT_STATUS_UNSUCCESSFUL;
+       NTSTATUS status, result;
        fstring         dc_name;
        struct sockaddr_storage dc_ss;
        uint32          enum_ctx = 0;
@@ -150,6 +150,7 @@ bool enumerate_domain_trusts( TALLOC_CTX *mem_ctx, const 
char *domain,
        struct rpc_pipe_client *lsa_pipe = NULL;
        struct lsa_DomainList dom_list;
        int i;
+       struct dcerpc_binding_handle *b = NULL;
 
        *domain_names = NULL;
        *num_domains = 0;
@@ -165,47 +166,54 @@ bool enumerate_domain_trusts( TALLOC_CTX *mem_ctx, const 
char *domain,
 
        /* setup the anonymous connection */
 
-       result = cli_full_connection( &cli, global_myname(), dc_name, &dc_ss, 
0, "IPC$", "IPC",
+       status = cli_full_connection( &cli, global_myname(), dc_name, &dc_ss, 
0, "IPC$", "IPC",
                "", "", "", 0, Undefined);
-       if ( !NT_STATUS_IS_OK(result) )
+       if ( !NT_STATUS_IS_OK(status) )
                goto done;
 
        /* open the LSARPC_PIPE */
 
-       result = cli_rpc_pipe_open_noauth(cli, &ndr_table_lsarpc.syntax_id,
+       status = cli_rpc_pipe_open_noauth(cli, &ndr_table_lsarpc.syntax_id,
                                          &lsa_pipe);
-       if (!NT_STATUS_IS_OK(result)) {
+       if (!NT_STATUS_IS_OK(status)) {
                goto done;
        }
 
+       b = lsa_pipe->binding_handle;
+
        /* get a handle */
 
-       result = rpccli_lsa_open_policy(lsa_pipe, mem_ctx, True,
+       status = rpccli_lsa_open_policy(lsa_pipe, mem_ctx, True,
                LSA_POLICY_VIEW_LOCAL_INFORMATION, &pol);
-       if ( !NT_STATUS_IS_OK(result) )
+       if ( !NT_STATUS_IS_OK(status) )
                goto done;
 
        /* Lookup list of trusted domains */
 
-       result = rpccli_lsa_EnumTrustDom(lsa_pipe, mem_ctx,
+       status = dcerpc_lsa_EnumTrustDom(b, mem_ctx,
                                         &pol,
                                         &enum_ctx,
                                         &dom_list,
-                                        (uint32_t)-1);
-       if ( !NT_STATUS_IS_OK(result) )
+                                        (uint32_t)-1,
+                                        &result);
+       if ( !NT_STATUS_IS_OK(status) )
                goto done;
+       if (!NT_STATUS_IS_OK(result)) {
+               status = result;
+               goto done;
+       }
 
        *num_domains = dom_list.count;
 
        *domain_names = TALLOC_ZERO_ARRAY(mem_ctx, char *, *num_domains);
        if (!*domain_names) {
-               result = NT_STATUS_NO_MEMORY;
+               status = NT_STATUS_NO_MEMORY;
                goto done;
        }
 
        *sids = TALLOC_ZERO_ARRAY(mem_ctx, struct dom_sid, *num_domains);
        if (!*sids) {
-               result = NT_STATUS_NO_MEMORY;
+               status = NT_STATUS_NO_MEMORY;
                goto done;
        }
 
@@ -221,7 +229,7 @@ done:
                cli_shutdown( cli );
        }
 
-       return NT_STATUS_IS_OK(result);
+       return NT_STATUS_IS_OK(status);
 }
 
 NTSTATUS change_trust_account_password( const char *domain, const char 
*remote_machine)
diff --git a/source3/rpcclient/cmd_lsarpc.c b/source3/rpcclient/cmd_lsarpc.c
index f55400d..4b065d0 100644
--- a/source3/rpcclient/cmd_lsarpc.c
+++ b/source3/rpcclient/cmd_lsarpc.c
@@ -24,7 +24,7 @@
 #include "rpcclient.h"
 #include "../libcli/auth/libcli_auth.h"
 #include "../librpc/gen_ndr/ndr_lsa.h"
-#include "../librpc/gen_ndr/cli_lsa.h"
+#include "../librpc/gen_ndr/ndr_lsa_c.h"
 #include "rpc_client/cli_lsarpc.h"
 #include "rpc_client/init_lsa.h"
 #include "../libcli/security/security.h"
@@ -37,8 +37,9 @@ static NTSTATUS name_to_sid(struct rpc_pipe_client *cli,
 {
        struct policy_handle pol;
        enum lsa_SidType *sid_types;
-       NTSTATUS result;
+       NTSTATUS status, result;
        struct dom_sid *sids;
+       struct dcerpc_binding_handle *b = cli->binding_handle;
 
        /* maybe its a raw SID */
        if (strncmp(name, "S-", 2) == 0 &&
@@ -46,22 +47,22 @@ static NTSTATUS name_to_sid(struct rpc_pipe_client *cli,
                return NT_STATUS_OK;
        }
 
-       result = rpccli_lsa_open_policy(cli, mem_ctx, True, 
+       status = rpccli_lsa_open_policy(cli, mem_ctx, True,
                                     SEC_FLAG_MAXIMUM_ALLOWED,
                                     &pol);
-       if (!NT_STATUS_IS_OK(result))
+       if (!NT_STATUS_IS_OK(status))
                goto done;
 
-       result = rpccli_lsa_lookup_names(cli, mem_ctx, &pol, 1, &name, NULL, 1, 
&sids, &sid_types);
-       if (!NT_STATUS_IS_OK(result))
+       status = rpccli_lsa_lookup_names(cli, mem_ctx, &pol, 1, &name, NULL, 1, 
&sids, &sid_types);
+       if (!NT_STATUS_IS_OK(status))
                goto done;
 
-       rpccli_lsa_Close(cli, mem_ctx, &pol);
+       dcerpc_lsa_Close(b, mem_ctx, &pol, &result);
 
        *sid = sids[0];
 
 done:
-       return result;
+       return status;
 }
 
 static void display_query_info_1(struct lsa_AuditLogInfo *r)
@@ -156,8 +157,9 @@ static NTSTATUS cmd_lsa_query_info_policy(struct 
rpc_pipe_client *cli,
                                           const char **argv) 
 {
        struct policy_handle pol;
-       NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
+       NTSTATUS status, result;
        union lsa_PolicyInformation *info = NULL;
+       struct dcerpc_binding_handle *b = cli->binding_handle;
 
        uint32 info_class = 3;
 
@@ -171,40 +173,46 @@ static NTSTATUS cmd_lsa_query_info_policy(struct 
rpc_pipe_client *cli,
 
        switch (info_class) {
        case 12:
-               result = rpccli_lsa_open_policy2(cli, mem_ctx, True, 
+               status = rpccli_lsa_open_policy2(cli, mem_ctx, True,
                                                 SEC_FLAG_MAXIMUM_ALLOWED,
                                                 &pol);
 
-               if (!NT_STATUS_IS_OK(result))
+               if (!NT_STATUS_IS_OK(status))
                        goto done;
 
-               result = rpccli_lsa_QueryInfoPolicy2(cli, mem_ctx,
+               status = dcerpc_lsa_QueryInfoPolicy2(b, mem_ctx,
                                                     &pol,
                                                     info_class,
-                                                    &info);
+                                                    &info,
+                                                    &result);
                break;
        default:
-               result = rpccli_lsa_open_policy(cli, mem_ctx, True, 
+               status = rpccli_lsa_open_policy(cli, mem_ctx, True,
                                                SEC_FLAG_MAXIMUM_ALLOWED,
                                                &pol);
 
-               if (!NT_STATUS_IS_OK(result))
+               if (!NT_STATUS_IS_OK(status))
                        goto done;
 
-               result = rpccli_lsa_QueryInfoPolicy(cli, mem_ctx,
+               status = dcerpc_lsa_QueryInfoPolicy(b, mem_ctx,
                                                    &pol,
                                                    info_class,
-                                                   &info);
+                                                   &info,
+                                                   &result);
        }
 
+       if (!NT_STATUS_IS_OK(status)) {
+               goto done;
+       }
+       status = result;
        if (NT_STATUS_IS_OK(result)) {
                display_lsa_query_info(info, info_class);
        }
 
-       rpccli_lsa_Close(cli, mem_ctx, &pol);
+       dcerpc_lsa_Close(b, mem_ctx, &pol, &result);
 
  done:
-       return result;
+       return status;
 }
 
 /* Resolve a list of names to a list of sids */
@@ -214,31 +222,32 @@ static NTSTATUS cmd_lsa_lookup_names(struct 
rpc_pipe_client *cli,
                                      const char **argv)
 {
        struct policy_handle pol;
-       NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
+       NTSTATUS status, result;
        struct dom_sid *sids;
        enum lsa_SidType *types;
        int i;
+       struct dcerpc_binding_handle *b = cli->binding_handle;
 
        if (argc == 1) {
                printf("Usage: %s [name1 [name2 [...]]]\n", argv[0]);
                return NT_STATUS_OK;
        }
 
-       result = rpccli_lsa_open_policy(cli, mem_ctx, True, 
+       status = rpccli_lsa_open_policy(cli, mem_ctx, True,
                                     SEC_FLAG_MAXIMUM_ALLOWED,
                                     &pol);
 
-       if (!NT_STATUS_IS_OK(result))
+       if (!NT_STATUS_IS_OK(status))
                goto done;
 
-       result = rpccli_lsa_lookup_names(cli, mem_ctx, &pol, argc - 1, 
+       status = rpccli_lsa_lookup_names(cli, mem_ctx, &pol, argc - 1,
                                      (const char**)(argv + 1), NULL, 1, &sids, 
&types);
 
-       if (!NT_STATUS_IS_OK(result) && NT_STATUS_V(result) != 
+       if (!NT_STATUS_IS_OK(status) && NT_STATUS_V(status) !=
            NT_STATUS_V(STATUS_SOME_UNMAPPED))
                goto done;
 
-       result = NT_STATUS_OK;
+       status = NT_STATUS_OK;
 
        /* Print results */
 
@@ -249,10 +258,10 @@ static NTSTATUS cmd_lsa_lookup_names(struct 
rpc_pipe_client *cli,
                       sid_type_lookup(types[i]), types[i]);
        }
 
-       rpccli_lsa_Close(cli, mem_ctx, &pol);
+       dcerpc_lsa_Close(b, mem_ctx, &pol, &result);
 
  done:
-       return result;
+       return status;
 }
 
 /* Resolve a list of names to a list of sids */
@@ -262,33 +271,34 @@ static NTSTATUS cmd_lsa_lookup_names_level(struct 
rpc_pipe_client *cli,
                                           const char **argv)
 {
        struct policy_handle pol;
-       NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
+       NTSTATUS status, result;
        struct dom_sid *sids;
        enum lsa_SidType *types;
        int i, level;
+       struct dcerpc_binding_handle *b = cli->binding_handle;
 
        if (argc < 3) {
                printf("Usage: %s [level] [name1 [name2 [...]]]\n", argv[0]);
                return NT_STATUS_OK;
        }
 
-       result = rpccli_lsa_open_policy(cli, mem_ctx, True, 
+       status = rpccli_lsa_open_policy(cli, mem_ctx, True,
                                     SEC_FLAG_MAXIMUM_ALLOWED,
                                     &pol);
 
-       if (!NT_STATUS_IS_OK(result))
+       if (!NT_STATUS_IS_OK(status))
                goto done;
 
        level = atoi(argv[1]);
 
-       result = rpccli_lsa_lookup_names(cli, mem_ctx, &pol, argc - 2, 
+       status = rpccli_lsa_lookup_names(cli, mem_ctx, &pol, argc - 2,
                                      (const char**)(argv + 2), NULL, level, 
&sids, &types);
 
-       if (!NT_STATUS_IS_OK(result) && NT_STATUS_V(result) != 
+       if (!NT_STATUS_IS_OK(status) && NT_STATUS_V(status) !=
            NT_STATUS_V(STATUS_SOME_UNMAPPED))
                goto done;
 
-       result = NT_STATUS_OK;
+       status = NT_STATUS_OK;
 
        /* Print results */
 
@@ -299,17 +309,17 @@ static NTSTATUS cmd_lsa_lookup_names_level(struct 
rpc_pipe_client *cli,
                       sid_type_lookup(types[i]), types[i]);
        }
 
-       rpccli_lsa_Close(cli, mem_ctx, &pol);
+       dcerpc_lsa_Close(b, mem_ctx, &pol, &result);
 
  done:
-       return result;
+       return status;
 }
 
 static NTSTATUS cmd_lsa_lookup_names4(struct rpc_pipe_client *cli,
                                      TALLOC_CTX *mem_ctx, int argc,
                                      const char **argv)
 {
-       NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
+       NTSTATUS status, result;
 
        uint32_t num_names;
        struct lsa_String *names;
@@ -317,6 +327,7 @@ static NTSTATUS cmd_lsa_lookup_names4(struct 
rpc_pipe_client *cli,
        struct lsa_TransSidArray3 sids;
        uint32_t count = 0;
        int i;
+       struct dcerpc_binding_handle *b = cli->binding_handle;
 
        if (argc == 1) {
                printf("Usage: %s [name1 [name2 [...]]]\n", argv[0]);
@@ -333,7 +344,7 @@ static NTSTATUS cmd_lsa_lookup_names4(struct 
rpc_pipe_client *cli,
                init_lsa_String(&names[i], argv[i+1]);
        }
 
-       result = rpccli_lsa_LookupNames4(cli, mem_ctx,
+       status = dcerpc_lsa_LookupNames4(b, mem_ctx,
                                         num_names,
                                         names,
                                         &domains,
@@ -341,7 +352,11 @@ static NTSTATUS cmd_lsa_lookup_names4(struct 
rpc_pipe_client *cli,
                                         1,
                                         &count,
                                         0,
-                                        0);
+                                        0,
+                                        &result);
+       if (!NT_STATUS_IS_OK(status)) {


-- 
Samba Shared Repository

Reply via email to