s3:rpc_client: pass down lsa_LookupNamesLevel to dcerpc_lsa_lookup_sids_generic()
authorStefan Metzmacher <metze@samba.org>
Mon, 15 Jan 2018 11:57:11 +0000 (12:57 +0100)
committerRalph Boehme <slow@samba.org>
Sat, 10 Feb 2018 07:35:16 +0000 (08:35 +0100)
Bug: https://bugzilla.samba.org/show_bug.cgi?id=13236

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
source3/rpc_client/cli_lsarpc.c
source3/rpc_client/cli_lsarpc.h
source3/winbindd/winbindd_msrpc.c

index 41c1ef482f4d6210245506a834da7b46c79a9c13..65c6ca04d50b11a4d48a006cf53fcabebddcf79b 100644 (file)
@@ -172,6 +172,7 @@ static NTSTATUS dcerpc_lsa_lookup_sids_noalloc(struct dcerpc_binding_handle *h,
                                               struct policy_handle *pol,
                                               int num_sids,
                                               const struct dom_sid *sids,
+                                              enum lsa_LookupNamesLevel level,
                                               char **domains,
                                               char **names,
                                               enum lsa_SidType *types,
@@ -183,7 +184,6 @@ static NTSTATUS dcerpc_lsa_lookup_sids_noalloc(struct dcerpc_binding_handle *h,
        struct lsa_SidArray sid_array;
        struct lsa_RefDomainList *ref_domains = NULL;
        struct lsa_TransNameArray lsa_names;
-       enum lsa_LookupNamesLevel level = LSA_LOOKUP_NAMES_ALL;
        uint32_t count = 0;
        int i;
 
@@ -348,6 +348,7 @@ NTSTATUS dcerpc_lsa_lookup_sids_generic(struct dcerpc_binding_handle *h,
                                        struct policy_handle *pol,
                                        int num_sids,
                                        const struct dom_sid *sids,
+                                       enum lsa_LookupNamesLevel level,
                                        char ***pdomains,
                                        char ***pnames,
                                        enum lsa_SidType **ptypes,
@@ -414,6 +415,7 @@ NTSTATUS dcerpc_lsa_lookup_sids_generic(struct dcerpc_binding_handle *h,
                                                        pol,
                                                        hunk_num_sids,
                                                        hunk_sids,
+                                                       level,
                                                        hunk_domains,
                                                        hunk_names,
                                                        hunk_types,
@@ -489,11 +491,13 @@ NTSTATUS dcerpc_lsa_lookup_sids(struct dcerpc_binding_handle *h,
                                enum lsa_SidType **ptypes,
                                NTSTATUS *result)
 {
+       enum lsa_LookupNamesLevel level = LSA_LOOKUP_NAMES_ALL;
        return dcerpc_lsa_lookup_sids_generic(h,
                                              mem_ctx,
                                              pol,
                                              num_sids,
                                              sids,
+                                             level,
                                              pdomains,
                                              pnames,
                                              ptypes,
@@ -512,12 +516,14 @@ NTSTATUS rpccli_lsa_lookup_sids(struct rpc_pipe_client *cli,
 {
        NTSTATUS status;
        NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
+       enum lsa_LookupNamesLevel level = LSA_LOOKUP_NAMES_ALL;
 
        status = dcerpc_lsa_lookup_sids_generic(cli->binding_handle,
                                                mem_ctx,
                                                pol,
                                                num_sids,
                                                sids,
+                                               level,
                                                pdomains,
                                                pnames,
                                                ptypes,
@@ -540,11 +546,13 @@ NTSTATUS dcerpc_lsa_lookup_sids3(struct dcerpc_binding_handle *h,
                                 enum lsa_SidType **ptypes,
                                 NTSTATUS *result)
 {
+       enum lsa_LookupNamesLevel level = LSA_LOOKUP_NAMES_ALL;
        return dcerpc_lsa_lookup_sids_generic(h,
                                              mem_ctx,
                                              pol,
                                              num_sids,
                                              sids,
+                                             level,
                                              pdomains,
                                              pnames,
                                              ptypes,
index 4f9464d5b0589deb789259d4fad489c15a680a3a..f716b049e1278a268ae4f2b70ec8c9ff361672ca 100644 (file)
@@ -130,6 +130,7 @@ NTSTATUS dcerpc_lsa_lookup_sids_generic(struct dcerpc_binding_handle *h,
                                        struct policy_handle *pol,
                                        int num_sids,
                                        const struct dom_sid *sids,
+                                       enum lsa_LookupNamesLevel level,
                                        char ***pdomains,
                                        char ***pnames,
                                        enum lsa_SidType **ptypes,
index 9bf4354f4e39ff8d4766fdea8b07f36da19b1b52..bc27a39c08f9dc6f28a418d82aa36c37ca48edfe 100644 (file)
@@ -999,6 +999,7 @@ NTSTATUS winbindd_lookup_sids(TALLOC_CTX *mem_ctx,
        unsigned int orig_timeout;
        bool use_lookupsids3 = false;
        bool retried = false;
+       enum lsa_LookupNamesLevel level = LSA_LOOKUP_NAMES_ALL;
 
  connect:
        status = cm_connect_lsat(domain, mem_ctx, &cli, &lsa_policy);
@@ -1024,6 +1025,7 @@ NTSTATUS winbindd_lookup_sids(TALLOC_CTX *mem_ctx,
                                                &lsa_policy,
                                                num_sids,
                                                sids,
+                                               level,
                                                domains,
                                                names,
                                                types,