[SCM] Samba Shared Repository - branch v3-4-test updated -
release-4-0-0alpha7-472-g9575c97
Günther Deschner
gd at samba.org
Wed Mar 18 09:36:28 GMT 2009
The branch, v3-4-test has been updated
via 9575c97439c0e691f87a6cb094bdc5c9d464c3ce (commit)
via b60698bfbe5a3656c89d600453b198c003220227 (commit)
from 38a225667ee7e59d4fcf090255a077c0660130ea (commit)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-4-test
- Log -----------------------------------------------------------------
commit 9575c97439c0e691f87a6cb094bdc5c9d464c3ce
Author: Günther Deschner <gd at samba.org>
Date: Wed Mar 18 03:00:37 2009 +0100
s4-smbtorture: fix spoolss_EnumPrinterKey callers in RPC-SPOOLSS-WIN test.
Kai, please check.
Guenther
(cherry picked from commit 342b436691a99fc6c4fb6606e7148e5c7ddd56c1)
commit b60698bfbe5a3656c89d600453b198c003220227
Author: Günther Deschner <gd at samba.org>
Date: Wed Mar 18 03:11:37 2009 +0100
spoolss: fix ndr_push_spoolss_EnumPrinterDataEx.
Guenther
(cherry picked from commit 048013ddaa8b5c65ae6db0d8dbfd1e7082f75fc5)
-----------------------------------------------------------------------
Summary of changes:
librpc/ndr/ndr_spoolss_buf.c | 1 +
source4/torture/rpc/spoolss_win.c | 35 ++++++++++++-----------------------
2 files changed, 13 insertions(+), 23 deletions(-)
Changeset truncated at 500 lines:
diff --git a/librpc/ndr/ndr_spoolss_buf.c b/librpc/ndr/ndr_spoolss_buf.c
index 16a9b1b..97624d3 100644
--- a/librpc/ndr/ndr_spoolss_buf.c
+++ b/librpc/ndr/ndr_spoolss_buf.c
@@ -458,6 +458,7 @@ enum ndr_err_code ndr_push_spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int f
_r.out.count = r->out.count;
_r.out.needed = r->out.needed;
_r.out.result = r->out.result;
+ _r.out.info = data_blob(NULL, 0);
if (r->in.offered >= *r->out.needed) {
struct __spoolss_EnumPrinterDataEx __r;
_ndr_info = ndr_push_init_ctx(ndr, ndr->iconv_convenience);
diff --git a/source4/torture/rpc/spoolss_win.c b/source4/torture/rpc/spoolss_win.c
index 5624e68..c50cbfb 100644
--- a/source4/torture/rpc/spoolss_win.c
+++ b/source4/torture/rpc/spoolss_win.c
@@ -33,7 +33,7 @@ struct test_spoolss_win_context {
union spoolss_PrinterInfo *current_info;
/* EnumPrinterKeys */
- char *printer_keys;
+ const char **printer_keys;
};
/* This is a convenience function for all OpenPrinterEx calls */
@@ -389,9 +389,7 @@ static bool test_EnumPrinterKey(struct torture_context *tctx,
torture_assert_werr_ok(tctx, epk.out.result, "EnumPrinterKey failed");
- convert_string_talloc_convenience(ctx, lp_iconv_convenience(tctx->lp_ctx), CH_UTF16,
- CH_UNIX, epk.out.key_buffer, *epk.out.needed,
- (void**)&ctx->printer_keys, NULL, false);
+ ctx->printer_keys = key_buffer;
return true;
}
@@ -458,7 +456,7 @@ static bool test_WinXP(struct torture_context *tctx, struct dcerpc_pipe *p)
* code, the unused_handle structures are used for that. */
struct policy_handle unused_handle1, unused_handle2;
char *server_name;
- char *key_pointer;
+ uint32_t i;
ntvfs_init(tctx->lp_ctx);
@@ -533,24 +531,15 @@ static bool test_WinXP(struct torture_context *tctx, struct dcerpc_pipe *p)
ret &= test_EnumForms(tctx, p, &handle03, 0);
ret &= test_EnumPrinterKey(tctx, p, &handle03, "", ctx);
- key_pointer = ctx->printer_keys;
- while(*key_pointer != '\0') {
- char *end_pointer;
- char *key_name;
-
- for(end_pointer = key_pointer; *end_pointer != '\0';
- ++end_pointer) {
- /* Do nothing, just move the pointer */
- }
- key_name = talloc_strndup(tctx, key_pointer,
- end_pointer - key_pointer);
-
- ret &= test_EnumPrinterKey(tctx, p, &handle03, key_name,
- tmp_ctx);
- ret &= test_EnumPrinterDataEx(tctx, p, &handle03, key_name, 0,
- WERR_OK);
-
- key_pointer = ++end_pointer;
+
+ for (i=0; ctx->printer_keys[i] != NULL; i++) {
+
+ ret &= test_EnumPrinterKey(tctx, p, &handle03,
+ ctx->printer_keys[i],
+ tmp_ctx);
+ ret &= test_EnumPrinterDataEx(tctx, p, &handle03,
+ ctx->printer_keys[i], 0,
+ WERR_OK);
}
ret &= test_EnumPrinterDataEx(tctx, p, &handle03, "", 0,
--
Samba Shared Repository
More information about the samba-cvs
mailing list