use a more consistent style for the client stubs
authorAndrew Tridgell <tridge@samba.org>
Sun, 9 Nov 2003 04:40:50 +0000 (04:40 +0000)
committerAndrew Tridgell <tridge@samba.org>
Sun, 9 Nov 2003 04:40:50 +0000 (04:40 +0000)
(This used to be commit 9946532f97bf8c820e8615dc6697f740144cd9d8)

source4/librpc/rpc/rpc_lsa.c
source4/torture/rpc/lsa.c

index 2eff2838fc2f286d502de09029d852f5ffb8dc4f..ee8075d5bdfbaafadf0abdf07c6a9800113c0c74 100644 (file)
   OpenPolicy interface
 */
 NTSTATUS dcerpc_lsa_OpenPolicy(struct dcerpc_pipe *p,
-                              const char *server,
-                              struct lsa_ObjectAttribute *attr,
-                              uint32 access_mask,
-                              struct policy_handle *handle)
+                              TALLOC_CTX *mem_ctx,
+                              struct lsa_OpenPolicy *r)
 {
-       struct lsa_OpenPolicy r;
        NTSTATUS status;
-       TALLOC_CTX *mem_ctx;
-       uint16 s;
-
-       mem_ctx = talloc_init("dcerpc_lsa_openpolicy");
-       if (!mem_ctx) {
-               return NT_STATUS_NO_MEMORY;
-       }
 
-       /* fill the .in side of the call */
-       s = server[0];
-       r.in.system_name = &s;
-       r.in.attr = attr;
-       r.in.desired_access = access_mask;
-       r.out.handle = handle;
-
-       /* make the call */
        status = dcerpc_ndr_request(p, LSA_OPENPOLICY, mem_ctx,
                                    (ndr_push_fn_t) ndr_push_lsa_OpenPolicy,
                                    (ndr_pull_fn_t) ndr_pull_lsa_OpenPolicy,
-                                   &r);
+                                   r);
        if (!NT_STATUS_IS_OK(status)) {
-               goto done;
+               return status;
        }
        
-       /* and extract the .out parameters */
-       status = r.out.result;
-
-done:
-       talloc_destroy(mem_ctx);
-       return status;
+       return r->out.result;
 }
 
 
@@ -71,41 +48,20 @@ done:
   OpenPolicy2 interface
 */
 NTSTATUS dcerpc_lsa_OpenPolicy2(struct dcerpc_pipe *p,
-                               const char *server,
-                               struct lsa_ObjectAttribute *attr,
-                               uint32 access_mask,
-                               struct policy_handle *handle)
+                               TALLOC_CTX *mem_ctx,
+                               struct lsa_OpenPolicy2 *r)
 {
-       struct lsa_OpenPolicy2 r;
        NTSTATUS status;
-       TALLOC_CTX *mem_ctx;
-
-       mem_ctx = talloc_init("dcerpc_lsa_openpolicy2");
-       if (!mem_ctx) {
-               return NT_STATUS_NO_MEMORY;
-       }
-
-       /* fill the .in side of the call */
-       r.in.system_name = server;
-       r.in.attr = attr;
-       r.in.desired_access = access_mask;
-       r.out.handle = handle;
 
-       /* make the call */
        status = dcerpc_ndr_request(p, LSA_OPENPOLICY2, mem_ctx,
                                    (ndr_push_fn_t) ndr_push_lsa_OpenPolicy2,
                                    (ndr_pull_fn_t) ndr_pull_lsa_OpenPolicy2,
-                                   &r);
+                                   r);
        if (!NT_STATUS_IS_OK(status)) {
-               goto done;
+               return status;
        }
-       
-       /* and extract the .out parameters */
-       status = r.out.result;
 
-done:
-       talloc_destroy(mem_ctx);
-       return status;
+       return r->out.result;
 }
 
 /*
@@ -113,36 +69,20 @@ done:
 */
 NTSTATUS dcerpc_lsa_EnumSids(struct dcerpc_pipe *p,
                             TALLOC_CTX *mem_ctx,
-                            struct policy_handle *handle,
-                            uint32 *resume_handle,
-                            uint32 num_entries,
-                            struct lsa_SidArray *sids)
+                            struct lsa_EnumSids *r)
 {
-       struct lsa_EnumSids r;
        NTSTATUS status;
 
-       /* fill the .in side of the call */
-       r.in.handle = handle;
-       r.in.resume_handle = resume_handle;
-       r.in.num_entries = num_entries;
-
-       r.out.resume_handle = resume_handle;
-       r.out.sids = sids;
-
        /* make the call */
        status = dcerpc_ndr_request(p, LSA_ENUM_ACCOUNTS, mem_ctx,
                                    (ndr_push_fn_t) ndr_push_lsa_EnumSids,
                                    (ndr_pull_fn_t) ndr_pull_lsa_EnumSids,
-                                   &r);
+                                   r);
        if (!NT_STATUS_IS_OK(status)) {
-               goto done;
+               return status;
        }
        
-       /* and extract the .out parameters */
-       status = r.out.result;
-
-done:
-       return status;
+       return r->out.result;
 }
 
 /*
index 3f107be41ee2cbb15613011a6c72aa215432b168..61288b5f5b0585f9b072ee2034d2d9940c538304 100644 (file)
@@ -79,12 +79,14 @@ static int dom_sid_compare(struct dom_sid *sid1, struct dom_sid *sid2)
        return 0;
 }
 
-static BOOL test_OpenPolicy(struct dcerpc_pipe *p)
+static BOOL test_OpenPolicy(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
 {
        struct lsa_ObjectAttribute attr;
        struct policy_handle handle;
        struct lsa_QosInfo qos;
+       struct lsa_OpenPolicy r;
        NTSTATUS status;
+       uint16 system_name = '\\';
 
        printf("\ntesting OpenPolicy\n");
 
@@ -98,11 +100,12 @@ static BOOL test_OpenPolicy(struct dcerpc_pipe *p)
        attr.sec_desc = NULL;
        attr.sec_qos = &qos;
 
-       status = dcerpc_lsa_OpenPolicy(p, 
-                                      "\\",
-                                      &attr,
-                                      SEC_RIGHTS_MAXIMUM_ALLOWED,
-                                      &handle);
+       r.in.system_name = &system_name;
+       r.in.attr = &attr;
+       r.in.desired_access = SEC_RIGHTS_MAXIMUM_ALLOWED;
+       r.out.handle = &handle;
+
+       status = dcerpc_lsa_OpenPolicy(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("OpenPolicy failed - %s\n", nt_errstr(status));
                return False;
@@ -112,10 +115,12 @@ static BOOL test_OpenPolicy(struct dcerpc_pipe *p)
 }
 
 
-static BOOL test_OpenPolicy2(struct dcerpc_pipe *p, struct policy_handle *handle)
+static BOOL test_OpenPolicy2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+                            struct policy_handle *handle)
 {
        struct lsa_ObjectAttribute attr;
        struct lsa_QosInfo qos;
+       struct lsa_OpenPolicy2 r;
        NTSTATUS status;
 
        printf("\ntesting OpenPolicy2\n");
@@ -130,11 +135,12 @@ static BOOL test_OpenPolicy2(struct dcerpc_pipe *p, struct policy_handle *handle
        attr.sec_desc = NULL;
        attr.sec_qos = &qos;
 
-       status = dcerpc_lsa_OpenPolicy2(p, 
-                                       "\\",
-                                       &attr,
-                                       SEC_RIGHTS_MAXIMUM_ALLOWED,
-                                       handle);
+       r.in.system_name = "\\";
+       r.in.attr = &attr;
+       r.in.desired_access = SEC_RIGHTS_MAXIMUM_ALLOWED;
+       r.out.handle = handle;
+
+       status = dcerpc_lsa_OpenPolicy2(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("OpenPolicy2 failed - %s\n", nt_errstr(status));
                return False;
@@ -270,14 +276,21 @@ static BOOL test_EnumSids(struct dcerpc_pipe *p,
                          struct policy_handle *handle)
 {
        NTSTATUS status;
+       struct lsa_EnumSids r;
        struct lsa_SidArray sids1, sids2;
-       uint32 resume_handle;
+       uint32 resume_handle = 0;
        int i;
 
        printf("\ntesting EnumSids\n");
 
+       r.in.handle = handle;
+       r.in.resume_handle = &resume_handle;
+       r.in.num_entries = 100;
+       r.out.resume_handle = &resume_handle;
+       r.out.sids = &sids1;
+
        resume_handle = 0;
-       status = dcerpc_lsa_EnumSids(p, mem_ctx, handle, &resume_handle, 100, &sids1);
+       status = dcerpc_lsa_EnumSids(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("EnumSids failed - %s\n", nt_errstr(status));
                return False;
@@ -299,7 +312,10 @@ static BOOL test_EnumSids(struct dcerpc_pipe *p,
        
        printf("trying EnumSids partial listing (asking for 1 at 2)\n");
        resume_handle = 2;
-       status = dcerpc_lsa_EnumSids(p, mem_ctx, handle, &resume_handle, 1, &sids2);
+       r.in.num_entries = 1;
+       r.out.sids = &sids2;
+
+       status = dcerpc_lsa_EnumSids(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("EnumSids failed - %s\n", nt_errstr(status));
                return False;
@@ -328,11 +344,11 @@ BOOL torture_rpc_lsa(int dummy)
                return False;
        }
        
-       if (!test_OpenPolicy(p)) {
+       if (!test_OpenPolicy(p, mem_ctx)) {
                ret = False;
        }
 
-       if (!test_OpenPolicy2(p, &handle)) {
+       if (!test_OpenPolicy2(p, mem_ctx, &handle)) {
                ret = False;
        }