[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