[SCM] Samba Shared Repository - branch master updated -
release-4-0-0alpha6-562-gf157c1a
Günther Deschner
gd at samba.org
Fri Feb 6 13:59:43 GMT 2009
The branch, master has been updated
via f157c1a07f3fbbc461a806b10e24e25d0b261070 (commit)
via 33d2507ba2374afabeaff455c08896fa45babbe8 (commit)
via 88aaac39fa2a38997c11d4f545f3e223129a5a6a (commit)
via 8ddb81ca0addf1c9bad4f624e55ee5679aa3fe4c (commit)
via 3954cd83aa6976ef8c799eeee00f81fefb693934 (commit)
via 99398e8768f308f01b3298bfbc3bb783f6ea8c2f (commit)
via d400de2ffa53bebe13cba0d2d3c18dcc05bc37bd (commit)
via 6e1c008913f545d731dae6aefc1d11053a32d151 (commit)
via 0d4dbe6012ee6f15256de14f8d4d6b32eb4ca313 (commit)
via b970eb791cdf8893881bab3c113fdd5f2ff9866e (commit)
via 8153916f4aad1482351719ed2f1d91d48fe89197 (commit)
via 22e2f220be4ac05aead7ba7a893904299c5bbfd8 (commit)
via cf15c687d279d3807caa90560d8799d6b00f005b (commit)
via 37c89c143009f1c6e0dae819bf08baaeca81df7d (commit)
via cb5837dc192dabfe5d0edfb1be9acc3672785cd4 (commit)
via 121b5f4afdb22ae720947183303feab4c48f41a3 (commit)
via de7a30817de5d77579520a8c776c2a8b1b2ffcc7 (commit)
via c1a1480f7a31b9c6651f546acafa58d1f3de3457 (commit)
via 45104ba1459c3698d6c34ca3ab31c28cbf6c710c (commit)
via c2975cc7ead5da000b3d2c2e9af7bfbe98be79a4 (commit)
via cb0687f9e7dee2e722929dd1d7064e7598acc40a (commit)
via c2cd781d0aac788f1ee4c9c510b7726911df9020 (commit)
via 82ce981a4116a10e04e04c8083167e6b83595caf (commit)
via ea2d151721f531defc5b97dd7c91cd8df6300b1e (commit)
via 8b84c97e8db17858344d1f953d199bd40ac70883 (commit)
from d895ca505f7f9c4edf476a0c966e93917e35575c (commit)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit f157c1a07f3fbbc461a806b10e24e25d0b261070
Author: Günther Deschner <gd at samba.org>
Date: Fri Feb 6 14:51:47 2009 +0100
s4-spoolss: fix s4 spoolss server build (using a temp macro).
Guenther
commit 33d2507ba2374afabeaff455c08896fa45babbe8
Author: Günther Deschner <gd at samba.org>
Date: Fri Feb 6 13:53:16 2009 +0100
s4-smbtorture: fix test_EnumPrinterKey.
Guenther
commit 88aaac39fa2a38997c11d4f545f3e223129a5a6a
Author: Günther Deschner <gd at samba.org>
Date: Fri Feb 6 13:44:44 2009 +0100
s4-smbtorture: fix test_EnumPrinterDataEx.
Guenther
commit 8ddb81ca0addf1c9bad4f624e55ee5679aa3fe4c
Author: Günther Deschner <gd at samba.org>
Date: Fri Feb 6 13:38:59 2009 +0100
s4-smbtorture: fix test_GetPrinterDataEx.
Guenther
commit 3954cd83aa6976ef8c799eeee00f81fefb693934
Author: Günther Deschner <gd at samba.org>
Date: Fri Feb 6 13:28:48 2009 +0100
s4-smbtorture: fix test_GetPrinterDriver2.
Guenther
commit 99398e8768f308f01b3298bfbc3bb783f6ea8c2f
Author: Günther Deschner <gd at samba.org>
Date: Fri Feb 6 13:09:22 2009 +0100
s4-smbtorture: fix test_GetForm.
Guenther
commit d400de2ffa53bebe13cba0d2d3c18dcc05bc37bd
Author: Günther Deschner <gd at samba.org>
Date: Fri Feb 6 12:44:57 2009 +0100
s4-smbtorture: fix test_DoPrintTest.
Guenther
commit 6e1c008913f545d731dae6aefc1d11053a32d151
Author: Günther Deschner <gd at samba.org>
Date: Fri Feb 6 12:42:13 2009 +0100
s4-smbtorture: fix test_DoPrintTest.
Guenther
commit 0d4dbe6012ee6f15256de14f8d4d6b32eb4ca313
Author: Günther Deschner <gd at samba.org>
Date: Fri Feb 6 12:32:57 2009 +0100
s4-smbtorture: fix test_GetPrinterDriverDirectory.
Guenther
commit b970eb791cdf8893881bab3c113fdd5f2ff9866e
Author: Günther Deschner <gd at samba.org>
Date: Fri Feb 6 12:25:47 2009 +0100
s4-smbtorture: fix test_GetPrinter.
Guenther
commit 8153916f4aad1482351719ed2f1d91d48fe89197
Author: Günther Deschner <gd at samba.org>
Date: Fri Feb 6 12:22:35 2009 +0100
s4-smbtorture: fix test_GetPrinter.
Guenther
commit 22e2f220be4ac05aead7ba7a893904299c5bbfd8
Author: Günther Deschner <gd at samba.org>
Date: Fri Feb 6 12:18:06 2009 +0100
s4-smbtorture: fix test_GetJob.
Guenther
commit cf15c687d279d3807caa90560d8799d6b00f005b
Author: Günther Deschner <gd at samba.org>
Date: Fri Feb 6 13:57:13 2009 +0100
s3: re-run make samba3-idl.
Guenther
commit 37c89c143009f1c6e0dae819bf08baaeca81df7d
Author: Günther Deschner <gd at samba.org>
Date: Fri Feb 6 13:53:03 2009 +0100
spoolss: fix spoolss_EnumPrinterKey IDL.
Guenther
commit cb5837dc192dabfe5d0edfb1be9acc3672785cd4
Author: Günther Deschner <gd at samba.org>
Date: Fri Feb 6 13:42:23 2009 +0100
spoolss: fix spoolss_EnumPrinterDataEx IDL.
Guenther
commit 121b5f4afdb22ae720947183303feab4c48f41a3
Author: Günther Deschner <gd at samba.org>
Date: Fri Feb 6 13:33:59 2009 +0100
spoolss: fix spoolss_GetPrinterDataEx IDL.
Guenther
commit de7a30817de5d77579520a8c776c2a8b1b2ffcc7
Author: Günther Deschner <gd at samba.org>
Date: Fri Feb 6 13:25:51 2009 +0100
spoolss: fix spoolss_GetPrinterDriver2 IDL.
Guenther
commit c1a1480f7a31b9c6651f546acafa58d1f3de3457
Author: Günther Deschner <gd at samba.org>
Date: Fri Feb 6 13:21:13 2009 +0100
spoolss: fix spoolss_XcvData IDL.
Guenther
commit 45104ba1459c3698d6c34ca3ab31c28cbf6c710c
Author: Günther Deschner <gd at samba.org>
Date: Fri Feb 6 13:10:10 2009 +0100
spoolss: fix spoolss_GetForm IDL.
Guenther
commit c2975cc7ead5da000b3d2c2e9af7bfbe98be79a4
Author: Günther Deschner <gd at samba.org>
Date: Fri Feb 6 13:06:13 2009 +0100
spoolss: fix spoolss_ReadPrinter IDL.
Guenther
commit cb0687f9e7dee2e722929dd1d7064e7598acc40a
Author: Günther Deschner <gd at samba.org>
Date: Fri Feb 6 12:43:18 2009 +0100
spoolss: fix spoolss_WritePrinter IDL.
Guenther
commit c2cd781d0aac788f1ee4c9c510b7726911df9020
Author: Günther Deschner <gd at samba.org>
Date: Fri Feb 6 12:40:37 2009 +0100
spoolss: fix spoolss_StartDocPrinter IDL.
Guenther
commit 82ce981a4116a10e04e04c8083167e6b83595caf
Author: Günther Deschner <gd at samba.org>
Date: Fri Feb 6 12:31:51 2009 +0100
spoolss: fix spoolss_GetPrinterDriverDirectory IDL.
Guenther
commit ea2d151721f531defc5b97dd7c91cd8df6300b1e
Author: Günther Deschner <gd at samba.org>
Date: Fri Feb 6 12:17:33 2009 +0100
spoolss: fix spoolss_GetPrinter IDL.
Guenther
commit 8b84c97e8db17858344d1f953d199bd40ac70883
Author: Günther Deschner <gd at samba.org>
Date: Fri Feb 6 12:17:03 2009 +0100
spoolss: fix spoolss_GetJob IDL.
Guenther
-----------------------------------------------------------------------
Summary of changes:
librpc/gen_ndr/cli_spoolss.c | 100 +++---
librpc/gen_ndr/cli_spoolss.h | 49 ++--
librpc/gen_ndr/ndr_spoolss.c | 527 ++++++++++++++++++++++-----
librpc/gen_ndr/spoolss.h | 51 ++--
librpc/gen_ndr/srv_spoolss.c | 47 +--
librpc/idl/spoolss.idl | 49 ++--
source4/rpc_server/spoolss/dcesrv_spoolss.c | 14 +-
source4/torture/rpc/samba3rpc.c | 6 +-
source4/torture/rpc/spoolss.c | 51 ++-
source4/torture/rpc/spoolss_win.c | 27 +-
10 files changed, 646 insertions(+), 275 deletions(-)
Changeset truncated at 500 lines:
diff --git a/librpc/gen_ndr/cli_spoolss.c b/librpc/gen_ndr/cli_spoolss.c
index 1071f2a..dfb0060 100644
--- a/librpc/gen_ndr/cli_spoolss.c
+++ b/librpc/gen_ndr/cli_spoolss.c
@@ -173,7 +173,7 @@ NTSTATUS rpccli_spoolss_GetJob(struct rpc_pipe_client *cli,
DATA_BLOB *buffer /* [in] [unique] */,
uint32_t offered /* [in] */,
union spoolss_JobInfo *info /* [out] [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */,
- uint32_t needed /* [out] */,
+ uint32_t *needed /* [out] [ref] */,
WERROR *werror)
{
struct spoolss_GetJob r;
@@ -212,7 +212,7 @@ NTSTATUS rpccli_spoolss_GetJob(struct rpc_pipe_client *cli,
if (info && r.out.info) {
*info = *r.out.info;
}
- return NT_STATUS_NOT_SUPPORTED;
+ *needed = *r.out.needed;
/* Return result */
if (werror) {
@@ -427,7 +427,7 @@ NTSTATUS rpccli_spoolss_GetPrinter(struct rpc_pipe_client *cli,
DATA_BLOB *buffer /* [in] [unique] */,
uint32_t offered /* [in] */,
union spoolss_PrinterInfo *info /* [out] [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */,
- uint32_t needed /* [out] */,
+ uint32_t *needed /* [out] [ref] */,
WERROR *werror)
{
struct spoolss_GetPrinter r;
@@ -465,7 +465,7 @@ NTSTATUS rpccli_spoolss_GetPrinter(struct rpc_pipe_client *cli,
if (info && r.out.info) {
*info = *r.out.info;
}
- return NT_STATUS_NOT_SUPPORTED;
+ *needed = *r.out.needed;
/* Return result */
if (werror) {
@@ -624,7 +624,7 @@ NTSTATUS rpccli_spoolss_GetPrinterDriverDirectory(struct rpc_pipe_client *cli,
DATA_BLOB *buffer /* [in] [unique] */,
uint32_t offered /* [in] */,
union spoolss_DriverDirectoryInfo *info /* [out] [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */,
- uint32_t needed /* [out] */,
+ uint32_t *needed /* [out] [ref] */,
WERROR *werror)
{
struct spoolss_GetPrinterDriverDirectory r;
@@ -663,7 +663,7 @@ NTSTATUS rpccli_spoolss_GetPrinterDriverDirectory(struct rpc_pipe_client *cli,
if (info && r.out.info) {
*info = *r.out.info;
}
- return NT_STATUS_NOT_SUPPORTED;
+ *needed = *r.out.needed;
/* Return result */
if (werror) {
@@ -868,7 +868,7 @@ NTSTATUS rpccli_spoolss_StartDocPrinter(struct rpc_pipe_client *cli,
struct policy_handle *handle /* [in] [ref] */,
uint32_t level /* [in] */,
union spoolss_DocumentInfo info /* [in] [switch_is(level)] */,
- uint32_t job_id /* [out] */,
+ uint32_t *job_id /* [out] [ref] */,
WERROR *werror)
{
struct spoolss_StartDocPrinter r;
@@ -902,7 +902,7 @@ NTSTATUS rpccli_spoolss_StartDocPrinter(struct rpc_pipe_client *cli,
}
/* Return variables */
- return NT_STATUS_NOT_SUPPORTED;
+ *job_id = *r.out.job_id;
/* Return result */
if (werror) {
@@ -960,7 +960,7 @@ NTSTATUS rpccli_spoolss_WritePrinter(struct rpc_pipe_client *cli,
struct policy_handle *handle /* [in] [ref] */,
DATA_BLOB data /* [in] */,
uint32_t _data_size /* [in] [value(r->in.data.length)] */,
- uint32_t num_written /* [out] */,
+ uint32_t *num_written /* [out] [ref] */,
WERROR *werror)
{
struct spoolss_WritePrinter r;
@@ -994,7 +994,7 @@ NTSTATUS rpccli_spoolss_WritePrinter(struct rpc_pipe_client *cli,
}
/* Return variables */
- return NT_STATUS_NOT_SUPPORTED;
+ *num_written = *r.out.num_written;
/* Return result */
if (werror) {
@@ -1093,9 +1093,9 @@ NTSTATUS rpccli_spoolss_AbortPrinter(struct rpc_pipe_client *cli,
NTSTATUS rpccli_spoolss_ReadPrinter(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
struct policy_handle *handle /* [in] [ref] */,
+ uint8_t *data /* [out] [ref,size_is(data_size)] */,
uint32_t data_size /* [in] */,
- DATA_BLOB data /* [out] */,
- uint32_t _data_size /* [out] [value(r->out.data.length)] */,
+ uint32_t *_data_size /* [out] [ref] */,
WERROR *werror)
{
struct spoolss_ReadPrinter r;
@@ -1128,8 +1128,8 @@ NTSTATUS rpccli_spoolss_ReadPrinter(struct rpc_pipe_client *cli,
}
/* Return variables */
- return NT_STATUS_NOT_SUPPORTED;
- return NT_STATUS_NOT_SUPPORTED;
+ memcpy(data, r.out.data, r.in.data_size * sizeof(*data));
+ *_data_size = *r.out._data_size;
/* Return result */
if (werror) {
@@ -1553,7 +1553,7 @@ NTSTATUS rpccli_spoolss_GetForm(struct rpc_pipe_client *cli,
DATA_BLOB *buffer /* [in] [unique] */,
uint32_t offered /* [in] */,
union spoolss_FormInfo *info /* [out] [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */,
- uint32_t needed /* [out] */,
+ uint32_t *needed /* [out] [ref] */,
WERROR *werror)
{
struct spoolss_GetForm r;
@@ -1592,7 +1592,7 @@ NTSTATUS rpccli_spoolss_GetForm(struct rpc_pipe_client *cli,
if (info && r.out.info) {
*info = *r.out.info;
}
- return NT_STATUS_NOT_SUPPORTED;
+ *needed = *r.out.needed;
/* Return result */
if (werror) {
@@ -2494,9 +2494,9 @@ NTSTATUS rpccli_spoolss_GetPrinterDriver2(struct rpc_pipe_client *cli,
uint32_t client_major_version /* [in] */,
uint32_t client_minor_version /* [in] */,
DATA_BLOB *info /* [out] [unique] */,
- uint32_t needed /* [out] */,
- uint32_t server_major_version /* [out] */,
- uint32_t server_minor_version /* [out] */,
+ uint32_t *needed /* [out] [ref] */,
+ uint32_t *server_major_version /* [out] [ref] */,
+ uint32_t *server_minor_version /* [out] [ref] */,
WERROR *werror)
{
struct spoolss_GetPrinterDriver2 r;
@@ -2537,9 +2537,9 @@ NTSTATUS rpccli_spoolss_GetPrinterDriver2(struct rpc_pipe_client *cli,
if (info && r.out.info) {
*info = *r.out.info;
}
- return NT_STATUS_NOT_SUPPORTED;
- return NT_STATUS_NOT_SUPPORTED;
- return NT_STATUS_NOT_SUPPORTED;
+ *needed = *r.out.needed;
+ *server_major_version = *r.out.server_major_version;
+ *server_minor_version = *r.out.server_minor_version;
/* Return result */
if (werror) {
@@ -3637,10 +3637,10 @@ NTSTATUS rpccli_spoolss_GetPrinterDataEx(struct rpc_pipe_client *cli,
struct policy_handle *handle /* [in] [ref] */,
const char *key_name /* [in] [charset(UTF16)] */,
const char *value_name /* [in] [charset(UTF16)] */,
+ uint32_t *type /* [out] [ref] */,
+ uint8_t *buffer /* [out] [ref,size_is(offered)] */,
uint32_t offered /* [in] */,
- uint32_t type /* [out] */,
- DATA_BLOB buffer /* [out] */,
- uint32_t needed /* [out] */,
+ uint32_t *needed /* [out] [ref] */,
WERROR *werror)
{
struct spoolss_GetPrinterDataEx r;
@@ -3675,9 +3675,9 @@ NTSTATUS rpccli_spoolss_GetPrinterDataEx(struct rpc_pipe_client *cli,
}
/* Return variables */
- return NT_STATUS_NOT_SUPPORTED;
- return NT_STATUS_NOT_SUPPORTED;
- return NT_STATUS_NOT_SUPPORTED;
+ *type = *r.out.type;
+ memcpy(buffer, r.out.buffer, r.in.offered * sizeof(*buffer));
+ *needed = *r.out.needed;
/* Return result */
if (werror) {
@@ -3691,10 +3691,10 @@ NTSTATUS rpccli_spoolss_EnumPrinterDataEx(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
struct policy_handle *handle /* [in] [ref] */,
const char *key_name /* [in] [charset(UTF16)] */,
+ uint8_t *buffer /* [out] [ref,size_is(offered)] */,
uint32_t offered /* [in] */,
- DATA_BLOB buffer /* [out] */,
- uint32_t needed /* [out] */,
- uint32_t count /* [out] */,
+ uint32_t *needed /* [out] [ref] */,
+ uint32_t *count /* [out] [ref] */,
WERROR *werror)
{
struct spoolss_EnumPrinterDataEx r;
@@ -3728,9 +3728,9 @@ NTSTATUS rpccli_spoolss_EnumPrinterDataEx(struct rpc_pipe_client *cli,
}
/* Return variables */
- return NT_STATUS_NOT_SUPPORTED;
- return NT_STATUS_NOT_SUPPORTED;
- return NT_STATUS_NOT_SUPPORTED;
+ memcpy(buffer, r.out.buffer, r.in.offered * sizeof(*buffer));
+ *needed = *r.out.needed;
+ *count = *r.out.count;
/* Return result */
if (werror) {
@@ -3744,9 +3744,9 @@ NTSTATUS rpccli_spoolss_EnumPrinterKey(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
struct policy_handle *handle /* [in] [ref] */,
const char *key_name /* [in] [charset(UTF16)] */,
- uint32_t key_buffer_size /* [out] */,
- uint16_t *key_buffer /* [out] */,
- uint32_t needed /* [in,out] */,
+ uint16_t *key_buffer /* [out] [ref,size_is(key_buffer_size/2)] */,
+ uint32_t key_buffer_size /* [in] */,
+ uint32_t *needed /* [out] [ref] */,
WERROR *werror)
{
struct spoolss_EnumPrinterKey r;
@@ -3755,7 +3755,7 @@ NTSTATUS rpccli_spoolss_EnumPrinterKey(struct rpc_pipe_client *cli,
/* In parameters */
r.in.handle = handle;
r.in.key_name = key_name;
- r.in.needed = needed;
+ r.in.key_buffer_size = key_buffer_size;
if (DEBUGLEVEL >= 10) {
NDR_PRINT_IN_DEBUG(spoolss_EnumPrinterKey, &r);
@@ -3780,9 +3780,8 @@ NTSTATUS rpccli_spoolss_EnumPrinterKey(struct rpc_pipe_client *cli,
}
/* Return variables */
- return NT_STATUS_NOT_SUPPORTED;
- memcpy(key_buffer, r.out.key_buffer, key_buffer_size * sizeof(*key_buffer));
- return NT_STATUS_NOT_SUPPORTED;
+ memcpy(key_buffer, r.out.key_buffer, r.in.key_buffer_size / 2 * sizeof(*key_buffer));
+ *needed = *r.out.needed;
/* Return result */
if (werror) {
@@ -4091,11 +4090,10 @@ NTSTATUS rpccli_spoolss_XcvData(struct rpc_pipe_client *cli,
const char *function_name /* [in] [charset(UTF16)] */,
DATA_BLOB in_data /* [in] */,
uint32_t _in_data_length /* [in] [value(r->in.in_data.length)] */,
- uint32_t offered /* [in] */,
- uint32_t unknown1 /* [in] */,
- DATA_BLOB out_data /* [out] */,
- uint32_t needed /* [out] */,
- uint32_t unknown2 /* [out] */,
+ uint8_t *out_data /* [out] [ref,size_is(out_data_size)] */,
+ uint32_t out_data_size /* [in] */,
+ uint32_t *needed /* [out] [ref] */,
+ uint32_t *status_code /* [in,out] [ref] */,
WERROR *werror)
{
struct spoolss_XcvData r;
@@ -4106,8 +4104,8 @@ NTSTATUS rpccli_spoolss_XcvData(struct rpc_pipe_client *cli,
r.in.function_name = function_name;
r.in.in_data = in_data;
r.in._in_data_length = _in_data_length;
- r.in.offered = offered;
- r.in.unknown1 = unknown1;
+ r.in.out_data_size = out_data_size;
+ r.in.status_code = status_code;
if (DEBUGLEVEL >= 10) {
NDR_PRINT_IN_DEBUG(spoolss_XcvData, &r);
@@ -4132,9 +4130,9 @@ NTSTATUS rpccli_spoolss_XcvData(struct rpc_pipe_client *cli,
}
/* Return variables */
- return NT_STATUS_NOT_SUPPORTED;
- return NT_STATUS_NOT_SUPPORTED;
- return NT_STATUS_NOT_SUPPORTED;
+ memcpy(out_data, r.out.out_data, r.in.out_data_size * sizeof(*out_data));
+ *needed = *r.out.needed;
+ *status_code = *r.out.status_code;
/* Return result */
if (werror) {
diff --git a/librpc/gen_ndr/cli_spoolss.h b/librpc/gen_ndr/cli_spoolss.h
index ba7de89..b1adf39 100644
--- a/librpc/gen_ndr/cli_spoolss.h
+++ b/librpc/gen_ndr/cli_spoolss.h
@@ -35,7 +35,7 @@ NTSTATUS rpccli_spoolss_GetJob(struct rpc_pipe_client *cli,
DATA_BLOB *buffer /* [in] [unique] */,
uint32_t offered /* [in] */,
union spoolss_JobInfo *info /* [out] [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */,
- uint32_t needed /* [out] */,
+ uint32_t *needed /* [out] [ref] */,
WERROR *werror);
NTSTATUS rpccli_spoolss_EnumJobs(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
@@ -72,7 +72,7 @@ NTSTATUS rpccli_spoolss_GetPrinter(struct rpc_pipe_client *cli,
DATA_BLOB *buffer /* [in] [unique] */,
uint32_t offered /* [in] */,
union spoolss_PrinterInfo *info /* [out] [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */,
- uint32_t needed /* [out] */,
+ uint32_t *needed /* [out] [ref] */,
WERROR *werror);
NTSTATUS rpccli_spoolss_AddPrinterDriver(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
@@ -99,7 +99,7 @@ NTSTATUS rpccli_spoolss_GetPrinterDriverDirectory(struct rpc_pipe_client *cli,
DATA_BLOB *buffer /* [in] [unique] */,
uint32_t offered /* [in] */,
union spoolss_DriverDirectoryInfo *info /* [out] [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */,
- uint32_t needed /* [out] */,
+ uint32_t *needed /* [out] [ref] */,
WERROR *werror);
NTSTATUS rpccli_spoolss_DeletePrinterDriver(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
@@ -130,7 +130,7 @@ NTSTATUS rpccli_spoolss_StartDocPrinter(struct rpc_pipe_client *cli,
struct policy_handle *handle /* [in] [ref] */,
uint32_t level /* [in] */,
union spoolss_DocumentInfo info /* [in] [switch_is(level)] */,
- uint32_t job_id /* [out] */,
+ uint32_t *job_id /* [out] [ref] */,
WERROR *werror);
NTSTATUS rpccli_spoolss_StartPagePrinter(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
@@ -141,7 +141,7 @@ NTSTATUS rpccli_spoolss_WritePrinter(struct rpc_pipe_client *cli,
struct policy_handle *handle /* [in] [ref] */,
DATA_BLOB data /* [in] */,
uint32_t _data_size /* [in] [value(r->in.data.length)] */,
- uint32_t num_written /* [out] */,
+ uint32_t *num_written /* [out] [ref] */,
WERROR *werror);
NTSTATUS rpccli_spoolss_EndPagePrinter(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
@@ -154,9 +154,9 @@ NTSTATUS rpccli_spoolss_AbortPrinter(struct rpc_pipe_client *cli,
NTSTATUS rpccli_spoolss_ReadPrinter(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
struct policy_handle *handle /* [in] [ref] */,
+ uint8_t *data /* [out] [ref,size_is(data_size)] */,
uint32_t data_size /* [in] */,
- DATA_BLOB data /* [out] */,
- uint32_t _data_size /* [out] [value(r->out.data.length)] */,
+ uint32_t *_data_size /* [out] [ref] */,
WERROR *werror);
NTSTATUS rpccli_spoolss_EndDocPrinter(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
@@ -211,7 +211,7 @@ NTSTATUS rpccli_spoolss_GetForm(struct rpc_pipe_client *cli,
DATA_BLOB *buffer /* [in] [unique] */,
uint32_t offered /* [in] */,
union spoolss_FormInfo *info /* [out] [unique,subcontext_size(offered),subcontext(4),switch_is(level)] */,
- uint32_t needed /* [out] */,
+ uint32_t *needed /* [out] [ref] */,
WERROR *werror);
NTSTATUS rpccli_spoolss_SetForm(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
@@ -311,9 +311,9 @@ NTSTATUS rpccli_spoolss_GetPrinterDriver2(struct rpc_pipe_client *cli,
uint32_t client_major_version /* [in] */,
uint32_t client_minor_version /* [in] */,
DATA_BLOB *info /* [out] [unique] */,
- uint32_t needed /* [out] */,
- uint32_t server_major_version /* [out] */,
- uint32_t server_minor_version /* [out] */,
+ uint32_t *needed /* [out] [ref] */,
+ uint32_t *server_major_version /* [out] [ref] */,
+ uint32_t *server_minor_version /* [out] [ref] */,
WERROR *werror);
NTSTATUS rpccli_spoolss_FindFirstPrinterChangeNotification(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
@@ -441,27 +441,27 @@ NTSTATUS rpccli_spoolss_GetPrinterDataEx(struct rpc_pipe_client *cli,
struct policy_handle *handle /* [in] [ref] */,
const char *key_name /* [in] [charset(UTF16)] */,
const char *value_name /* [in] [charset(UTF16)] */,
+ uint32_t *type /* [out] [ref] */,
+ uint8_t *buffer /* [out] [ref,size_is(offered)] */,
uint32_t offered /* [in] */,
- uint32_t type /* [out] */,
- DATA_BLOB buffer /* [out] */,
- uint32_t needed /* [out] */,
+ uint32_t *needed /* [out] [ref] */,
WERROR *werror);
NTSTATUS rpccli_spoolss_EnumPrinterDataEx(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
struct policy_handle *handle /* [in] [ref] */,
const char *key_name /* [in] [charset(UTF16)] */,
+ uint8_t *buffer /* [out] [ref,size_is(offered)] */,
uint32_t offered /* [in] */,
- DATA_BLOB buffer /* [out] */,
- uint32_t needed /* [out] */,
- uint32_t count /* [out] */,
+ uint32_t *needed /* [out] [ref] */,
+ uint32_t *count /* [out] [ref] */,
WERROR *werror);
NTSTATUS rpccli_spoolss_EnumPrinterKey(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
struct policy_handle *handle /* [in] [ref] */,
const char *key_name /* [in] [charset(UTF16)] */,
- uint32_t key_buffer_size /* [out] */,
- uint16_t *key_buffer /* [out] */,
- uint32_t needed /* [in,out] */,
+ uint16_t *key_buffer /* [out] [ref,size_is(key_buffer_size/2)] */,
+ uint32_t key_buffer_size /* [in] */,
+ uint32_t *needed /* [out] [ref] */,
WERROR *werror);
NTSTATUS rpccli_spoolss_DeletePrinterDataEx(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
@@ -493,11 +493,10 @@ NTSTATUS rpccli_spoolss_XcvData(struct rpc_pipe_client *cli,
const char *function_name /* [in] [charset(UTF16)] */,
DATA_BLOB in_data /* [in] */,
uint32_t _in_data_length /* [in] [value(r->in.in_data.length)] */,
- uint32_t offered /* [in] */,
- uint32_t unknown1 /* [in] */,
- DATA_BLOB out_data /* [out] */,
- uint32_t needed /* [out] */,
- uint32_t unknown2 /* [out] */,
+ uint8_t *out_data /* [out] [ref,size_is(out_data_size)] */,
+ uint32_t out_data_size /* [in] */,
+ uint32_t *needed /* [out] [ref] */,
+ uint32_t *status_code /* [in,out] [ref] */,
WERROR *werror);
NTSTATUS rpccli_spoolss_AddPrinterDriverEx(struct rpc_pipe_client *cli,
TALLOC_CTX *mem_ctx,
diff --git a/librpc/gen_ndr/ndr_spoolss.c b/librpc/gen_ndr/ndr_spoolss.c
index a677f53..77321b4 100644
--- a/librpc/gen_ndr/ndr_spoolss.c
+++ b/librpc/gen_ndr/ndr_spoolss.c
@@ -9447,7 +9447,10 @@ static enum ndr_err_code ndr_push_spoolss_GetJob(struct ndr_push *ndr, int flags
NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
}
}
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->out.needed));
+ if (r->out.needed == NULL) {
+ return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+ }
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
}
return NDR_ERR_SUCCESS;
@@ -9460,6 +9463,7 @@ static enum ndr_err_code ndr_pull_spoolss_GetJob(struct ndr_pull *ndr, int flags
TALLOC_CTX *_mem_save_handle_0;
TALLOC_CTX *_mem_save_buffer_0;
TALLOC_CTX *_mem_save_info_0;
+ TALLOC_CTX *_mem_save_needed_0;
if (flags & NDR_IN) {
ZERO_STRUCT(r->out);
@@ -9485,6 +9489,8 @@ static enum ndr_err_code ndr_pull_spoolss_GetJob(struct ndr_pull *ndr, int flags
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
}
NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
+ NDR_PULL_ALLOC(ndr, r->out.needed);
+ ZERO_STRUCTP(r->out.needed);
}
if (flags & NDR_OUT) {
NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
@@ -9505,7 +9511,13 @@ static enum ndr_err_code ndr_pull_spoolss_GetJob(struct ndr_pull *ndr, int flags
}
NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
}
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->out.needed));
+ if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+ NDR_PULL_ALLOC(ndr, r->out.needed);
+ }
+ _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
}
return NDR_ERR_SUCCESS;
@@ -9546,7 +9558,10 @@ _PUBLIC_ void ndr_print_spoolss_GetJob(struct ndr_print *ndr, const char *name,
ndr_print_spoolss_JobInfo(ndr, "info", r->out.info);
}
ndr->depth--;
- ndr_print_uint32(ndr, "needed", r->out.needed);
+ ndr_print_ptr(ndr, "needed", r->out.needed);
+ ndr->depth++;
+ ndr_print_uint32(ndr, "needed", *r->out.needed);
+ ndr->depth--;
ndr_print_WERROR(ndr, "result", r->out.result);
ndr->depth--;
}
@@ -9932,7 +9947,10 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinter(struct ndr_push *ndr, int
NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
}
}
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->out.needed));
+ if (r->out.needed == NULL) {
+ return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+ }
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
}
return NDR_ERR_SUCCESS;
@@ -9945,6 +9963,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinter(struct ndr_pull *ndr, int
TALLOC_CTX *_mem_save_handle_0;
TALLOC_CTX *_mem_save_buffer_0;
--
Samba Shared Repository
More information about the samba-cvs
mailing list