Use rpccli_samr_LookupRids() in net and rpcclient.
authorGünther Deschner <gd@samba.org>
Fri, 8 Feb 2008 11:05:29 +0000 (12:05 +0100)
committerGünther Deschner <gd@samba.org>
Fri, 8 Feb 2008 11:07:06 +0000 (12:07 +0100)
Guenther

source/rpcclient/cmd_samr.c
source/utils/net_rpc.c

index 0082d5c9f58605723d624745a2a9e715258c8716..f36e633f8ad8383231b6e5ce17e0ac689ba4abf6 100644 (file)
@@ -1847,8 +1847,10 @@ static NTSTATUS cmd_samr_lookup_rids(struct rpc_pipe_client *cli,
 {
        NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
        POLICY_HND connect_pol, domain_pol;
-       uint32 num_rids, num_names, *rids, *name_types;
-       char **names;
+       uint32_t num_rids, num_names, *rids;
+       struct lsa_Strings names;
+       struct samr_Ids types;
+
        int i;
 
        if (argc < 3) {
@@ -1896,8 +1898,12 @@ static NTSTATUS cmd_samr_lookup_rids(struct rpc_pipe_client *cli,
        for (i = 0; i < argc - 2; i++)
                 sscanf(argv[i + 2], "%i", &rids[i]);
 
-       result = rpccli_samr_lookup_rids(cli, mem_ctx, &domain_pol, num_rids, rids,
-                                     &num_names, &names, &name_types);
+       result = rpccli_samr_LookupRids(cli, mem_ctx,
+                                       &domain_pol,
+                                       num_rids,
+                                       rids,
+                                       &names,
+                                       &types);
 
        if (!NT_STATUS_IS_OK(result) &&
            !NT_STATUS_EQUAL(result, STATUS_SOME_UNMAPPED))
@@ -1905,8 +1911,10 @@ static NTSTATUS cmd_samr_lookup_rids(struct rpc_pipe_client *cli,
 
        /* Display results */
 
-       for (i = 0; i < num_names; i++)
-               printf("rid 0x%x: %s (%d)\n", rids[i], names[i], name_types[i]);
+       for (i = 0; i < num_names; i++) {
+               printf("rid 0x%x: %s (%d)\n",
+                       rids[i], names.names[i].string, types.ids[i]);
+       }
 
        rpccli_samr_Close(cli, mem_ctx, &domain_pol);
        rpccli_samr_Close(cli, mem_ctx, &connect_pol);
index 26d63a890f1ccc5e53a70e41d5ebb47cb0d26244..33a1dad6b088f6e67907da7ad8febaf2ef1a4157 100644 (file)
@@ -1167,8 +1167,9 @@ static NTSTATUS rpc_user_info_internals(const DOM_SID *domain_sid,
        uint32 *rids, num_rids, *name_types, num_names;
        uint32 flags = 0x000003e8; /* Unknown */
        int i;
-       char **names;
        struct samr_RidWithAttributeArray *rid_array = NULL;
+       struct lsa_Strings names;
+       struct samr_Ids types;
 
        if (argc < 1) {
                d_printf("User must be specified\n");
@@ -1226,9 +1227,12 @@ static NTSTATUS rpc_user_info_internals(const DOM_SID *domain_sid,
                for (i = 0; i < num_rids; i++)
                        rids[i] = rid_array->rids[i].rid;
 
-               result = rpccli_samr_lookup_rids(pipe_hnd, mem_ctx, &domain_pol,
-                                             num_rids, rids,
-                                             &num_names, &names, &name_types);
+               result = rpccli_samr_LookupRids(pipe_hnd, mem_ctx,
+                                               &domain_pol,
+                                               num_rids,
+                                               rids,
+                                               &names,
+                                               &types);
 
                if (!NT_STATUS_IS_OK(result)) {
                        goto done;
@@ -1237,7 +1241,7 @@ static NTSTATUS rpc_user_info_internals(const DOM_SID *domain_sid,
                /* Display results */
 
                for (i = 0; i < num_names; i++)
-                       printf("%s\n", names[i]);
+                       printf("%s\n", names.names[i].string);
        }
  done:
        return result;
@@ -2826,11 +2830,10 @@ static NTSTATUS rpc_list_group_members(struct rpc_pipe_client *pipe_hnd,
        NTSTATUS result;
        POLICY_HND group_pol;
        uint32 num_members, *group_rids;
-       uint32 num_names;
-       char **names;
-       uint32 *name_types;
        int i;
        struct samr_RidTypeArray *rids = NULL;
+       struct lsa_Strings names;
+       struct samr_Ids types;
 
        fstring sid_str;
        sid_to_fstring(sid_str, domain_sid);
@@ -2860,9 +2863,12 @@ static NTSTATUS rpc_list_group_members(struct rpc_pipe_client *pipe_hnd,
                if (num_members < this_time)
                        this_time = num_members;
 
-               result = rpccli_samr_lookup_rids(pipe_hnd, mem_ctx, domain_pol,
-                                             this_time, group_rids,
-                                             &num_names, &names, &name_types);
+               result = rpccli_samr_LookupRids(pipe_hnd, mem_ctx,
+                                               domain_pol,
+                                               this_time,
+                                               group_rids,
+                                               &names,
+                                               &types);
 
                if (!NT_STATUS_IS_OK(result))
                        return result;
@@ -2874,10 +2880,12 @@ static NTSTATUS rpc_list_group_members(struct rpc_pipe_client *pipe_hnd,
 
                        if (opt_long_list_entries) {
                                printf("%s-%d %s\\%s %d\n", sid_str,
-                                      group_rids[i], domain_name, names[i],
+                                      group_rids[i], domain_name,
+                                      names.names[i].string,
                                       SID_NAME_USER);
                        } else {
-                               printf("%s\\%s\n", domain_name, names[i]);
+                               printf("%s\\%s\n", domain_name,
+                                       names.names[i].string);
                        }
                }