Use rpccli_lsa_AddAccountRights in net and rpcclient.
authorGünther Deschner <gd@samba.org>
Thu, 14 Feb 2008 13:34:10 +0000 (14:34 +0100)
committerGünther Deschner <gd@samba.org>
Thu, 14 Feb 2008 13:40:26 +0000 (14:40 +0100)
Guenther
(This used to be commit e94ded74d6541d1d8954cfbbbd577ca0c83ecd4c)

source3/rpcclient/cmd_lsarpc.c
source3/utils/net_rpc_rights.c

index 120fb9b173d9241b63e49844982c1cc0647fdea6..079a91483099f252bf2ae74804742c339abaf4ee 100644 (file)
@@ -762,8 +762,9 @@ static NTSTATUS cmd_lsa_add_acct_rights(struct rpc_pipe_client *cli,
 {
        POLICY_HND dom_pol;
        NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
-
+       struct lsa_RightSet rights;
        DOM_SID sid;
+       int i;
 
        if (argc < 3 ) {
                printf("Usage: %s SID [rights...]\n", argv[0]);
@@ -781,8 +782,21 @@ static NTSTATUS cmd_lsa_add_acct_rights(struct rpc_pipe_client *cli,
        if (!NT_STATUS_IS_OK(result))
                goto done;
 
-       result = rpccli_lsa_add_account_rights(cli, mem_ctx, &dom_pol, sid, 
-                                           argc-2, argv+2);
+       rights.count = argc-2;
+       rights.names = TALLOC_ARRAY(mem_ctx, struct lsa_StringLarge,
+                                   rights.count);
+       if (!rights.names) {
+               return NT_STATUS_NO_MEMORY;
+       }
+
+       for (i=0; i<argc-1; i++) {
+               init_lsa_StringLarge(&rights.names[i], argv[i+2]);
+       }
+
+       result = rpccli_lsa_AddAccountRights(cli, mem_ctx,
+                                            &dom_pol,
+                                            &sid,
+                                            &rights);
 
        if (!NT_STATUS_IS_OK(result))
                goto done;
index d8c7462c0d563c4b7e3d7049ee4816cf07dbe689..9ba0eaae0023d95208b8f19ea331ffdae64dd6df 100644 (file)
@@ -431,6 +431,8 @@ static NTSTATUS rpc_rights_grant_internal(const DOM_SID *domain_sid,
 {
        POLICY_HND dom_pol;
        NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
+       struct lsa_RightSet rights;
+       int i;
 
        DOM_SID sid;
 
@@ -450,8 +452,21 @@ static NTSTATUS rpc_rights_grant_internal(const DOM_SID *domain_sid,
        if (!NT_STATUS_IS_OK(result))
                return result;  
 
-       result = rpccli_lsa_add_account_rights(pipe_hnd, mem_ctx, &dom_pol, sid, 
-                                           argc-1, argv+1);
+       rights.count = argc-1;
+       rights.names = TALLOC_ARRAY(mem_ctx, struct lsa_StringLarge,
+                                   rights.count);
+       if (!rights.names) {
+               return NT_STATUS_NO_MEMORY;
+       }
+
+       for (i=0; i<argc-1; i++) {
+               init_lsa_StringLarge(&rights.names[i], argv[i+1]);
+       }
+
+       result = rpccli_lsa_AddAccountRights(pipe_hnd, mem_ctx,
+                                            &dom_pol,
+                                            &sid,
+                                            &rights);
 
        if (!NT_STATUS_IS_OK(result))
                goto done;