The branch, v3-6-test has been updated via d4fa4fc s3-waf: remove RPCCLI_SPOOLSS subsystem. via 6c822b1 s3-build: remove RPCCLI_SPOOLSS subsystem. via 7483d78 s3-rpcclient: prefer dcerpc_spoolss_X functions. via 215a3f7 s3-rpc_client: prefer dcerpc_spoolss_X functions. via 038f101 s3-lanman: remove trailing whitespace. from 7107405 tdb: Added doxygen documentation.
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-6-test - Log ----------------------------------------------------------------- commit d4fa4fc3c1c0f3f10a60b059b51dae5c5c555297 Author: Günther Deschner <g...@samba.org> Date: Tue Jan 18 23:16:42 2011 +0100 s3-waf: remove RPCCLI_SPOOLSS subsystem. Guenther Autobuild-User: Günther Deschner <g...@samba.org> Autobuild-Date: Fri Jan 21 16:06:40 CET 2011 on sn-devel-104 (cherry picked from commit 5e89574dceb80b170444631bcffdf02fc8f7af76) commit 6c822b1851e07826b3eb2477fec7a04cdfddee90 Author: Günther Deschner <g...@samba.org> Date: Tue Jan 18 23:16:24 2011 +0100 s3-build: remove RPCCLI_SPOOLSS subsystem. Guenther (cherry picked from commit 24c51a7d2a3e6cdcf8cf55278d3e4151b7271d3b) commit 7483d7837980a051485101633ea618dfc4ab6d0d Author: Günther Deschner <g...@samba.org> Date: Tue Jan 18 22:10:30 2011 +0100 s3-rpcclient: prefer dcerpc_spoolss_X functions. Guenther (cherry picked from commit cf7a78b64f83be4c2ccc0b1fd2b074954179bcb1) commit 215a3f774c978361c56688cb18c25a245e02843e Author: Günther Deschner <g...@samba.org> Date: Tue Jan 18 18:37:52 2011 +0100 s3-rpc_client: prefer dcerpc_spoolss_X functions. Guenther (cherry picked from commit e94ffc790e7206f76d9ea43d0620511143547457) commit 038f101a26e69939ae39ebb3fe36489571d6889b Author: Günther Deschner <g...@samba.org> Date: Wed Jan 19 00:43:33 2011 +0100 s3-lanman: remove trailing whitespace. Guenther (cherry picked from commit 831f3eec16623e8c96aa58a4e03db5f0fcda8b5c) ----------------------------------------------------------------------- Summary of changes: source3/Makefile.in | 3 +- source3/rpc_client/cli_spoolss.c | 186 ++++++++++++++++++++----- source3/rpcclient/cmd_spoolss.c | 279 ++++++++++++++++++++++++++++---------- source3/smbd/lanman.c | 60 ++++---- source3/wscript_build | 6 +- 5 files changed, 386 insertions(+), 148 deletions(-) Changeset truncated at 500 lines: diff --git a/source3/Makefile.in b/source3/Makefile.in index 1ebc579..d92224e 100644 --- a/source3/Makefile.in +++ b/source3/Makefile.in @@ -342,8 +342,7 @@ LIBNDR_PREG_OBJ = librpc/gen_ndr/ndr_preg.o \ LIBNDR_XATTR_OBJ = librpc/gen_ndr/ndr_xattr.o \ ../librpc/ndr/ndr_xattr.o -LIBCLI_SPOOLSS_OBJ = librpc/gen_ndr/cli_spoolss.o \ - librpc/gen_ndr/ndr_spoolss_c.o \ +LIBCLI_SPOOLSS_OBJ = librpc/gen_ndr/ndr_spoolss_c.o \ rpc_client/cli_spoolss.o \ rpc_client/init_spoolss.o diff --git a/source3/rpc_client/cli_spoolss.c b/source3/rpc_client/cli_spoolss.c index ce21a76..fc154a3 100644 --- a/source3/rpc_client/cli_spoolss.c +++ b/source3/rpc_client/cli_spoolss.c @@ -23,7 +23,7 @@ */ #include "includes.h" -#include "../librpc/gen_ndr/cli_spoolss.h" +#include "../librpc/gen_ndr/ndr_spoolss_c.h" #include "rpc_client/cli_spoolss.h" /********************************************************************** @@ -41,6 +41,7 @@ WERROR rpccli_spoolss_openprinter_ex(struct rpc_pipe_client *cli, struct spoolss_DevmodeContainer devmode_ctr; union spoolss_UserLevel userlevel; struct spoolss_UserLevel1 level1; + struct dcerpc_binding_handle *b = cli->binding_handle; ZERO_STRUCT(devmode_ctr); @@ -55,7 +56,7 @@ WERROR rpccli_spoolss_openprinter_ex(struct rpc_pipe_client *cli, userlevel.level1 = &level1; - status = rpccli_spoolss_OpenPrinterEx(cli, mem_ctx, + status = dcerpc_spoolss_OpenPrinterEx(b, mem_ctx, printername, NULL, devmode_ctr, @@ -65,14 +66,14 @@ WERROR rpccli_spoolss_openprinter_ex(struct rpc_pipe_client *cli, handle, &werror); - if (!W_ERROR_IS_OK(werror)) { - return werror; - } - if (!NT_STATUS_IS_OK(status)) { return ntstatus_to_werror(status); } + if (!W_ERROR_IS_OK(werror)) { + return werror; + } + return WERR_OK; } @@ -92,13 +93,14 @@ WERROR rpccli_spoolss_getprinterdriver(struct rpc_pipe_client *cli, WERROR werror; uint32_t needed; DATA_BLOB buffer; + struct dcerpc_binding_handle *b = cli->binding_handle; if (offered > 0) { buffer = data_blob_talloc_zero(mem_ctx, offered); W_ERROR_HAVE_NO_MEMORY(buffer.data); } - status = rpccli_spoolss_GetPrinterDriver(cli, mem_ctx, + status = dcerpc_spoolss_GetPrinterDriver(b, mem_ctx, handle, architecture, level, @@ -107,12 +109,15 @@ WERROR rpccli_spoolss_getprinterdriver(struct rpc_pipe_client *cli, info, &needed, &werror); + if (!NT_STATUS_IS_OK(status)) { + return ntstatus_to_werror(status); + } if (W_ERROR_EQUAL(werror, WERR_INSUFFICIENT_BUFFER)) { offered = needed; buffer = data_blob_talloc_zero(mem_ctx, needed); W_ERROR_HAVE_NO_MEMORY(buffer.data); - status = rpccli_spoolss_GetPrinterDriver(cli, mem_ctx, + status = dcerpc_spoolss_GetPrinterDriver(b, mem_ctx, handle, architecture, level, @@ -122,6 +127,9 @@ WERROR rpccli_spoolss_getprinterdriver(struct rpc_pipe_client *cli, &needed, &werror); } + if (!NT_STATUS_IS_OK(status)) { + return ntstatus_to_werror(status); + } return werror; } @@ -146,13 +154,14 @@ WERROR rpccli_spoolss_getprinterdriver2(struct rpc_pipe_client *cli, WERROR werror; uint32_t needed; DATA_BLOB buffer; + struct dcerpc_binding_handle *b = cli->binding_handle; if (offered > 0) { buffer = data_blob_talloc_zero(mem_ctx, offered); W_ERROR_HAVE_NO_MEMORY(buffer.data); } - status = rpccli_spoolss_GetPrinterDriver2(cli, mem_ctx, + status = dcerpc_spoolss_GetPrinterDriver2(b, mem_ctx, handle, architecture, level, @@ -165,12 +174,16 @@ WERROR rpccli_spoolss_getprinterdriver2(struct rpc_pipe_client *cli, server_major_version, server_minor_version, &werror); + if (!NT_STATUS_IS_OK(status)) { + return ntstatus_to_werror(status); + } + if (W_ERROR_EQUAL(werror, WERR_INSUFFICIENT_BUFFER)) { offered = needed; buffer = data_blob_talloc_zero(mem_ctx, needed); W_ERROR_HAVE_NO_MEMORY(buffer.data); - status = rpccli_spoolss_GetPrinterDriver2(cli, mem_ctx, + status = dcerpc_spoolss_GetPrinterDriver2(b, mem_ctx, handle, architecture, level, @@ -184,6 +197,9 @@ WERROR rpccli_spoolss_getprinterdriver2(struct rpc_pipe_client *cli, server_minor_version, &werror); } + if (!NT_STATUS_IS_OK(status)) { + return ntstatus_to_werror(status); + } return werror; } @@ -203,6 +219,7 @@ WERROR rpccli_spoolss_addprinterex(struct rpc_pipe_client *cli, struct spoolss_UserLevelCtr userlevel_ctr; struct spoolss_UserLevel1 level1; struct policy_handle handle; + struct dcerpc_binding_handle *b = cli->binding_handle; ZERO_STRUCT(devmode_ctr); ZERO_STRUCT(secdesc_ctr); @@ -219,7 +236,7 @@ WERROR rpccli_spoolss_addprinterex(struct rpc_pipe_client *cli, userlevel_ctr.level = 1; userlevel_ctr.user_info.level1 = &level1; - status = rpccli_spoolss_AddPrinterEx(cli, mem_ctx, + status = dcerpc_spoolss_AddPrinterEx(b, mem_ctx, cli->srv_name_slash, info_ctr, &devmode_ctr, @@ -227,6 +244,10 @@ WERROR rpccli_spoolss_addprinterex(struct rpc_pipe_client *cli, &userlevel_ctr, &handle, &result); + if (!NT_STATUS_IS_OK(status)) { + return ntstatus_to_werror(status); + } + return result; } @@ -245,13 +266,14 @@ WERROR rpccli_spoolss_getprinter(struct rpc_pipe_client *cli, WERROR werror; DATA_BLOB buffer; uint32_t needed; + struct dcerpc_binding_handle *b = cli->binding_handle; if (offered > 0) { buffer = data_blob_talloc_zero(mem_ctx, offered); W_ERROR_HAVE_NO_MEMORY(buffer.data); } - status = rpccli_spoolss_GetPrinter(cli, mem_ctx, + status = dcerpc_spoolss_GetPrinter(b, mem_ctx, handle, level, (offered > 0) ? &buffer : NULL, @@ -259,6 +281,9 @@ WERROR rpccli_spoolss_getprinter(struct rpc_pipe_client *cli, info, &needed, &werror); + if (!NT_STATUS_IS_OK(status)) { + return ntstatus_to_werror(status); + } if (W_ERROR_EQUAL(werror, WERR_INSUFFICIENT_BUFFER)) { @@ -266,7 +291,7 @@ WERROR rpccli_spoolss_getprinter(struct rpc_pipe_client *cli, buffer = data_blob_talloc_zero(mem_ctx, offered); W_ERROR_HAVE_NO_MEMORY(buffer.data); - status = rpccli_spoolss_GetPrinter(cli, mem_ctx, + status = dcerpc_spoolss_GetPrinter(b, mem_ctx, handle, level, &buffer, @@ -275,6 +300,9 @@ WERROR rpccli_spoolss_getprinter(struct rpc_pipe_client *cli, &needed, &werror); } + if (!NT_STATUS_IS_OK(status)) { + return ntstatus_to_werror(status); + } return werror; } @@ -295,13 +323,14 @@ WERROR rpccli_spoolss_getjob(struct rpc_pipe_client *cli, WERROR werror; uint32_t needed; DATA_BLOB buffer; + struct dcerpc_binding_handle *b = cli->binding_handle; if (offered > 0) { buffer = data_blob_talloc_zero(mem_ctx, offered); W_ERROR_HAVE_NO_MEMORY(buffer.data); } - status = rpccli_spoolss_GetJob(cli, mem_ctx, + status = dcerpc_spoolss_GetJob(b, mem_ctx, handle, job_id, level, @@ -310,13 +339,16 @@ WERROR rpccli_spoolss_getjob(struct rpc_pipe_client *cli, info, &needed, &werror); + if (!NT_STATUS_IS_OK(status)) { + return ntstatus_to_werror(status); + } if (W_ERROR_EQUAL(werror, WERR_INSUFFICIENT_BUFFER)) { offered = needed; buffer = data_blob_talloc_zero(mem_ctx, needed); W_ERROR_HAVE_NO_MEMORY(buffer.data); - status = rpccli_spoolss_GetJob(cli, mem_ctx, + status = dcerpc_spoolss_GetJob(b, mem_ctx, handle, job_id, level, @@ -326,6 +358,9 @@ WERROR rpccli_spoolss_getjob(struct rpc_pipe_client *cli, &needed, &werror); } + if (!NT_STATUS_IS_OK(status)) { + return ntstatus_to_werror(status); + } return werror; } @@ -346,13 +381,14 @@ WERROR rpccli_spoolss_enumforms(struct rpc_pipe_client *cli, WERROR werror; uint32_t needed; DATA_BLOB buffer; + struct dcerpc_binding_handle *b = cli->binding_handle; if (offered > 0) { buffer = data_blob_talloc_zero(mem_ctx, offered); W_ERROR_HAVE_NO_MEMORY(buffer.data); } - status = rpccli_spoolss_EnumForms(cli, mem_ctx, + status = dcerpc_spoolss_EnumForms(b, mem_ctx, handle, level, (offered > 0) ? &buffer : NULL, @@ -361,13 +397,16 @@ WERROR rpccli_spoolss_enumforms(struct rpc_pipe_client *cli, info, &needed, &werror); + if (!NT_STATUS_IS_OK(status)) { + return ntstatus_to_werror(status); + } if (W_ERROR_EQUAL(werror, WERR_INSUFFICIENT_BUFFER)) { offered = needed; buffer = data_blob_talloc_zero(mem_ctx, needed); W_ERROR_HAVE_NO_MEMORY(buffer.data); - status = rpccli_spoolss_EnumForms(cli, mem_ctx, + status = dcerpc_spoolss_EnumForms(b, mem_ctx, handle, level, (offered > 0) ? &buffer : NULL, @@ -377,6 +416,9 @@ WERROR rpccli_spoolss_enumforms(struct rpc_pipe_client *cli, &needed, &werror); } + if (!NT_STATUS_IS_OK(status)) { + return ntstatus_to_werror(status); + } return werror; } @@ -398,13 +440,14 @@ WERROR rpccli_spoolss_enumprintprocessors(struct rpc_pipe_client *cli, WERROR werror; uint32_t needed; DATA_BLOB buffer; + struct dcerpc_binding_handle *b = cli->binding_handle; if (offered > 0) { buffer = data_blob_talloc_zero(mem_ctx, offered); W_ERROR_HAVE_NO_MEMORY(buffer.data); } - status = rpccli_spoolss_EnumPrintProcessors(cli, mem_ctx, + status = dcerpc_spoolss_EnumPrintProcessors(b, mem_ctx, servername, environment, level, @@ -414,13 +457,16 @@ WERROR rpccli_spoolss_enumprintprocessors(struct rpc_pipe_client *cli, info, &needed, &werror); + if (!NT_STATUS_IS_OK(status)) { + return ntstatus_to_werror(status); + } if (W_ERROR_EQUAL(werror, WERR_INSUFFICIENT_BUFFER)) { offered = needed; buffer = data_blob_talloc_zero(mem_ctx, needed); W_ERROR_HAVE_NO_MEMORY(buffer.data); - status = rpccli_spoolss_EnumPrintProcessors(cli, mem_ctx, + status = dcerpc_spoolss_EnumPrintProcessors(b, mem_ctx, servername, environment, level, @@ -431,6 +477,9 @@ WERROR rpccli_spoolss_enumprintprocessors(struct rpc_pipe_client *cli, &needed, &werror); } + if (!NT_STATUS_IS_OK(status)) { + return ntstatus_to_werror(status); + } return werror; } @@ -452,13 +501,14 @@ WERROR rpccli_spoolss_enumprintprocessordatatypes(struct rpc_pipe_client *cli, WERROR werror; uint32_t needed; DATA_BLOB buffer; + struct dcerpc_binding_handle *b = cli->binding_handle; if (offered > 0) { buffer = data_blob_talloc_zero(mem_ctx, offered); W_ERROR_HAVE_NO_MEMORY(buffer.data); } - status = rpccli_spoolss_EnumPrintProcDataTypes(cli, mem_ctx, + status = dcerpc_spoolss_EnumPrintProcDataTypes(b, mem_ctx, servername, print_processor_name, level, @@ -468,13 +518,16 @@ WERROR rpccli_spoolss_enumprintprocessordatatypes(struct rpc_pipe_client *cli, info, &needed, &werror); + if (!NT_STATUS_IS_OK(status)) { + return ntstatus_to_werror(status); + } if (W_ERROR_EQUAL(werror, WERR_INSUFFICIENT_BUFFER)) { offered = needed; buffer = data_blob_talloc_zero(mem_ctx, needed); W_ERROR_HAVE_NO_MEMORY(buffer.data); - status = rpccli_spoolss_EnumPrintProcDataTypes(cli, mem_ctx, + status = dcerpc_spoolss_EnumPrintProcDataTypes(b, mem_ctx, servername, print_processor_name, level, @@ -485,6 +538,9 @@ WERROR rpccli_spoolss_enumprintprocessordatatypes(struct rpc_pipe_client *cli, &needed, &werror); } + if (!NT_STATUS_IS_OK(status)) { + return ntstatus_to_werror(status); + } return werror; } @@ -505,13 +561,14 @@ WERROR rpccli_spoolss_enumports(struct rpc_pipe_client *cli, WERROR werror; uint32_t needed; DATA_BLOB buffer; + struct dcerpc_binding_handle *b = cli->binding_handle; if (offered > 0) { buffer = data_blob_talloc_zero(mem_ctx, offered); W_ERROR_HAVE_NO_MEMORY(buffer.data); } - status = rpccli_spoolss_EnumPorts(cli, mem_ctx, + status = dcerpc_spoolss_EnumPorts(b, mem_ctx, servername, level, (offered > 0) ? &buffer : NULL, @@ -520,13 +577,16 @@ WERROR rpccli_spoolss_enumports(struct rpc_pipe_client *cli, info, &needed, &werror); + if (!NT_STATUS_IS_OK(status)) { + return ntstatus_to_werror(status); + } if (W_ERROR_EQUAL(werror, WERR_INSUFFICIENT_BUFFER)) { offered = needed; buffer = data_blob_talloc_zero(mem_ctx, needed); W_ERROR_HAVE_NO_MEMORY(buffer.data); - status = rpccli_spoolss_EnumPorts(cli, mem_ctx, + status = dcerpc_spoolss_EnumPorts(b, mem_ctx, servername, level, (offered > 0) ? &buffer : NULL, @@ -536,6 +596,9 @@ WERROR rpccli_spoolss_enumports(struct rpc_pipe_client *cli, &needed, &werror); } + if (!NT_STATUS_IS_OK(status)) { + return ntstatus_to_werror(status); + } return werror; } @@ -556,13 +619,14 @@ WERROR rpccli_spoolss_enummonitors(struct rpc_pipe_client *cli, WERROR werror; uint32_t needed; DATA_BLOB buffer; + struct dcerpc_binding_handle *b = cli->binding_handle; if (offered > 0) { buffer = data_blob_talloc_zero(mem_ctx, offered); W_ERROR_HAVE_NO_MEMORY(buffer.data); } - status = rpccli_spoolss_EnumMonitors(cli, mem_ctx, + status = dcerpc_spoolss_EnumMonitors(b, mem_ctx, servername, level, (offered > 0) ? &buffer : NULL, @@ -571,13 +635,16 @@ WERROR rpccli_spoolss_enummonitors(struct rpc_pipe_client *cli, info, &needed, &werror); + if (!NT_STATUS_IS_OK(status)) { + return ntstatus_to_werror(status); + } if (W_ERROR_EQUAL(werror, WERR_INSUFFICIENT_BUFFER)) { offered = needed; buffer = data_blob_talloc_zero(mem_ctx, needed); W_ERROR_HAVE_NO_MEMORY(buffer.data); - status = rpccli_spoolss_EnumMonitors(cli, mem_ctx, + status = dcerpc_spoolss_EnumMonitors(b, mem_ctx, servername, level, (offered > 0) ? &buffer : NULL, @@ -587,6 +654,9 @@ WERROR rpccli_spoolss_enummonitors(struct rpc_pipe_client *cli, &needed, &werror); } + if (!NT_STATUS_IS_OK(status)) { + return ntstatus_to_werror(status); + } return werror; } @@ -609,13 +679,14 @@ WERROR rpccli_spoolss_enumjobs(struct rpc_pipe_client *cli, WERROR werror; uint32_t needed; DATA_BLOB buffer; + struct dcerpc_binding_handle *b = cli->binding_handle; if (offered > 0) { buffer = data_blob_talloc_zero(mem_ctx, offered); W_ERROR_HAVE_NO_MEMORY(buffer.data); } - status = rpccli_spoolss_EnumJobs(cli, mem_ctx, + status = dcerpc_spoolss_EnumJobs(b, mem_ctx, -- Samba Shared Repository