[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha7-481-g77d2cd1

Günther Deschner gd at samba.org
Tue Mar 17 18:11:18 GMT 2009


The branch, master has been updated
       via  77d2cd1ff7dab3a7a76449bfb3fe1d6e80df292b (commit)
       via  b57d5eaac03b38a605fb8853dbb18c208461b0bb (commit)
       via  fac7208273a24fa35d3274df28aea3bb87374861 (commit)
       via  7f90a89d609c48b7fe33e29c98ca903896083889 (commit)
       via  479d91ae9f0868f02dd70b80e3033eb9ff166541 (commit)
       via  9b5666aa70fda80220347a7a1a6a07e4c1d121a8 (commit)
       via  f32cf73019bb45b30f3fb0151dad3e65d7694d46 (commit)
       via  289cfb269b486a0a2f8376ead77fd64ad7c012d4 (commit)
       via  a264bc68f0e44fb561fe61613b5cf3c7b5e8385f (commit)
       via  f94a6f4801e5b2b83e5f4888aba21f3647e23f9a (commit)
       via  4cb3cbea84c6cf30b123eb5070905eeed5aba4d7 (commit)
       via  f19faa0e768f477c26b92f87905cfdb7245dbaa1 (commit)
       via  5778a36357f1560b9a8e5828cf789be4357ceb0c (commit)
       via  1e7f602f8c1c19761758eee4e3287d711ff6cf92 (commit)
       via  6549408a4ddb97d109eccb3f8b8bac456b4c4bc8 (commit)
       via  827ba0a64b33ca9caf7673f195cf17c1d5b84b66 (commit)
       via  96998f03584608e3cb30a61120d497b45d0af001 (commit)
       via  d759f9961a30c5dc9920f620b783ffa58daf9b03 (commit)
       via  47c024fd7516aa940b6b04f903cedff677e5543e (commit)
       via  28d16866ee639f828ea644753f29a678605883a5 (commit)
       via  2d318490ea524ced22e8c256d4343755edc58a82 (commit)
      from  b693f7f067d378858affe0b7ffa6ca8a6d2b82ee (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 77d2cd1ff7dab3a7a76449bfb3fe1d6e80df292b
Author: Günther Deschner <gd at samba.org>
Date:   Tue Mar 17 18:36:43 2009 +0100

    s3-spoolss: remove unused RPC_BUFFER definition.
    
    Guenther

commit b57d5eaac03b38a605fb8853dbb18c208461b0bb
Author: Günther Deschner <gd at samba.org>
Date:   Tue Mar 17 18:34:45 2009 +0100

    s3-spoolss: remove (disabled) enum_all_printers_info_1_remote.
    
    Jerry, please check. I do not understand how this could work and in
    it's current form, we cannot make this even compile anymore, I'm afraid :)
    I think it is safe to remove.
    
    Guenther

commit fac7208273a24fa35d3274df28aea3bb87374861
Author: Günther Deschner <gd at samba.org>
Date:   Tue Mar 17 18:03:36 2009 +0100

    s4-smbtorture: fix spoolss notify test for notify type changes.
    
    Guenther

commit 7f90a89d609c48b7fe33e29c98ca903896083889
Author: Günther Deschner <gd at samba.org>
Date:   Tue Mar 17 18:03:10 2009 +0100

    s3-spoolss: remove PRINTER_NOTIFY_TYPE and JOB_NOTIFY_TYPE now defined in IDL.
    
    Guenther

commit 479d91ae9f0868f02dd70b80e3033eb9ff166541
Author: Günther Deschner <gd at samba.org>
Date:   Tue Mar 17 17:31:18 2009 +0100

    s3-spoolss: remove SPL Port definitions now in IDL.
    
    Guenther

commit 9b5666aa70fda80220347a7a1a6a07e4c1d121a8
Author: Günther Deschner <gd at samba.org>
Date:   Tue Mar 17 17:25:07 2009 +0100

    s3-spoolss: remove PRIORITY defines, that were never used.
    
    Guenther

commit f32cf73019bb45b30f3fb0151dad3e65d7694d46
Author: Günther Deschner <gd at samba.org>
Date:   Tue Mar 17 17:24:47 2009 +0100

    s3: re-run make samba3-idl.
    
    Guenther

commit 289cfb269b486a0a2f8376ead77fd64ad7c012d4
Author: Günther Deschner <gd at samba.org>
Date:   Tue Mar 17 18:01:11 2009 +0100

    spoolss: use PRINTER_NOTIFY_TYPE and JOB_NOTIFY_TYPE in favor of "old" s4 defines.
    
    Guenther

commit a264bc68f0e44fb561fe61613b5cf3c7b5e8385f
Author: Günther Deschner <gd at samba.org>
Date:   Tue Mar 17 17:30:07 2009 +0100

    spoolss: add SPL Port definitions to IDL.
    
    Guenther

commit f94a6f4801e5b2b83e5f4888aba21f3647e23f9a
Author: Günther Deschner <gd at samba.org>
Date:   Tue Mar 17 17:24:01 2009 +0100

    spoolss: add range checks for priority element in spoolss_JobInfo structs.
    
    Guenther

commit 4cb3cbea84c6cf30b123eb5070905eeed5aba4d7
Author: Günther Deschner <gd at samba.org>
Date:   Tue Mar 17 17:17:18 2009 +0100

    s3-spoolss: move DRIVER_X_VERSION flags into the backend, where they belong to.
    
    Guenther

commit f19faa0e768f477c26b92f87905cfdb7245dbaa1
Author: Günther Deschner <gd at samba.org>
Date:   Tue Mar 17 16:41:16 2009 +0100

    s3-spoolss: remove unused DEVICEMODE parsing and header.
    
    Guenther

commit 5778a36357f1560b9a8e5828cf789be4357ceb0c
Author: Günther Deschner <gd at samba.org>
Date:   Tue Mar 17 15:26:38 2009 +0100

    s3-spoolss: rename convert_printer_info_new to convert_printer_info.
    
    Guenther

commit 1e7f602f8c1c19761758eee4e3287d711ff6cf92
Author: Günther Deschner <gd at samba.org>
Date:   Tue Mar 17 15:25:07 2009 +0100

    s3-spoolss: rename convert_nt_devicemode_new to convert_nt_devicemode.
    
    Guenther

commit 6549408a4ddb97d109eccb3f8b8bac456b4c4bc8
Author: Günther Deschner <gd at samba.org>
Date:   Tue Mar 17 15:23:30 2009 +0100

    s3-spoolss: rename construct_dev_mode_new to construct_dev_mode.
    
    Guenther

commit 827ba0a64b33ca9caf7673f195cf17c1d5b84b66
Author: Günther Deschner <gd at samba.org>
Date:   Tue Mar 17 15:22:22 2009 +0100

    s3-spoolss/registry: use libndr to push a spoolss_DeviceMode in fill_in_printer_values().
    
    Guenther

commit 96998f03584608e3cb30a61120d497b45d0af001
Author: Günther Deschner <gd at samba.org>
Date:   Tue Mar 17 15:21:06 2009 +0100

    s3-spoolss/registry: use marshall_sec_desc in fill_in_printer_values().
    
    Guenther

commit d759f9961a30c5dc9920f620b783ffa58daf9b03
Author: Günther Deschner <gd at samba.org>
Date:   Tue Mar 17 14:45:24 2009 +0100

    s3-spoolss: move SYSTEMTIME parsing to a more generic place, as suggested.
    
    Guenther

commit 47c024fd7516aa940b6b04f903cedff677e5543e
Author: Günther Deschner <gd at samba.org>
Date:   Tue Mar 17 14:43:50 2009 +0100

    s3-spoolss: rename temporary convert_devicemode_new function.
    
    Guenther

commit 28d16866ee639f828ea644753f29a678605883a5
Author: Günther Deschner <gd at samba.org>
Date:   Tue Mar 17 12:48:46 2009 +0100

    s3-spoolss: move PRINTER_ATTRIBUTE_SAMBA to printing backend, where they belong.
    
    Guenther

commit 2d318490ea524ced22e8c256d4343755edc58a82
Author: Günther Deschner <gd at samba.org>
Date:   Tue Mar 17 12:48:10 2009 +0100

    s3-spoolss: remove PRINTER_MESSAGE flags and struct, this was never used.
    
    Guenther

-----------------------------------------------------------------------

Summary of changes:
 librpc/gen_ndr/ndr_spoolss.c            |   28 +++-
 librpc/gen_ndr/spoolss.h                |   28 ++--
 librpc/idl/spoolss.idl                  |   30 ++-
 source3/include/nt_printing.h           |   16 ++
 source3/include/ntdomain.h              |    7 -
 source3/include/proto.h                 |   15 +-
 source3/include/rpc_misc.h              |   19 ++
 source3/include/rpc_spoolss.h           |  130 -------------
 source3/printing/nt_printing.c          |   25 ++--
 source3/registry/reg_backend_printing.c |   56 +++---
 source3/registry/reg_perfcount.c        |    2 +-
 source3/rpc_parse/parse_misc.c          |   42 ++++
 source3/rpc_parse/parse_spoolss.c       |  232 -----------------------
 source3/rpc_server/srv_spoolss_nt.c     |  315 ++++---------------------------
 source4/torture/rpc/spoolss_notify.c    |    4 +-
 15 files changed, 225 insertions(+), 724 deletions(-)


Changeset truncated at 500 lines:

diff --git a/librpc/gen_ndr/ndr_spoolss.c b/librpc/gen_ndr/ndr_spoolss.c
index b14a1da..b95f4c2 100644
--- a/librpc/gen_ndr/ndr_spoolss.c
+++ b/librpc/gen_ndr/ndr_spoolss.c
@@ -1366,6 +1366,9 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, i
 		}
 		NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
 		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
+		if (r->priority > 99) {
+			return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
+		}
 		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
 		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
 		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
@@ -2797,6 +2800,9 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo1(struct ndr_pull *ndr, int n
 		}
 		NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
 		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
+		if (r->priority > 99) {
+			return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
+		}
 		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
 		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
 		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
@@ -3298,6 +3304,9 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo2(struct ndr_pull *ndr, int n
 		}
 		NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
 		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
+		if (r->priority > 99) {
+			return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
+		}
 		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
 		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
 		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
@@ -3965,6 +3974,9 @@ _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo4(struct ndr_pull *ndr, int n
 		}
 		NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
 		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
+		if (r->priority > 99) {
+			return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
+		}
 		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
 		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
 		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
@@ -4519,6 +4531,9 @@ static enum ndr_err_code ndr_pull_spoolss_SetJobInfo1(struct ndr_pull *ndr, int
 		}
 		NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
 		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
+		if (r->priority > 99) {
+			return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
+		}
 		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
 		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
 		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
@@ -4833,6 +4848,9 @@ static enum ndr_err_code ndr_pull_spoolss_SetJobInfo2(struct ndr_pull *ndr, int
 		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_secdesc_ptr));
 		NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
 		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
+		if (r->priority > 99) {
+			return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
+		}
 		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
 		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
 		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
@@ -5230,6 +5248,9 @@ static enum ndr_err_code ndr_pull_spoolss_SetJobInfo4(struct ndr_pull *ndr, int
 		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_secdesc_ptr));
 		NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
 		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
+		if (r->priority > 99) {
+			return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
+		}
 		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
 		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
 		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
@@ -6286,6 +6307,9 @@ static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo2(struct ndr_pull *ndr,
 		}
 		NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
 		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
+		if (r->priority > 99) {
+			return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
+		}
 		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
 		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
 		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
@@ -17008,8 +17032,8 @@ _PUBLIC_ void ndr_print_spoolss_NotifyType(struct ndr_print *ndr, const char *na
 	const char *val = NULL;
 
 	switch (r) {
-		case SPOOLSS_NOTIFY_PRINTER: val = "SPOOLSS_NOTIFY_PRINTER"; break;
-		case SPOOLSS_NOTIFY_JOB: val = "SPOOLSS_NOTIFY_JOB"; break;
+		case PRINTER_NOTIFY_TYPE: val = "PRINTER_NOTIFY_TYPE"; break;
+		case JOB_NOTIFY_TYPE: val = "JOB_NOTIFY_TYPE"; break;
 	}
 	ndr_print_enum(ndr, name, "ENUM", val, r);
 }
diff --git a/librpc/gen_ndr/spoolss.h b/librpc/gen_ndr/spoolss.h
index bcf04fb..c31e1ea 100644
--- a/librpc/gen_ndr/spoolss.h
+++ b/librpc/gen_ndr/spoolss.h
@@ -15,6 +15,10 @@
 #define PRINTER_ENUM_ICONMASK	( (PRINTER_ENUM_ICON1|PRINTER_ENUM_ICON2|PRINTER_ENUM_ICON3|PRINTER_ENUM_ICON4|PRINTER_ENUM_ICON5|PRINTER_ENUM_ICON6|PRINTER_ENUM_ICON7|PRINTER_ENUM_ICON8) )
 #define SPOOLSS_ARCHITECTURE_NT_X86	( "Windows NT x86" )
 #define SPOOLSS_DEFAULT_SERVER_PATH	( "C:\\WINDOWS\\system32\\spool" )
+#define SPL_LOCAL_PORT	( "Local Port" )
+#define SPL_TCPIP_PORT	( "Standard TCP/IP Port" )
+#define SPL_XCV_MONITOR_LOCALMON	( ",XcvMonitor Local Port" )
+#define SPL_XCV_MONITOR_TCPMON	( ",XcvMonitor Standard TCP/IP Port" )
 #define PRINTER_CHANGE_PRINTER	( 0x000000FF )
 #define PRINTER_CHANGE_JOB	( 0x0000FF00 )
 #define PRINTER_CHANGE_FORM	( (PRINTER_CHANGE_ADD_FORM|PRINTER_CHANGE_SET_FORM|PRINTER_CHANGE_DELETE_FORM) )
@@ -324,7 +328,7 @@ struct spoolss_PrinterInfo2 {
 	const char * parameters;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
 	struct security_descriptor *secdesc;/* [relative,subcontext(0)] */
 	uint32_t attributes;
-	uint32_t priority;
+	uint32_t priority;/* [range(0,99)] */
 	uint32_t defaultpriority;
 	uint32_t starttime;
 	uint32_t untiltime;
@@ -398,7 +402,7 @@ struct spoolss_JobInfo1 {
 	const char * data_type;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
 	const char * text_status;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
 	uint32_t status;
-	uint32_t priority;
+	uint32_t priority;/* [range(0,99)] */
 	uint32_t position;
 	uint32_t total_pages;
 	uint32_t pages_printed;
@@ -420,7 +424,7 @@ struct spoolss_JobInfo2 {
 	const char * text_status;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
 	struct security_descriptor *secdesc;/* [relative] */
 	uint32_t status;
-	uint32_t priority;
+	uint32_t priority;/* [range(0,99)] */
 	uint32_t position;
 	uint32_t start_time;
 	uint32_t until_time;
@@ -452,7 +456,7 @@ struct spoolss_JobInfo4 {
 	const char * text_status;/* [relative,flag(LIBNDR_FLAG_STR_NULLTERM)] */
 	struct security_descriptor *secdesc;/* [relative] */
 	uint32_t status;
-	uint32_t priority;
+	uint32_t priority;/* [range(0,99)] */
 	uint32_t position;
 	uint32_t start_time;
 	uint32_t until_time;
@@ -480,7 +484,7 @@ struct spoolss_SetJobInfo1 {
 	const char *data_type;/* [unique,charset(UTF16)] */
 	const char *text_status;/* [unique,charset(UTF16)] */
 	uint32_t status;
-	uint32_t priority;
+	uint32_t priority;/* [range(0,99)] */
 	uint32_t position;
 	uint32_t total_pages;
 	uint32_t pages_printed;
@@ -502,7 +506,7 @@ struct spoolss_SetJobInfo2 {
 	const char *text_status;/* [unique,charset(UTF16)] */
 	uint32_t _secdesc_ptr;
 	uint32_t status;
-	uint32_t priority;
+	uint32_t priority;/* [range(0,99)] */
 	uint32_t position;
 	uint32_t start_time;
 	uint32_t until_time;
@@ -528,7 +532,7 @@ struct spoolss_SetJobInfo4 {
 	const char *text_status;/* [unique,charset(UTF16)] */
 	uint32_t _secdesc_ptr;
 	uint32_t status;
-	uint32_t priority;
+	uint32_t priority;/* [range(0,99)] */
 	uint32_t position;
 	uint32_t start_time;
 	uint32_t until_time;
@@ -652,7 +656,7 @@ struct spoolss_SetPrinterInfo2 {
 	const char *parameters;/* [unique,charset(UTF16)] */
 	struct security_descriptor *secdesc;/* [unique,subcontext(0)] */
 	uint32_t attributes;
-	uint32_t priority;
+	uint32_t priority;/* [range(0,99)] */
 	uint32_t defaultpriority;
 	uint32_t starttime;
 	uint32_t untiltime;
@@ -1344,13 +1348,13 @@ enum spoolss_Field
 enum spoolss_NotifyType
 #ifndef USE_UINT_ENUMS
  {
-	SPOOLSS_NOTIFY_PRINTER=0,
-	SPOOLSS_NOTIFY_JOB=1
+	PRINTER_NOTIFY_TYPE=0x00,
+	JOB_NOTIFY_TYPE=0x01
 }
 #else
  { __donnot_use_enum_spoolss_NotifyType=0x7FFFFFFF}
-#define SPOOLSS_NOTIFY_PRINTER ( 0 )
-#define SPOOLSS_NOTIFY_JOB ( 1 )
+#define PRINTER_NOTIFY_TYPE ( 0x00 )
+#define JOB_NOTIFY_TYPE ( 0x01 )
 #endif
 ;
 
diff --git a/librpc/idl/spoolss.idl b/librpc/idl/spoolss.idl
index 529d44e..8010374 100644
--- a/librpc/idl/spoolss.idl
+++ b/librpc/idl/spoolss.idl
@@ -289,7 +289,7 @@ import "misc.idl", "security.idl", "winreg.idl";
 		[relative] nstring *parameters;
 		[relative,subcontext(0)] security_descriptor *secdesc;
 		spoolss_PrinterAttributes attributes;
-		uint32 priority;
+		[range(0,99)] uint32 priority;
 		uint32 defaultpriority;
 		uint32 starttime;
 		uint32 untiltime;
@@ -410,7 +410,7 @@ import "misc.idl", "security.idl", "winreg.idl";
 		[relative] nstring *data_type;
 		[relative] nstring *text_status;
 		spoolss_JobStatus status;
-		uint32 priority;
+		[range(0,99)] uint32 priority;
 		uint32 position;
 		uint32 total_pages;
 		uint32 pages_printed;
@@ -432,7 +432,7 @@ import "misc.idl", "security.idl", "winreg.idl";
 		[relative] nstring *text_status;
 		[relative] security_descriptor *secdesc;
 		spoolss_JobStatus status;
-		uint32 priority;
+		[range(0,99)] uint32 priority;
 		uint32 position;
 		uint32 start_time;
 		uint32 until_time;
@@ -464,7 +464,7 @@ import "misc.idl", "security.idl", "winreg.idl";
 		[relative] nstring *text_status;
 		[relative] security_descriptor *secdesc;
 		spoolss_JobStatus status;
-		uint32 priority;
+		[range(0,99)] uint32 priority;
 		uint32 position;
 		uint32 start_time;
 		uint32 until_time;
@@ -493,7 +493,7 @@ import "misc.idl", "security.idl", "winreg.idl";
 		[string,charset(UTF16)] uint16 *data_type;
 		[string,charset(UTF16)] uint16 *text_status;
 		spoolss_JobStatus status;
-		uint32 priority;
+		[range(0,99)] uint32 priority;
 		uint32 position;
 		uint32 total_pages;
 		uint32 pages_printed;
@@ -515,7 +515,7 @@ import "misc.idl", "security.idl", "winreg.idl";
 		[string,charset(UTF16)] uint16 *text_status;
 		uint32 _secdesc_ptr;
 		spoolss_JobStatus status;
-		uint32 priority;
+		[range(0,99)] uint32 priority;
 		uint32 position;
 		uint32 start_time;
 		uint32 until_time;
@@ -541,7 +541,7 @@ import "misc.idl", "security.idl", "winreg.idl";
 		[string,charset(UTF16)] uint16 *text_status;
 		uint32 _secdesc_ptr;
 		spoolss_JobStatus status;
-		uint32 priority;
+		[range(0,99)] uint32 priority;
 		uint32 position;
 		uint32 start_time;
 		uint32 until_time;
@@ -704,7 +704,7 @@ import "misc.idl", "security.idl", "winreg.idl";
 		[string,charset(UTF16)] uint16 *parameters;
 		[subcontext(0)] security_descriptor *secdesc;
 		spoolss_PrinterAttributes attributes;
-		uint32 priority;
+		[range(0,99)] uint32 priority;
 		uint32 defaultpriority;
 		uint32 starttime;
 		uint32 untiltime;
@@ -1501,6 +1501,16 @@ import "misc.idl", "security.idl", "winreg.idl";
 		[out,ref] uint32 *needed
 	);
 
+	/*
+	 * Special strings for the OpenPrinter() call.  See the MSDN DDK
+	 * docs on the XcvDataPort() for more details.
+	 */
+
+	const string SPL_LOCAL_PORT		= "Local Port";
+	const string SPL_TCPIP_PORT		= "Standard TCP/IP Port";
+	const string SPL_XCV_MONITOR_LOCALMON   = ",XcvMonitor Local Port";
+	const string SPL_XCV_MONITOR_TCPMON	= ",XcvMonitor Standard TCP/IP Port";
+
 	typedef [public,gensize] struct {
 		[relative] nstring *port_name;
 	} spoolss_PortInfo1;
@@ -1912,8 +1922,8 @@ import "misc.idl", "security.idl", "winreg.idl";
 	} spoolss_Field;
 
 	typedef [enum16bit] enum {
-		SPOOLSS_NOTIFY_PRINTER 			= 0,
-		SPOOLSS_NOTIFY_JOB				= 1
+		PRINTER_NOTIFY_TYPE	= 0x00,
+		JOB_NOTIFY_TYPE		= 0x01
 	} spoolss_NotifyType;
 
 	/******************/
diff --git a/source3/include/nt_printing.h b/source3/include/nt_printing.h
index 43fd363..2d13197 100644
--- a/source3/include/nt_printing.h
+++ b/source3/include/nt_printing.h
@@ -459,4 +459,20 @@ typedef struct _Printer{
 	
 } Printer_entry;
 
+/*
+ * The printer attributes.
+ * I #defined all of them (grabbed form MSDN)
+ * I'm only using:
+ * ( SHARED | NETWORK | RAW_ONLY )
+ * RAW_ONLY _MUST_ be present otherwise NT will send an EMF file
+ */
+
+#define PRINTER_ATTRIBUTE_SAMBA			(PRINTER_ATTRIBUTE_RAW_ONLY|\
+						 PRINTER_ATTRIBUTE_SHARED|\
+						 PRINTER_ATTRIBUTE_LOCAL)
+#define PRINTER_ATTRIBUTE_NOT_SAMBA		(PRINTER_ATTRIBUTE_NETWORK)
+
+#define DRIVER_ANY_VERSION		0xffffffff
+#define DRIVER_MAX_VERSION		4
+
 #endif /* NT_PRINTING_H_ */
diff --git a/source3/include/ntdomain.h b/source3/include/ntdomain.h
index 0eff9bd..0b827d3 100644
--- a/source3/include/ntdomain.h
+++ b/source3/include/ntdomain.h
@@ -293,11 +293,4 @@ struct api_struct {
 
 /* end higher order functions */
 
-typedef struct {
-	uint32 size;
-	prs_struct prs;
-	uint32 struct_start;
-	uint32 string_at_end;
-} RPC_BUFFER;
-
 #endif /* _NT_DOMAIN_H */
diff --git a/source3/include/proto.h b/source3/include/proto.h
index f837a31..ce0372f 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -5677,6 +5677,8 @@ NTSTATUS cli_do_rpc_ndr(struct rpc_pipe_client *cli,
 
 bool smb_io_time(const char *desc, NTTIME *nttime, prs_struct *ps, int depth);
 bool smb_io_nttime(const char *desc, prs_struct *ps, int depth, NTTIME *nttime);
+bool smb_io_system_time(const char *desc, prs_struct *ps, int depth, SYSTEMTIME *systime);
+bool make_systemtime(SYSTEMTIME *systime, struct tm *unixtime);
 bool smb_io_dom_sid(const char *desc, DOM_SID *sid, prs_struct *ps, int depth);
 bool smb_io_uuid(const char *desc, struct GUID *uuid, 
 		 prs_struct *ps, int depth);
@@ -5826,9 +5828,6 @@ bool sec_io_desc_buf(const char *desc, SEC_DESC_BUF **ppsdb, prs_struct *ps, int
 
 /* The following definitions come from rpc_parse/parse_spoolss.c  */
 
-bool spoolss_io_system_time(const char *desc, prs_struct *ps, int depth, SYSTEMTIME *systime);
-bool make_systemtime(SYSTEMTIME *systime, struct tm *unixtime);
-bool spoolss_io_devmode(const char *desc, prs_struct *ps, int depth, DEVICEMODE *devmode);
 uint32 spoolss_size_printer_enum_values(PRINTER_ENUM_VALUES *p);
 bool make_spoolss_buffer5(TALLOC_CTX *mem_ctx, BUFFER5 *buf5, uint32 len, uint16 *src);
 bool make_spoolss_q_enumprinterdataex(SPOOL_Q_ENUMPRINTERDATAEX *q_u,
@@ -5956,8 +5955,9 @@ void reset_all_printerdata(struct messaging_context *msg,
 			   uint32_t msg_type,
 			   struct server_id server_id,
 			   DATA_BLOB *data);
-bool convert_devicemode(const char *printername, const DEVICEMODE *devmode,
-				NT_DEVICEMODE **pp_nt_devmode);
+bool convert_devicemode(const char *printername,
+			const struct spoolss_DeviceMode *devmode,
+			NT_DEVICEMODE **pp_nt_devmode);
 WERROR set_printer_dataex( NT_PRINTER_INFO_LEVEL *printer, const char *key, const char *value,
                                   uint32 type, uint8 *data, int real_len  );
 void spoolss_notify_server_name(int snum,
@@ -6029,9 +6029,8 @@ void construct_info_data(struct spoolss_Notify *info_data,
 			 enum spoolss_NotifyType type,
 			 enum spoolss_Field field,
 			 int id);
-DEVICEMODE *construct_dev_mode(const char *servicename);
-struct spoolss_DeviceMode *construct_dev_mode_new(TALLOC_CTX *mem_ctx,
-						  const char *servicename);
+struct spoolss_DeviceMode *construct_dev_mode(TALLOC_CTX *mem_ctx,
+					      const char *servicename);
 WERROR add_port_hook(TALLOC_CTX *ctx, NT_USER_TOKEN *token, const char *portname, const char *uri );
 bool add_printer_hook(TALLOC_CTX *ctx, NT_USER_TOKEN *token, NT_PRINTER_INFO_LEVEL *printer);
 WERROR enumports_hook(TALLOC_CTX *ctx, int *count, char ***lines );
diff --git a/source3/include/rpc_misc.h b/source3/include/rpc_misc.h
index 1e9d43b..37dffbb 100644
--- a/source3/include/rpc_misc.h
+++ b/source3/include/rpc_misc.h
@@ -138,4 +138,23 @@ typedef struct {		/* UNISTR3 - XXXX not sure about this structure */
 	UNISTR str;
 } UNISTR3;
 
+/*
+ * I'm really wondering how many different time formats
+ * I will have to cope with
+ *
+ * JFM, 09/13/98 In a mad mood ;-(
+*/
+typedef struct systemtime
+{
+	uint16 year;
+	uint16 month;
+	uint16 dayofweek;
+	uint16 day;
+	uint16 hour;
+	uint16 minute;
+	uint16 second;
+	uint16 milliseconds;
+}
+SYSTEMTIME;
+
 #endif /* _RPC_MISC_H */
diff --git a/source3/include/rpc_spoolss.h b/source3/include/rpc_spoolss.h
index 0ad684d..4082903 100644
--- a/source3/include/rpc_spoolss.h
+++ b/source3/include/rpc_spoolss.h
@@ -111,21 +111,6 @@
 #define SPOOLSS_XCVDATAPORT				0x58
 #define SPOOLSS_ADDPRINTERDRIVEREX			0x59
 
-/* 
- * Special strings for the OpenPrinter() call.  See the MSDN DDK
- * docs on the XcvDataPort() for more details.
- */
-
-#define SPL_LOCAL_PORT            "Local Port"
-#define SPL_TCPIP_PORT            "Standard TCP/IP Port"
-#define SPL_XCV_MONITOR_LOCALMON  ",XcvMonitor Local Port"
-#define SPL_XCV_MONITOR_TCPMON    ",XcvMonitor Standard TCP/IP Port"
-
-/* Notify field types */
-
-#define PRINTER_NOTIFY_TYPE 0x00
-#define JOB_NOTIFY_TYPE     0x01
-
 #define PRINTER_NOTIFY_SERVER_NAME		0x00
 #define PRINTER_NOTIFY_PRINTER_NAME		0x01
 #define PRINTER_NOTIFY_SHARE_NAME		0x02
@@ -178,121 +163,6 @@
 #define JOB_NOTIFY_TOTAL_BYTES			0x16
 #define JOB_NOTIFY_BYTES_PRINTED		0x17
 
-/*
- * Set of macros for flagging what changed in the PRINTER_INFO_2 struct
- * when sending messages to other smbd's
- */
-#define PRINTER_MESSAGE_NULL            0x00000000
-#define PRINTER_MESSAGE_DRIVER		0x00000001
-#define PRINTER_MESSAGE_COMMENT		0x00000002
-#define PRINTER_MESSAGE_PRINTERNAME	0x00000004
-#define PRINTER_MESSAGE_LOCATION	0x00000008
-#define PRINTER_MESSAGE_DEVMODE		0x00000010	/* not curently supported */
-#define PRINTER_MESSAGE_SEPFILE		0x00000020
-#define PRINTER_MESSAGE_PRINTPROC	0x00000040
-#define PRINTER_MESSAGE_PARAMS		0x00000080
-#define PRINTER_MESSAGE_DATATYPE	0x00000100
-#define PRINTER_MESSAGE_SECDESC		0x00000200
-#define PRINTER_MESSAGE_CJOBS		0x00000400
-#define PRINTER_MESSAGE_PORT		0x00000800
-#define PRINTER_MESSAGE_SHARENAME	0x00001000
-#define PRINTER_MESSAGE_ATTRIBUTES	0x00002000
-
-typedef struct printer_message_info {
-	uint32 low;		/* PRINTER_CHANGE_XXX */
-	uint32 high;		/* PRINTER_CHANGE_XXX */
-	fstring printer_name;
-	uint32 flags;		/* PRINTER_MESSAGE_XXX */
-}
-PRINTER_MESSAGE_INFO;
-
-/*
- * The printer attributes.
- * I #defined all of them (grabbed form MSDN)
- * I'm only using:
- * ( SHARED | NETWORK | RAW_ONLY )
- * RAW_ONLY _MUST_ be present otherwise NT will send an EMF file
- */
-
-#define PRINTER_ATTRIBUTE_SAMBA			(PRINTER_ATTRIBUTE_RAW_ONLY|\
-						 PRINTER_ATTRIBUTE_SHARED|\
-						 PRINTER_ATTRIBUTE_LOCAL)
-#define PRINTER_ATTRIBUTE_NOT_SAMBA		(PRINTER_ATTRIBUTE_NETWORK)
-
-#define NO_PRIORITY	 0
-#define MAX_PRIORITY	99
-#define MIN_PRIORITY	 1
-#define DEF_PRIORITY	 1
-
-/* the flags of each printers */
-
-#define DRIVER_ANY_VERSION		0xffffffff
-#define DRIVER_MAX_VERSION		4


-- 
Samba Shared Repository


More information about the samba-cvs mailing list