[SCM] Samba Shared Repository - branch v3-4-test updated - release-4-0-0alpha7-448-gfa9d1f6

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


The branch, v3-4-test has been updated
       via  fa9d1f633796bff86e899b48e3ea8bb77492c10b (commit)
       via  43770f36703866e0a826fcae2ae1c7ce2cf4f056 (commit)
       via  37141ad861d0bd4c215350c7611132a40748a8bf (commit)
       via  a2f7943d6d0b36b5e55d20c1b6d299af485a469e (commit)
       via  ddbea456e5a20cade1772029c433c2e285ebbda3 (commit)
       via  0c4293155aeeea29f5aa97f00d9a18602da47338 (commit)
       via  6b0c35e09fd471f55431cd40e383da66f2b5d143 (commit)
       via  18a2dd3fa0aee8a8cd5638b90c0553966c34919c (commit)
       via  6069010991dc2b3272fc4ba51504f2f9ce97c43d (commit)
       via  ec845d14417c3883b08f38971c5f5a2d76c7cf48 (commit)
       via  2d01207b28bb4c0c26a7c7f37a2be285c904dfdc (commit)
       via  3a1d1e62fd903c49e04fd7880a1706abc5961127 (commit)
       via  afe6696a5a75d40892f2a551c406e623f0a3b3a1 (commit)
       via  2902761ab0e6b95616fc99e685343bc2d0d43c84 (commit)
       via  040c35afc2571a734e4d9f5f1d4e4c2d97f2e4bc (commit)
       via  bee5ae5a3c016e1513f685973478bb1dec2ecf76 (commit)
       via  1342e045416870bc891ae60fe96742ef9f2362b2 (commit)
       via  cc84717f8d915564e786e9d01fc8b337e03a9c0b (commit)
       via  05d441f7ff79b20e23f549d7d6c6567c8ec554e0 (commit)
       via  3763cc73f7c25905828183e756dac8340afa6fd4 (commit)
       via  821c91108af686ea8cdebe7bf3b4f560aeb8eaa1 (commit)
      from  fc0dfba28f3c6e22b1d4bb19577e735c3db16f1e (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-4-test


- Log -----------------------------------------------------------------
commit fa9d1f633796bff86e899b48e3ea8bb77492c10b
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
    (cherry picked from commit 77d2cd1ff7dab3a7a76449bfb3fe1d6e80df292b)

commit 43770f36703866e0a826fcae2ae1c7ce2cf4f056
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
    (cherry picked from commit b57d5eaac03b38a605fb8853dbb18c208461b0bb)

commit 37141ad861d0bd4c215350c7611132a40748a8bf
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
    (cherry picked from commit fac7208273a24fa35d3274df28aea3bb87374861)

commit a2f7943d6d0b36b5e55d20c1b6d299af485a469e
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
    (cherry picked from commit 7f90a89d609c48b7fe33e29c98ca903896083889)

commit ddbea456e5a20cade1772029c433c2e285ebbda3
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
    (cherry picked from commit 479d91ae9f0868f02dd70b80e3033eb9ff166541)

commit 0c4293155aeeea29f5aa97f00d9a18602da47338
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
    (cherry picked from commit 9b5666aa70fda80220347a7a1a6a07e4c1d121a8)

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

    s3: re-run make samba3-idl.
    
    Guenther
    (cherry picked from commit f32cf73019bb45b30f3fb0151dad3e65d7694d46)

commit 18a2dd3fa0aee8a8cd5638b90c0553966c34919c
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
    (cherry picked from commit 289cfb269b486a0a2f8376ead77fd64ad7c012d4)

commit 6069010991dc2b3272fc4ba51504f2f9ce97c43d
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
    (cherry picked from commit a264bc68f0e44fb561fe61613b5cf3c7b5e8385f)

commit ec845d14417c3883b08f38971c5f5a2d76c7cf48
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
    (cherry picked from commit f94a6f4801e5b2b83e5f4888aba21f3647e23f9a)

commit 2d01207b28bb4c0c26a7c7f37a2be285c904dfdc
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
    (cherry picked from commit 4cb3cbea84c6cf30b123eb5070905eeed5aba4d7)

commit 3a1d1e62fd903c49e04fd7880a1706abc5961127
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
    (cherry picked from commit f19faa0e768f477c26b92f87905cfdb7245dbaa1)

commit afe6696a5a75d40892f2a551c406e623f0a3b3a1
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
    (cherry picked from commit 5778a36357f1560b9a8e5828cf789be4357ceb0c)

commit 2902761ab0e6b95616fc99e685343bc2d0d43c84
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
    (cherry picked from commit 1e7f602f8c1c19761758eee4e3287d711ff6cf92)

commit 040c35afc2571a734e4d9f5f1d4e4c2d97f2e4bc
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
    (cherry picked from commit 6549408a4ddb97d109eccb3f8b8bac456b4c4bc8)

commit bee5ae5a3c016e1513f685973478bb1dec2ecf76
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
    (cherry picked from commit 827ba0a64b33ca9caf7673f195cf17c1d5b84b66)

commit 1342e045416870bc891ae60fe96742ef9f2362b2
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
    (cherry picked from commit 96998f03584608e3cb30a61120d497b45d0af001)

commit cc84717f8d915564e786e9d01fc8b337e03a9c0b
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
    (cherry picked from commit d759f9961a30c5dc9920f620b783ffa58daf9b03)

commit 05d441f7ff79b20e23f549d7d6c6567c8ec554e0
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
    (cherry picked from commit 47c024fd7516aa940b6b04f903cedff677e5543e)

commit 3763cc73f7c25905828183e756dac8340afa6fd4
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
    (cherry picked from commit 28d16866ee639f828ea644753f29a678605883a5)

commit 821c91108af686ea8cdebe7bf3b4f560aeb8eaa1
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
    (cherry picked from commit 2d318490ea524ced22e8c256d4343755edc58a82)

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

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 6510018..8a970f3 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