The branch, master has been updated
       via  f2ccff8... s4-smbtorture: fix rap_pull_rap_PrintQueue2 and 4.
       via  93a9563... s3: re-run make samba3-idl.
       via  a11745f... rap: fix rap_PrintQueue2 and rap_PrintQueue4.
      from  6a13c02... rap: let the rap print function be autogenerated again.

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


- Log -----------------------------------------------------------------
commit f2ccff806a5118ff1ff8a24aa85f56be61906d3a
Author: Günther Deschner <[email protected]>
Date:   Fri Apr 30 01:45:44 2010 +0200

    s4-smbtorture: fix rap_pull_rap_PrintQueue2 and 4.
    
    Guenther

commit 93a9563a42cd0b1a81bb2cc3bd2c9f3473043463
Author: Günther Deschner <[email protected]>
Date:   Fri Apr 30 01:45:24 2010 +0200

    s3: re-run make samba3-idl.
    
    Guenther

commit a11745f21d237060b47549f8fba15df4e49adb8f
Author: Günther Deschner <[email protected]>
Date:   Fri Apr 30 01:44:58 2010 +0200

    rap: fix rap_PrintQueue2 and rap_PrintQueue4.
    
    Guenther

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

Summary of changes:
 librpc/gen_ndr/ndr_rap.c  |   76 +++++++++++++++++++++++++++++++++++++++------
 librpc/gen_ndr/rap.h      |    4 +-
 librpc/idl/rap.idl        |    4 +-
 source4/torture/rap/rap.c |   18 +++++++++-
 4 files changed, 86 insertions(+), 16 deletions(-)


Changeset truncated at 500 lines:

diff --git a/librpc/gen_ndr/ndr_rap.c b/librpc/gen_ndr/ndr_rap.c
index 6d97518..52cd610 100644
--- a/librpc/gen_ndr/ndr_rap.c
+++ b/librpc/gen_ndr/ndr_rap.c
@@ -1387,40 +1387,68 @@ _PUBLIC_ void ndr_print_rap_PrintQueue1(struct 
ndr_print *ndr, const char *name,
 
 static enum ndr_err_code ndr_push_rap_PrintQueue2(struct ndr_push *ndr, int 
ndr_flags, const struct rap_PrintQueue2 *r)
 {
+       uint32_t cntr_job_0;
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_push_align(ndr, 5));
                NDR_CHECK(ndr_push_rap_PrintQueue1(ndr, NDR_SCALARS, 
&r->queue));
-               NDR_CHECK(ndr_push_rap_PrintJobInfo1(ndr, NDR_SCALARS, 
&r->job));
+               for (cntr_job_0 = 0; cntr_job_0 < r->queue.PrintJobCount; 
cntr_job_0++) {
+                       NDR_CHECK(ndr_push_rap_PrintJobInfo1(ndr, NDR_SCALARS, 
&r->job[cntr_job_0]));
+               }
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
                NDR_CHECK(ndr_push_rap_PrintQueue1(ndr, NDR_BUFFERS, 
&r->queue));
-               NDR_CHECK(ndr_push_rap_PrintJobInfo1(ndr, NDR_BUFFERS, 
&r->job));
+               for (cntr_job_0 = 0; cntr_job_0 < r->queue.PrintJobCount; 
cntr_job_0++) {
+                       NDR_CHECK(ndr_push_rap_PrintJobInfo1(ndr, NDR_BUFFERS, 
&r->job[cntr_job_0]));
+               }
        }
        return NDR_ERR_SUCCESS;
 }
 
 static enum ndr_err_code ndr_pull_rap_PrintQueue2(struct ndr_pull *ndr, int 
ndr_flags, struct rap_PrintQueue2 *r)
 {
+       uint32_t cntr_job_0;
+       TALLOC_CTX *_mem_save_job_0;
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_pull_align(ndr, 5));
                NDR_CHECK(ndr_pull_rap_PrintQueue1(ndr, NDR_SCALARS, 
&r->queue));
-               NDR_CHECK(ndr_pull_rap_PrintJobInfo1(ndr, NDR_SCALARS, 
&r->job));
+               NDR_PULL_ALLOC_N(ndr, r->job, r->queue.PrintJobCount);
+               _mem_save_job_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->job, 0);
+               for (cntr_job_0 = 0; cntr_job_0 < r->queue.PrintJobCount; 
cntr_job_0++) {
+                       NDR_CHECK(ndr_pull_rap_PrintJobInfo1(ndr, NDR_SCALARS, 
&r->job[cntr_job_0]));
+               }
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_job_0, 0);
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
                NDR_CHECK(ndr_pull_rap_PrintQueue1(ndr, NDR_BUFFERS, 
&r->queue));
-               NDR_CHECK(ndr_pull_rap_PrintJobInfo1(ndr, NDR_BUFFERS, 
&r->job));
+               _mem_save_job_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->job, 0);
+               for (cntr_job_0 = 0; cntr_job_0 < r->queue.PrintJobCount; 
cntr_job_0++) {
+                       NDR_CHECK(ndr_pull_rap_PrintJobInfo1(ndr, NDR_BUFFERS, 
&r->job[cntr_job_0]));
+               }
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_job_0, 0);
        }
        return NDR_ERR_SUCCESS;
 }
 
 _PUBLIC_ void ndr_print_rap_PrintQueue2(struct ndr_print *ndr, const char 
*name, const struct rap_PrintQueue2 *r)
 {
+       uint32_t cntr_job_0;
        ndr_print_struct(ndr, name, "rap_PrintQueue2");
        ndr->depth++;
        ndr_print_rap_PrintQueue1(ndr, "queue", &r->queue);
-       ndr_print_rap_PrintJobInfo1(ndr, "job", &r->job);
+       ndr->print(ndr, "%s: ARRAY(%d)", "job", (int)r->queue.PrintJobCount);
+       ndr->depth++;
+       for (cntr_job_0=0;cntr_job_0<r->queue.PrintJobCount;cntr_job_0++) {
+               char *idx_0=NULL;
+               if (asprintf(&idx_0, "[%d]", cntr_job_0) != -1) {
+                       ndr_print_rap_PrintJobInfo1(ndr, "job", 
&r->job[cntr_job_0]);
+                       free(idx_0);
+               }
+       }
+       ndr->depth--;
        ndr->depth--;
 }
 
@@ -1889,40 +1917,68 @@ _PUBLIC_ void ndr_print_rap_PrintQueue3(struct 
ndr_print *ndr, const char *name,
 
 static enum ndr_err_code ndr_push_rap_PrintQueue4(struct ndr_push *ndr, int 
ndr_flags, const struct rap_PrintQueue4 *r)
 {
+       uint32_t cntr_job_0;
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_push_align(ndr, 5));
                NDR_CHECK(ndr_push_rap_PrintQueue3(ndr, NDR_SCALARS, 
&r->queue));
-               NDR_CHECK(ndr_push_rap_PrintJobInfo2(ndr, NDR_SCALARS, 
&r->job));
+               for (cntr_job_0 = 0; cntr_job_0 < r->queue.PrintJobCount; 
cntr_job_0++) {
+                       NDR_CHECK(ndr_push_rap_PrintJobInfo2(ndr, NDR_SCALARS, 
&r->job[cntr_job_0]));
+               }
                NDR_CHECK(ndr_push_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
                NDR_CHECK(ndr_push_rap_PrintQueue3(ndr, NDR_BUFFERS, 
&r->queue));
-               NDR_CHECK(ndr_push_rap_PrintJobInfo2(ndr, NDR_BUFFERS, 
&r->job));
+               for (cntr_job_0 = 0; cntr_job_0 < r->queue.PrintJobCount; 
cntr_job_0++) {
+                       NDR_CHECK(ndr_push_rap_PrintJobInfo2(ndr, NDR_BUFFERS, 
&r->job[cntr_job_0]));
+               }
        }
        return NDR_ERR_SUCCESS;
 }
 
 static enum ndr_err_code ndr_pull_rap_PrintQueue4(struct ndr_pull *ndr, int 
ndr_flags, struct rap_PrintQueue4 *r)
 {
+       uint32_t cntr_job_0;
+       TALLOC_CTX *_mem_save_job_0;
        if (ndr_flags & NDR_SCALARS) {
                NDR_CHECK(ndr_pull_align(ndr, 5));
                NDR_CHECK(ndr_pull_rap_PrintQueue3(ndr, NDR_SCALARS, 
&r->queue));
-               NDR_CHECK(ndr_pull_rap_PrintJobInfo2(ndr, NDR_SCALARS, 
&r->job));
+               NDR_PULL_ALLOC_N(ndr, r->job, r->queue.PrintJobCount);
+               _mem_save_job_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->job, 0);
+               for (cntr_job_0 = 0; cntr_job_0 < r->queue.PrintJobCount; 
cntr_job_0++) {
+                       NDR_CHECK(ndr_pull_rap_PrintJobInfo2(ndr, NDR_SCALARS, 
&r->job[cntr_job_0]));
+               }
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_job_0, 0);
                NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
        }
        if (ndr_flags & NDR_BUFFERS) {
                NDR_CHECK(ndr_pull_rap_PrintQueue3(ndr, NDR_BUFFERS, 
&r->queue));
-               NDR_CHECK(ndr_pull_rap_PrintJobInfo2(ndr, NDR_BUFFERS, 
&r->job));
+               _mem_save_job_0 = NDR_PULL_GET_MEM_CTX(ndr);
+               NDR_PULL_SET_MEM_CTX(ndr, r->job, 0);
+               for (cntr_job_0 = 0; cntr_job_0 < r->queue.PrintJobCount; 
cntr_job_0++) {
+                       NDR_CHECK(ndr_pull_rap_PrintJobInfo2(ndr, NDR_BUFFERS, 
&r->job[cntr_job_0]));
+               }
+               NDR_PULL_SET_MEM_CTX(ndr, _mem_save_job_0, 0);
        }
        return NDR_ERR_SUCCESS;
 }
 
 _PUBLIC_ void ndr_print_rap_PrintQueue4(struct ndr_print *ndr, const char 
*name, const struct rap_PrintQueue4 *r)
 {
+       uint32_t cntr_job_0;
        ndr_print_struct(ndr, name, "rap_PrintQueue4");
        ndr->depth++;
        ndr_print_rap_PrintQueue3(ndr, "queue", &r->queue);
-       ndr_print_rap_PrintJobInfo2(ndr, "job", &r->job);
+       ndr->print(ndr, "%s: ARRAY(%d)", "job", (int)r->queue.PrintJobCount);
+       ndr->depth++;
+       for (cntr_job_0=0;cntr_job_0<r->queue.PrintJobCount;cntr_job_0++) {
+               char *idx_0=NULL;
+               if (asprintf(&idx_0, "[%d]", cntr_job_0) != -1) {
+                       ndr_print_rap_PrintJobInfo2(ndr, "job", 
&r->job[cntr_job_0]);
+                       free(idx_0);
+               }
+       }
+       ndr->depth--;
        ndr->depth--;
 }
 
diff --git a/librpc/gen_ndr/rap.h b/librpc/gen_ndr/rap.h
index 4a6a11f..63c990e 100644
--- a/librpc/gen_ndr/rap.h
+++ b/librpc/gen_ndr/rap.h
@@ -545,7 +545,7 @@ struct rap_PrintQueue1 {
 
 struct rap_PrintQueue2 {
        struct rap_PrintQueue1 queue;
-       struct rap_PrintJobInfo1 job;
+       struct rap_PrintJobInfo1 *job;
 };
 
 struct rap_PrintQueue3 {
@@ -575,7 +575,7 @@ struct rap_PrintQueue3 {
 
 struct rap_PrintQueue4 {
        struct rap_PrintQueue3 queue;
-       struct rap_PrintJobInfo2 job;
+       struct rap_PrintJobInfo2 *job;
 };
 
 struct rap_PrintQueue5 {
diff --git a/librpc/idl/rap.idl b/librpc/idl/rap.idl
index 5705426..edc0b4f 100644
--- a/librpc/idl/rap.idl
+++ b/librpc/idl/rap.idl
@@ -499,7 +499,7 @@ interface rap
 
        typedef struct {
                rap_PrintQueue1 queue;
-               rap_PrintJobInfo1 job;
+               rap_PrintJobInfo1 job[queue.PrintJobCount];
        } rap_PrintQueue2;
 
        typedef [public] struct {
@@ -529,7 +529,7 @@ interface rap
 
        typedef struct {
                rap_PrintQueue3 queue;
-               rap_PrintJobInfo2 job;
+               rap_PrintJobInfo2 job[queue.PrintJobCount];
        } rap_PrintQueue4;
 
        typedef struct {
diff --git a/source4/torture/rap/rap.c b/source4/torture/rap/rap.c
index 5feea7d..739d44e 100644
--- a/source4/torture/rap/rap.c
+++ b/source4/torture/rap/rap.c
@@ -594,8 +594,15 @@ static NTSTATUS rap_pull_rap_PrintQueue1(TALLOC_CTX 
*mem_ctx, struct ndr_pull *n
 
 static NTSTATUS rap_pull_rap_PrintQueue2(TALLOC_CTX *mem_ctx, struct ndr_pull 
*ndr, uint16_t convert, struct rap_PrintQueue2 *r)
 {
+       int i;
        RAP_RETURN(rap_pull_rap_PrintQueue1(mem_ctx, ndr, convert, &r->queue));
-       RAP_RETURN(rap_pull_rap_JobInfo1(mem_ctx, ndr, convert, &r->job));
+       r->job = talloc_zero_array(mem_ctx, struct rap_PrintJobInfo1, 
r->queue.PrintJobCount);
+       if (r->job == NULL) {
+               return NT_STATUS_NO_MEMORY;
+       }
+       for (i=0; i < r->queue.PrintJobCount; i++) {
+               RAP_RETURN(rap_pull_rap_JobInfo1(mem_ctx, ndr, convert, 
&r->job[i]));
+       }
 
        return NT_STATUS_OK;
 }
@@ -622,8 +629,15 @@ static NTSTATUS rap_pull_rap_PrintQueue3(TALLOC_CTX 
*mem_ctx, struct ndr_pull *n
 
 static NTSTATUS rap_pull_rap_PrintQueue4(TALLOC_CTX *mem_ctx, struct ndr_pull 
*ndr, uint16_t convert, struct rap_PrintQueue4 *r)
 {
+       int i;
        RAP_RETURN(rap_pull_rap_PrintQueue3(mem_ctx, ndr, convert, &r->queue));
-       RAP_RETURN(rap_pull_rap_JobInfo2(mem_ctx, ndr, convert, &r->job));
+       r->job = talloc_zero_array(mem_ctx, struct rap_PrintJobInfo2, 
r->queue.PrintJobCount);
+       if (r->job == NULL) {
+               return NT_STATUS_NO_MEMORY;
+       }
+       for (i=0; i < r->queue.PrintJobCount; i++) {
+               RAP_RETURN(rap_pull_rap_JobInfo2(mem_ctx, ndr, convert, 
&r->job[i]));
+       }
 
        return NT_STATUS_OK;
 }


-- 
Samba Shared Repository

Reply via email to