[SCM] Samba Shared Repository - branch master updated

Günther Deschner gd at samba.org
Thu Feb 17 08:47:01 MST 2011


The branch, master has been updated
       via  d4892f3 s4-smbtorture: add more complex spoolss_EnumPrinterDataEx test.
       via  f037d42 s3-lsa: support trust objects in _lsa_QuerySecurity().
       via  fa43de0 s3-lsa: in _lsa_QuerySecurity() query the sd from the lsa policy handle.
       via  67dfc87 s3-lsa: only proceed in _lsa_EnumTrustedDomainsEx when backend has trusted domain support.
       via  0ed46df s3-passdb: add PDB_CAP_TRUSTED_DOMAINS_EX.
       via  a0c77c2 s3-cluster remove more CLUSTER_SUPPORT #ifdef stuff
       via  09c4a5c s3-cluster Always fill in the clustering vnn element
       via  6840549 s3: add server_id.idl and use only autogenerated code.
      from  aa3f749 s4:scripting/python/modules.c - remove a really unnecessary variable

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


- Log -----------------------------------------------------------------
commit d4892f38761b29e911762d15e5518ee5965a2530
Author: Günther Deschner <gd at samba.org>
Date:   Thu Feb 17 15:24:00 2011 +0100

    s4-smbtorture: add more complex spoolss_EnumPrinterDataEx test.
    
    Guenther
    
    Autobuild-User: Günther Deschner <gd at samba.org>
    Autobuild-Date: Thu Feb 17 16:46:28 CET 2011 on sn-devel-104

commit f037d42e9bc6ee8148a4ad92f087bf23c55dc6c4
Author: Günther Deschner <gd at samba.org>
Date:   Thu Jul 1 22:33:17 2010 +0200

    s3-lsa: support trust objects in _lsa_QuerySecurity().
    
    Guenther

commit fa43de063ae40850800ebc839e30700ce65dceee
Author: Günther Deschner <gd at samba.org>
Date:   Fri Oct 30 00:05:32 2009 +0100

    s3-lsa: in _lsa_QuerySecurity() query the sd from the lsa policy handle.
    
    Guenther

commit 67dfc87291a342dc17dbb7bcee06157dd614f3e3
Author: Günther Deschner <gd at samba.org>
Date:   Thu Feb 17 14:37:32 2011 +0100

    s3-lsa: only proceed in _lsa_EnumTrustedDomainsEx when backend has trusted domain support.
    
    Guenther

commit 0ed46df56a84dfc40e172ea1e460fa6490b15a2a
Author: Günther Deschner <gd at samba.org>
Date:   Thu Feb 17 14:20:19 2011 +0100

    s3-passdb: add PDB_CAP_TRUSTED_DOMAINS_EX.
    
    Guenther

commit a0c77c2eda8ffef0f5775acda56d4f1e44344cea
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Wed Feb 16 16:45:18 2011 +1100

    s3-cluster remove more CLUSTER_SUPPORT #ifdef stuff

commit 09c4a5cd9bc3f46bbc90e86f0155ef4080d1a3ec
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Wed Feb 16 15:13:53 2011 +1100

    s3-cluster Always fill in the clustering vnn element
    
    This avoids this structure being partially uninitialised.
    
    Adnrew Bartlett

commit 6840549123c9152a9fbe614a2f9d0de758318660
Author: Günther Deschner <gd at samba.org>
Date:   Wed Feb 16 00:39:55 2011 +0100

    s3: add server_id.idl and use only autogenerated code.
    
    Volker, Tridge and other clustering gurus, please check.
    
    It is ok to get rid of ifdef CLUSTER_SUPPORT here, right ?
    Why was unique_id not marshalled at all ?
    
    Guenther

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

Summary of changes:
 source3/Makefile.in                 |    5 +-
 source3/include/messages.h          |    9 +-
 source3/include/passdb.h            |    5 +-
 source3/include/smb.h               |    4 -
 source3/lib/serverid.c              |    6 -
 source3/lib/util.c                  |   24 --
 source3/librpc/idl/messaging.idl    |    3 +-
 source3/librpc/idl/notify.idl       |    3 +-
 source3/librpc/idl/server_id.idl    |   25 ++
 source3/librpc/idl/wscript_build    |    2 +-
 source3/librpc/ndr/ndr_server_id.c  |   66 ----
 source3/librpc/ndr/ndr_server_id.h  |    6 -
 source3/librpc/wscript_build        |    2 +-
 source3/passdb/pdb_ipa.c            |    2 +-
 source3/rpc_server/lsa/srv_lsa_nt.c |   20 +-
 source3/smbd/oplock.c               |    4 -
 source3/utils/net_serverid.c        |    2 -
 source4/torture/ndr/spoolss.c       |  721 +++++++++++++++++++++++++++++++++++
 18 files changed, 773 insertions(+), 136 deletions(-)
 create mode 100644 source3/librpc/idl/server_id.idl
 delete mode 100644 source3/librpc/ndr/ndr_server_id.c
 delete mode 100644 source3/librpc/ndr/ndr_server_id.h


Changeset truncated at 500 lines:

diff --git a/source3/Makefile.in b/source3/Makefile.in
index 8140f0a..8e338fd 100644
--- a/source3/Makefile.in
+++ b/source3/Makefile.in
@@ -318,7 +318,7 @@ LIBNDR_OBJ = ../librpc/ndr/ndr_basic.o \
 	     ../librpc/ndr/ndr_string.o \
 	     ../librpc/ndr/uuid.o \
 	     librpc/ndr/util.o \
-	     librpc/ndr/ndr_server_id.o \
+	     librpc/gen_ndr/ndr_server_id.o \
 	     librpc/gen_ndr/ndr_dcerpc.o
 
 LIBNDR_GEN_OBJ0 = librpc/gen_ndr/ndr_samr.o \
@@ -1578,7 +1578,8 @@ IDL_FILES = librpc/idl/messaging.idl \
 	    librpc/idl/wbint.idl \
 	    librpc/idl/perfcount.idl \
 	    librpc/idl/secrets.idl \
-	    librpc/idl/libnet_join.idl
+	    librpc/idl/libnet_join.idl \
+	    librpc/idl/server_id.idl
 
 samba3-idl::
 	@PIDL_OUTPUTDIR="librpc/gen_ndr" PIDL_ARGS="$(PIDL_ARGS)" CPP="$(CPP)" PIDL="../pidl/pidl" \
diff --git a/source3/include/messages.h b/source3/include/messages.h
index d4f7d20..226c7c6 100644
--- a/source3/include/messages.h
+++ b/source3/include/messages.h
@@ -66,14 +66,7 @@
 
 #define MSG_SRVID_SAMBA 0x0000000100000000LL
 
-
-struct server_id {
-	pid_t pid;
-#ifdef CLUSTER_SUPPORT
-	uint32 vnn;
-#endif
-	uint64_t unique_id;
-};
+#include "librpc/gen_ndr/server_id.h"
 
 #ifdef CLUSTER_SUPPORT
 #define MSG_BROADCAST_PID_STR	"0:0"
diff --git a/source3/include/passdb.h b/source3/include/passdb.h
index 77956cb..915f295 100644
--- a/source3/include/passdb.h
+++ b/source3/include/passdb.h
@@ -262,8 +262,9 @@ enum pdb_policy_type {
 	PDB_POLICY_REFUSE_MACHINE_PW_CHANGE = 10
 };
 
-#define PDB_CAP_STORE_RIDS	0x0001
-#define PDB_CAP_ADS		0x0002
+#define PDB_CAP_STORE_RIDS		0x0001
+#define PDB_CAP_ADS			0x0002
+#define PDB_CAP_TRUSTED_DOMAINS_EX	0x0004
 
 /*****************************************************************
  Functions to be implemented by the new (v2) passdb API 
diff --git a/source3/include/smb.h b/source3/include/smb.h
index 6d0af8e..ff3817a 100644
--- a/source3/include/smb.h
+++ b/source3/include/smb.h
@@ -722,12 +722,8 @@ Offset  Data			length.
 #define OP_BREAK_MSG_FLAGS_OFFSET 66
 #define OP_BREAK_MSG_NAME_HASH_OFFSET 68
 
-#ifdef CLUSTER_SUPPORT
 #define OP_BREAK_MSG_VNN_OFFSET 72
 #define MSG_SMB_SHARE_MODE_ENTRY_SIZE 76
-#else
-#define MSG_SMB_SHARE_MODE_ENTRY_SIZE 72
-#endif
 
 struct delete_token_list {
 	struct delete_token_list *next, *prev;
diff --git a/source3/lib/serverid.c b/source3/lib/serverid.c
index ded7298..a8cdcfa 100644
--- a/source3/lib/serverid.c
+++ b/source3/lib/serverid.c
@@ -23,9 +23,7 @@
 
 struct serverid_key {
 	pid_t pid;
-#ifdef CLUSTER_SUPPORT
 	uint32_t vnn;
-#endif
 };
 
 struct serverid_data {
@@ -71,9 +69,7 @@ static void serverid_fill_key(const struct server_id *id,
 {
 	ZERO_STRUCTP(key);
 	key->pid = id->pid;
-#ifdef CLUSTER_SUPPORT
 	key->vnn = id->vnn;
-#endif
 }
 
 bool serverid_register(const struct server_id id, uint32_t msg_flags)
@@ -276,9 +272,7 @@ static bool serverid_rec_parse(const struct db_record *rec,
 	memcpy(&data, rec->value.dptr, sizeof(data));
 
 	id->pid = key.pid;
-#ifdef CLUSTER_SUPPORT
 	id->vnn = key.vnn;
-#endif
 	id->unique_id = data.unique_id;
 	*msg_flags = data.msg_flags;
 	return true;
diff --git a/source3/lib/util.c b/source3/lib/util.c
index 08a24ec..e70dd6a 100644
--- a/source3/lib/util.c
+++ b/source3/lib/util.c
@@ -2574,9 +2574,7 @@ struct server_id pid_to_procid(pid_t pid)
 	struct server_id result;
 	result.pid = pid;
 	result.unique_id = my_unique_id;
-#ifdef CLUSTER_SUPPORT
 	result.vnn = my_vnn;
-#endif
 	return result;
 }
 
@@ -2589,10 +2587,8 @@ bool procid_equal(const struct server_id *p1, const struct server_id *p2)
 {
 	if (p1->pid != p2->pid)
 		return False;
-#ifdef CLUSTER_SUPPORT
 	if (p1->vnn != p2->vnn)
 		return False;
-#endif
 	return True;
 }
 
@@ -2606,10 +2602,8 @@ bool procid_is_me(const struct server_id *pid)
 {
 	if (pid->pid != sys_getpid())
 		return False;
-#ifdef CLUSTER_SUPPORT
 	if (pid->vnn != my_vnn)
 		return False;
-#endif
 	return True;
 }
 
@@ -2617,7 +2611,6 @@ struct server_id interpret_pid(const char *pid_string)
 {
 	struct server_id result;
 	int pid;
-#ifdef CLUSTER_SUPPORT
 	unsigned int vnn;
 	if (sscanf(pid_string, "%u:%d", &vnn, &pid) == 2) {
 		result.vnn = vnn;
@@ -2631,13 +2624,6 @@ struct server_id interpret_pid(const char *pid_string)
 		result.vnn = NONCLUSTER_VNN;
 		result.pid = -1;
 	}
-#else
-	if (sscanf(pid_string, "%d", &pid) != 1) {
-		result.pid = -1;
-	} else {
-		result.pid = pid;
-	}
-#endif
 	/* Assigning to result.pid may have overflowed
 	   Map negative pid to -1: i.e. error */
 	if (result.pid < 0) {
@@ -2649,7 +2635,6 @@ struct server_id interpret_pid(const char *pid_string)
 
 char *procid_str(TALLOC_CTX *mem_ctx, const struct server_id *pid)
 {
-#ifdef CLUSTER_SUPPORT
 	if (pid->vnn == NONCLUSTER_VNN) {
 		return talloc_asprintf(mem_ctx,
 				"%d",
@@ -2661,11 +2646,6 @@ char *procid_str(TALLOC_CTX *mem_ctx, const struct server_id *pid)
 					(unsigned)pid->vnn,
 					(int)pid->pid);
 	}
-#else
-	return talloc_asprintf(mem_ctx,
-			"%d",
-			(int)pid->pid);
-#endif
 }
 
 char *procid_str_static(const struct server_id *pid)
@@ -2680,11 +2660,7 @@ bool procid_valid(const struct server_id *pid)
 
 bool procid_is_local(const struct server_id *pid)
 {
-#ifdef CLUSTER_SUPPORT
 	return pid->vnn == my_vnn;
-#else
-	return True;
-#endif
 }
 
 /****************************************************************
diff --git a/source3/librpc/idl/messaging.idl b/source3/librpc/idl/messaging.idl
index 0ac7220..36f064f 100644
--- a/source3/librpc/idl/messaging.idl
+++ b/source3/librpc/idl/messaging.idl
@@ -1,11 +1,12 @@
 #include "idl_types.h"
 
+import "server_id.idl";
+
 /*
    IDL structures for messaging code
 */
 
 [
-  helper("../librpc/ndr/ndr_server_id.h"),
   pointer_default(unique)
 ]
 interface messaging
diff --git a/source3/librpc/idl/notify.idl b/source3/librpc/idl/notify.idl
index d65e8c5..0776ed1 100644
--- a/source3/librpc/idl/notify.idl
+++ b/source3/librpc/idl/notify.idl
@@ -1,6 +1,6 @@
 #include "idl_types.h"
 
-import "file_id.idl";
+import "file_id.idl", "server_id.idl";
 
 /*
    IDL structures for notify change code
@@ -10,7 +10,6 @@ import "file_id.idl";
 */
 
 [
-  helper("../librpc/ndr/ndr_server_id.h"),
   pointer_default(unique)
 ]
 interface notify
diff --git a/source3/librpc/idl/server_id.idl b/source3/librpc/idl/server_id.idl
new file mode 100644
index 0000000..ed72788
--- /dev/null
+++ b/source3/librpc/idl/server_id.idl
@@ -0,0 +1,25 @@
+[
+	pointer_default(unique)
+]
+interface server_id
+{
+
+	/* used to look like the following, note that unique_id was not
+	 * marshalled at all...
+
+	struct server_id {
+		pid_t pid;
+	#ifdef CLUSTER_SUPPORT
+		uint32 vnn;
+	#endif
+		uint64_t unique_id;
+	};
+
+	*/
+
+	typedef [public] struct {
+		uint32 pid;
+		uint32 vnn;
+		udlong unique_id;
+	} server_id;
+}
diff --git a/source3/librpc/idl/wscript_build b/source3/librpc/idl/wscript_build
index a337f4f..e24475b 100644
--- a/source3/librpc/idl/wscript_build
+++ b/source3/librpc/idl/wscript_build
@@ -2,7 +2,7 @@
 
 bld.SAMBA_PIDL_LIST('PIDL',
                     '''messaging.idl libnetapi.idl notify.idl
-                       perfcount.idl secrets.idl libnet_join.idl''',
+                       perfcount.idl secrets.idl libnet_join.idl server_id.idl''',
                     options='--includedir=../librpc/idl --header --ndr-parser',
                     output_dir='../gen_ndr')
 
diff --git a/source3/librpc/ndr/ndr_server_id.c b/source3/librpc/ndr/ndr_server_id.c
deleted file mode 100644
index a6152d7..0000000
--- a/source3/librpc/ndr/ndr_server_id.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
-   Unix SMB/CIFS implementation.
-
-   libndr interface
-
-   Copyright (C) Andrew Tridgell 2003
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include "includes.h"
-#include "librpc/ndr/ndr_server_id.h"
-
-enum ndr_err_code ndr_push_server_id(struct ndr_push *ndr, int ndr_flags, const struct server_id *r)
-{
-	if (ndr_flags & NDR_SCALARS) {
-		NDR_CHECK(ndr_push_align(ndr, 4));
-		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS,
-					  (uint32_t)r->pid));
-#ifdef CLUSTER_SUPPORT
-		NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS,
-					  (uint32_t)r->vnn));
-#endif
-	}
-	if (ndr_flags & NDR_BUFFERS) {
-	}
-	return NDR_ERR_SUCCESS;
-}
-
-enum ndr_err_code ndr_pull_server_id(struct ndr_pull *ndr, int ndr_flags, struct server_id *r)
-{
-	if (ndr_flags & NDR_SCALARS) {
-		uint32_t pid;
-		NDR_CHECK(ndr_pull_align(ndr, 4));
-		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &pid));
-#ifdef CLUSTER_SUPPORT
-		NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->vnn));
-#endif
-		r->pid = (pid_t)pid;
-	}
-	if (ndr_flags & NDR_BUFFERS) {
-	}
-	return NDR_ERR_SUCCESS;
-}
-
-void ndr_print_server_id(struct ndr_print *ndr, const char *name, const struct server_id *r)
-{
-	ndr_print_struct(ndr, name, "server_id");
-	ndr->depth++;
-	ndr_print_uint32(ndr, "id", (uint32_t)r->pid);
-#ifdef CLUSTER_SUPPORT
-	ndr_print_uint32(ndr, "vnn", (uint32_t)r->vnn);
-#endif
-	ndr->depth--;
-}
diff --git a/source3/librpc/ndr/ndr_server_id.h b/source3/librpc/ndr/ndr_server_id.h
deleted file mode 100644
index 5975abc..0000000
--- a/source3/librpc/ndr/ndr_server_id.h
+++ /dev/null
@@ -1,6 +0,0 @@
-
-/* The following definitions come from librpc/ndr/ndr_server_id.c  */
-
-enum ndr_err_code ndr_push_server_id(struct ndr_push *ndr, int ndr_flags, const struct server_id *r);
-enum ndr_err_code ndr_pull_server_id(struct ndr_pull *ndr, int ndr_flags, struct server_id *r);
-void ndr_print_server_id(struct ndr_print *ndr, const char *name, const struct server_id *r);
diff --git a/source3/librpc/wscript_build b/source3/librpc/wscript_build
index a07d4bc..4cd98a7 100644
--- a/source3/librpc/wscript_build
+++ b/source3/librpc/wscript_build
@@ -11,7 +11,7 @@ bld.SAMBA_SUBSYSTEM('NDR_LIBNET_JOIN',
 	)
 
 bld.SAMBA_SUBSYSTEM('NDR_SERVER_ID',
-	source='ndr/ndr_server_id.c',
+	source='gen_ndr/ndr_server_id.c',
 	public_deps='ndr'
 	)
 
diff --git a/source3/passdb/pdb_ipa.c b/source3/passdb/pdb_ipa.c
index 3108c5e..9e52e95 100644
--- a/source3/passdb/pdb_ipa.c
+++ b/source3/passdb/pdb_ipa.c
@@ -705,7 +705,7 @@ static NTSTATUS ipasam_enum_trusteddoms(struct pdb_methods *methods,
 
 static uint32_t pdb_ipasam_capabilities(struct pdb_methods *methods)
 {
-	return PDB_CAP_STORE_RIDS | PDB_CAP_ADS;
+	return PDB_CAP_STORE_RIDS | PDB_CAP_ADS | PDB_CAP_TRUSTED_DOMAINS_EX;
 }
 
 static struct pdb_domain_info *pdb_ipasam_get_domain_info(struct pdb_methods *pdb_methods,
diff --git a/source3/rpc_server/lsa/srv_lsa_nt.c b/source3/rpc_server/lsa/srv_lsa_nt.c
index 9f05433..02cdc21 100644
--- a/source3/rpc_server/lsa/srv_lsa_nt.c
+++ b/source3/rpc_server/lsa/srv_lsa_nt.c
@@ -40,6 +40,7 @@
 #include "../librpc/gen_ndr/ndr_drsblobs.h"
 #include "../lib/crypto/arcfour.h"
 #include "../libcli/security/dom_sid.h"
+#include "../librpc/gen_ndr/ndr_security.h"
 
 #undef DBGC_CLASS
 #define DBGC_CLASS DBGC_RPC_SRV
@@ -2835,13 +2836,11 @@ NTSTATUS _lsa_QuerySecurity(struct pipes_struct *p,
 
 	switch (handle->type) {
 	case LSA_HANDLE_POLICY_TYPE:
-		status = make_lsa_object_sd(p->mem_ctx, &psd, &sd_size,
-				&lsa_policy_mapping, NULL, 0);
-		break;
 	case LSA_HANDLE_ACCOUNT_TYPE:
-		status = make_lsa_object_sd(p->mem_ctx, &psd, &sd_size,
-				&lsa_account_mapping,
-				&handle->sid, LSA_ACCOUNT_ALL_ACCESS);
+	case LSA_HANDLE_TRUST_TYPE:
+		psd = handle->sd;
+		sd_size = ndr_size_security_descriptor(psd, 0);
+		status = NT_STATUS_OK;
 		break;
 	default:
 		status = NT_STATUS_INVALID_HANDLE;
@@ -3297,6 +3296,15 @@ NTSTATUS _lsa_EnumTrustedDomainsEx(struct pipes_struct *p,
 	int i;
 	NTSTATUS nt_status;
 
+	/* bail out early if pdb backend is not capable of ex trusted domains,
+	 * if we dont do that, the client might not call
+	 * _lsa_EnumTrustedDomains() afterwards - gd */
+
+	if (!(pdb_capabilities() & PDB_CAP_TRUSTED_DOMAINS_EX)) {
+		p->rng_fault_state = True;
+		return NT_STATUS_NOT_IMPLEMENTED;
+	}
+
 	if (!find_policy_by_hnd(p, r->in.handle, (void **)(void *)&info))
 		return NT_STATUS_INVALID_HANDLE;
 
diff --git a/source3/smbd/oplock.c b/source3/smbd/oplock.c
index a2ba010..4e5237e 100644
--- a/source3/smbd/oplock.c
+++ b/source3/smbd/oplock.c
@@ -887,9 +887,7 @@ void share_mode_entry_to_message(char *msg, const struct share_mode_entry *e)
 	SIVAL(msg,OP_BREAK_MSG_UID_OFFSET,e->uid);
 	SSVAL(msg,OP_BREAK_MSG_FLAGS_OFFSET,e->flags);
 	SIVAL(msg,OP_BREAK_MSG_NAME_HASH_OFFSET,e->name_hash);
-#ifdef CLUSTER_SUPPORT
 	SIVAL(msg,OP_BREAK_MSG_VNN_OFFSET,e->pid.vnn);
-#endif
 }
 
 /****************************************************************************
@@ -911,9 +909,7 @@ void message_to_share_mode_entry(struct share_mode_entry *e, char *msg)
 	e->uid = (uint32)IVAL(msg,OP_BREAK_MSG_UID_OFFSET);
 	e->flags = (uint16)SVAL(msg,OP_BREAK_MSG_FLAGS_OFFSET);
 	e->name_hash = IVAL(msg,OP_BREAK_MSG_NAME_HASH_OFFSET);
-#ifdef CLUSTER_SUPPORT
 	e->pid.vnn = IVAL(msg,OP_BREAK_MSG_VNN_OFFSET);
-#endif
 }
 
 /****************************************************************************
diff --git a/source3/utils/net_serverid.c b/source3/utils/net_serverid.c
index 0561b84..ab4da1d 100644
--- a/source3/utils/net_serverid.c
+++ b/source3/utils/net_serverid.c
@@ -44,11 +44,9 @@ static int net_serverid_wipe_fn(struct db_record *rec,
 {
 	NTSTATUS status;
 
-#ifdef CLUSTER_SUPPORT
 	if (id->vnn != get_my_vnn()) {
 		return 0;
 	}
-#endif
 	status = rec->delete_rec(rec);
 	if (!NT_STATUS_IS_OK(status)) {
 		char *str = procid_str(talloc_tos(), id);
diff --git a/source4/torture/ndr/spoolss.c b/source4/torture/ndr/spoolss.c
index 2c525d9..f785af6 100644
--- a/source4/torture/ndr/spoolss.c
+++ b/source4/torture/ndr/spoolss.c
@@ -219,6 +219,725 @@ static const uint8_t enumprinterdataex_out_data[] = {
   0xea, 0x00, 0x00, 0x00
 };
 
+static const uint8_t enumprinterdataex_w2k8r2_in_data[] = {
+	0x00, 0x00, 0x00, 0x00, 0x62, 0x2a, 0xa4, 0x60, 0x12, 0x99, 0xea, 0x4f,
+	0x88, 0xc9, 0xea, 0x0d, 0xb7, 0xc3, 0x61, 0x99, 0x12, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x50, 0x00, 0x72, 0x00,
+	0x69, 0x00, 0x6e, 0x00, 0x74, 0x00, 0x65, 0x00, 0x72, 0x00, 0x44, 0x00,
+	0x72, 0x00, 0x69, 0x00, 0x76, 0x00, 0x65, 0x00, 0x72, 0x00, 0x44, 0x00,
+	0x61, 0x00, 0x74, 0x00, 0x61, 0x00, 0x00, 0x00, 0x0c, 0x21, 0x00, 0x00
+};
+
+static const uint8_t enumprinterdataex_w2k8r2_out_data[] = {
+	0x0c, 0x21, 0x00, 0x00, 0xf4, 0x01, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00,
+	0x04, 0x00, 0x00, 0x00, 0x18, 0x02, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
+	0x08, 0x02, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
+	0x18, 0x02, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00,


-- 
Samba Shared Repository


More information about the samba-cvs mailing list