[SCM] Samba Shared Repository - branch master updated

Günther Deschner gd at samba.org
Thu Apr 29 17:46:35 MDT 2010


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 <gd at samba.org>
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 <gd at samba.org>
Date:   Fri Apr 30 01:45:24 2010 +0200

    s3: re-run make samba3-idl.
    
    Guenther

commit a11745f21d237060b47549f8fba15df4e49adb8f
Author: Günther Deschner <gd at samba.org>
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


More information about the samba-cvs mailing list