[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