From 2b1dae366217528dde13757fa64cf6b9d408a342 Mon Sep 17 00:00:00 2001 From: Günther Deschner Date: Thu, 29 Apr 2010 02:39:44 +0200 Subject: s4-smbtorture: implement and test level 3 and 5 of PrintQEnum RAP. Guenther --- source4/torture/rap/rap.c | 47 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 45 insertions(+), 2 deletions(-) (limited to 'source4/torture/rap/rap.c') diff --git a/source4/torture/rap/rap.c b/source4/torture/rap/rap.c index 49d55b1162..a81516af6c 100644 --- a/source4/torture/rap/rap.c +++ b/source4/torture/rap/rap.c @@ -582,7 +582,7 @@ NTSTATUS smbcli_rap_netprintqenum(struct smbcli_tree *tree, NDR_GOTO(ndr_pull_uint16(call->ndr_pull_param, NDR_SCALARS, &r->out.count)); NDR_GOTO(ndr_pull_uint16(call->ndr_pull_param, NDR_SCALARS, &r->out.available)); - r->out.info = talloc_array(mem_ctx, union rap_printq_info, r->out.count); + r->out.info = talloc_zero_array(mem_ctx, union rap_printq_info, r->out.count); if (r->out.info == NULL) { result = NT_STATUS_NO_MEMORY; @@ -625,8 +625,51 @@ NTSTATUS smbcli_rap_netprintqenum(struct smbcli_tree *tree, NDR_SCALARS, &r->out.info[i].info1.PrintQStatus)); NDR_GOTO(ndr_pull_uint16(call->ndr_pull_data, NDR_SCALARS, &r->out.info[i].info1.PrintJobCount)); - break; + case 3: + RAP_GOTO(rap_pull_string(mem_ctx, call->ndr_pull_data, + r->out.convert, + &r->out.info[i].info3.PrintQueueName)); + NDR_GOTO(ndr_pull_uint16(call->ndr_pull_data, + NDR_SCALARS, &r->out.info[i].info3.Priority)); + NDR_GOTO(ndr_pull_uint16(call->ndr_pull_data, + NDR_SCALARS, &r->out.info[i].info3.StartTime)); + NDR_GOTO(ndr_pull_uint16(call->ndr_pull_data, + NDR_SCALARS, &r->out.info[i].info3.UntilTime)); + NDR_GOTO(ndr_pull_uint16(call->ndr_pull_data, + NDR_SCALARS, &r->out.info[i].info3.Pad)); + RAP_GOTO(rap_pull_string(mem_ctx, call->ndr_pull_data, + r->out.convert, + &r->out.info[i].info3.SeparatorPageFilename)); + RAP_GOTO(rap_pull_string(mem_ctx, call->ndr_pull_data, + r->out.convert, + &r->out.info[i].info3.PrintProcessorDllName)); + RAP_GOTO(rap_pull_string(mem_ctx, call->ndr_pull_data, + r->out.convert, + &r->out.info[i].info3.PrintParameterString)); + RAP_GOTO(rap_pull_string(mem_ctx, call->ndr_pull_data, + r->out.convert, + &r->out.info[i].info3.CommentString)); + NDR_GOTO(ndr_pull_rap_PrintQStatusCode(call->ndr_pull_data, + NDR_SCALARS, &r->out.info[i].info3.PrintQStatus)); + NDR_GOTO(ndr_pull_uint16(call->ndr_pull_data, + NDR_SCALARS, &r->out.info[i].info3.PrintJobCount)); + RAP_GOTO(rap_pull_string(mem_ctx, call->ndr_pull_data, + r->out.convert, + &r->out.info[i].info3.Printers)); + RAP_GOTO(rap_pull_string(mem_ctx, call->ndr_pull_data, + r->out.convert, + &r->out.info[i].info3.DriverName)); + RAP_GOTO(rap_pull_string(mem_ctx, call->ndr_pull_data, + r->out.convert, + &r->out.info[i].info3.PrintDriverData)); + break; + case 5: + RAP_GOTO(rap_pull_string(mem_ctx, call->ndr_pull_data, + r->out.convert, + &r->out.info[i].info5.PrintQueueName)); + break; + } } -- cgit