[SCM] Samba Shared Repository - branch master updated -
release-4-0-0alpha6-797-g2a311b1
Günther Deschner
gd at samba.org
Wed Feb 11 21:42:42 GMT 2009
The branch, master has been updated
via 2a311b1ea7ef2de6adb1567c9afc8127ed8e3978 (commit)
via e1a6717110947ba01baa9373f3e9b2d6ea375457 (commit)
via 75306f56c2fc3ed3d3c3c1fdc039c94cd71d6c5a (commit)
via dba8bb34f9fd94162086cf95a5f4b1dfff2ddef1 (commit)
from a77605ae83e4234e89cfd4cdff696034e3b981f2 (commit)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 2a311b1ea7ef2de6adb1567c9afc8127ed8e3978
Author: Günther Deschner <gd at samba.org>
Date: Wed Feb 11 15:26:00 2009 +0100
s3-spoolss: use SPOOLSS_PRINTER_CONTROL flags defined in IDL.
Guenther
commit e1a6717110947ba01baa9373f3e9b2d6ea375457
Author: Günther Deschner <gd at samba.org>
Date: Wed Feb 11 13:08:44 2009 +0100
s3: remove old copy of SPOOLSS_ADDPRINTERDRIVEREX flags.
Guenther
commit 75306f56c2fc3ed3d3c3c1fdc039c94cd71d6c5a
Author: Günther Deschner <gd at samba.org>
Date: Wed Feb 11 13:08:11 2009 +0100
s3: re-run make samba3-idl.
Guenther
commit dba8bb34f9fd94162086cf95a5f4b1dfff2ddef1
Author: Günther Deschner <gd at samba.org>
Date: Wed Feb 11 13:07:45 2009 +0100
spoolss: add spoolss_AddPrinterDriverExFlags.
Guenther
-----------------------------------------------------------------------
Summary of changes:
librpc/gen_ndr/ndr_spoolss.c | 35 ++++++++++++++++++++++++++++++++---
librpc/gen_ndr/ndr_spoolss.h | 1 +
librpc/gen_ndr/spoolss.h | 10 ++++++++++
librpc/idl/spoolss.idl | 14 +++++++++++++-
source3/include/rpc_spoolss.h | 13 -------------
source3/rpc_server/srv_spoolss_nt.c | 8 ++++----
6 files changed, 60 insertions(+), 21 deletions(-)
Changeset truncated at 500 lines:
diff --git a/librpc/gen_ndr/ndr_spoolss.c b/librpc/gen_ndr/ndr_spoolss.c
index 2add938..47b61e5 100644
--- a/librpc/gen_ndr/ndr_spoolss.c
+++ b/librpc/gen_ndr/ndr_spoolss.c
@@ -10828,6 +10828,35 @@ _PUBLIC_ void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print *ndr, const c
ndr->depth--;
}
+static enum ndr_err_code ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
+{
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
+ return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
+{
+ uint32_t v;
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
+ *r = v;
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print *ndr, const char *name, uint32_t r)
+{
+ ndr_print_uint32(ndr, name, r);
+ ndr->depth++;
+ ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE, r);
+ ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE, r);
+ ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES, r);
+ ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES, r);
+ ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY, r);
+ ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER, r);
+ ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS, r);
+ ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE, r);
+ ndr->depth--;
+}
+
_PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinters *r)
{
if (flags & NDR_IN) {
@@ -18580,7 +18609,7 @@ _PUBLIC_ enum ndr_err_code ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push *
NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
- NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
+ NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, r->in.flags));
}
if (flags & NDR_OUT) {
NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
@@ -18601,7 +18630,7 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull *
NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
- NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
+ NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, &r->in.flags));
}
if (flags & NDR_OUT) {
NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
@@ -18626,7 +18655,7 @@ _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print *ndr, const
ndr_print_uint32(ndr, "level", r->in.level);
ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
ndr_print_spoolss_AddDriverInfo(ndr, "info", &r->in.info);
- ndr_print_uint32(ndr, "flags", r->in.flags);
+ ndr_print_spoolss_AddPrinterDriverExFlags(ndr, "flags", r->in.flags);
ndr->depth--;
}
if (flags & NDR_OUT) {
diff --git a/librpc/gen_ndr/ndr_spoolss.h b/librpc/gen_ndr/ndr_spoolss.h
index 60ee538..609c3bf 100644
--- a/librpc/gen_ndr/ndr_spoolss.h
+++ b/librpc/gen_ndr/ndr_spoolss.h
@@ -320,6 +320,7 @@ void ndr_print_spoolss_UserLevel(struct ndr_print *ndr, const char *name, const
enum ndr_err_code ndr_push_spoolss_DeleteDriverFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r);
enum ndr_err_code ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r);
void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print *ndr, const char *name, uint32_t r);
+void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print *ndr, const char *name, uint32_t r);
enum ndr_err_code ndr_push__spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinters *r);
enum ndr_err_code ndr_pull__spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinters *r);
void ndr_print__spoolss_EnumPrinters(struct ndr_print *ndr, const char *name, int flags, const struct _spoolss_EnumPrinters *r);
diff --git a/librpc/gen_ndr/spoolss.h b/librpc/gen_ndr/spoolss.h
index 61a2367..ce5d6d9 100644
--- a/librpc/gen_ndr/spoolss.h
+++ b/librpc/gen_ndr/spoolss.h
@@ -903,6 +903,16 @@ union spoolss_UserLevel {
#define DPD_DELETE_SPECIFIC_VERSION ( 0x00000002 )
#define DPD_DELETE_ALL_FILES ( 0x00000004 )
+/* bitmap spoolss_AddPrinterDriverExFlags */
+#define APD_STRICT_UPGRADE ( 0x00000001 )
+#define APD_STRICT_DOWNGRADE ( 0x00000002 )
+#define APD_COPY_ALL_FILES ( 0x00000004 )
+#define APD_COPY_NEW_FILES ( 0x00000008 )
+#define APD_COPY_FROM_DIRECTORY ( 0x00000010 )
+#define APD_DONT_COPY_FILES_TO_CLUSTER ( 0x00001000 )
+#define APD_COPY_TO_ALL_SPOOLERS ( 0x00002000 )
+#define APD_RETURN_BLOCKING_STATUS_CODE ( 0x00010000 )
+
struct _spoolss_EnumPrinters {
struct {
diff --git a/librpc/idl/spoolss.idl b/librpc/idl/spoolss.idl
index af3312a..0a7d46d 100644
--- a/librpc/idl/spoolss.idl
+++ b/librpc/idl/spoolss.idl
@@ -1751,11 +1751,23 @@ import "misc.idl", "security.idl", "winreg.idl";
/******************/
/* Function: 0x59 */
+
+ typedef [bitmap32bit] bitmap {
+ APD_STRICT_UPGRADE = 0x00000001,
+ APD_STRICT_DOWNGRADE = 0x00000002,
+ APD_COPY_ALL_FILES = 0x00000004,
+ APD_COPY_NEW_FILES = 0x00000008,
+ APD_COPY_FROM_DIRECTORY = 0x00000010,
+ APD_DONT_COPY_FILES_TO_CLUSTER = 0x00001000,
+ APD_COPY_TO_ALL_SPOOLERS = 0x00002000,
+ APD_RETURN_BLOCKING_STATUS_CODE = 0x00010000
+ } spoolss_AddPrinterDriverExFlags;
+
[public] WERROR spoolss_AddPrinterDriverEx(
[in] [string,charset(UTF16)] uint16 *servername,
[in] uint32 level,
[in,switch_is(level)] spoolss_AddDriverInfo info,
- [in] uint32 flags
+ [in] spoolss_AddPrinterDriverExFlags flags
);
/******************/
diff --git a/source3/include/rpc_spoolss.h b/source3/include/rpc_spoolss.h
index ac306e6..76f72f0 100644
--- a/source3/include/rpc_spoolss.h
+++ b/source3/include/rpc_spoolss.h
@@ -122,12 +122,6 @@
#define SPL_XCV_MONITOR_TCPMON ",XcvMonitor Standard TCP/IP Port"
-#define PRINTER_CONTROL_UNPAUSE 0x00000000
-#define PRINTER_CONTROL_PAUSE 0x00000001
-#define PRINTER_CONTROL_RESUME 0x00000002
-#define PRINTER_CONTROL_PURGE 0x00000003
-#define PRINTER_CONTROL_SET_STATUS 0x00000004
-
#define PRINTER_STATUS_OK 0x00000000
#define JOB_ACCESS_READ 0x00000020
@@ -270,13 +264,6 @@ PRINTER_MESSAGE_INFO;
#define DRIVER_ANY_VERSION 0xffffffff
#define DRIVER_MAX_VERSION 4
-/* FLAGS for SPOOLSS_ADDPRINTERDRIVEREX */
-
-#define APD_STRICT_UPGRADE 0x00000001
-#define APD_STRICT_DOWNGRADE 0x00000002
-#define APD_COPY_ALL_FILES 0x00000004
-#define APD_COPY_NEW_FILES 0x00000008
-
/* this struct is undocumented */
/* thanks to the ddk ... */
diff --git a/source3/rpc_server/srv_spoolss_nt.c b/source3/rpc_server/srv_spoolss_nt.c
index 204078d..5c4ff61 100644
--- a/source3/rpc_server/srv_spoolss_nt.c
+++ b/source3/rpc_server/srv_spoolss_nt.c
@@ -5925,18 +5925,18 @@ static WERROR control_printer(POLICY_HND *handle, uint32 command,
return WERR_BADFID;
switch (command) {
- case PRINTER_CONTROL_PAUSE:
+ case SPOOLSS_PRINTER_CONTROL_PAUSE:
if (print_queue_pause(p->server_info, snum, &errcode)) {
errcode = WERR_OK;
}
break;
- case PRINTER_CONTROL_RESUME:
- case PRINTER_CONTROL_UNPAUSE:
+ case SPOOLSS_PRINTER_CONTROL_RESUME:
+ case SPOOLSS_PRINTER_CONTROL_UNPAUSE:
if (print_queue_resume(p->server_info, snum, &errcode)) {
errcode = WERR_OK;
}
break;
- case PRINTER_CONTROL_PURGE:
+ case SPOOLSS_PRINTER_CONTROL_PURGE:
if (print_queue_purge(p->server_info, snum, &errcode)) {
errcode = WERR_OK;
}
--
Samba Shared Repository
More information about the samba-cvs
mailing list