summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/librpc/idl/lsa.idl7
-rw-r--r--source4/torture/rpc/lsa.c9
2 files changed, 12 insertions, 4 deletions
diff --git a/source4/librpc/idl/lsa.idl b/source4/librpc/idl/lsa.idl
index fecb1b00d2..fe3aa1d51b 100644
--- a/source4/librpc/idl/lsa.idl
+++ b/source4/librpc/idl/lsa.idl
@@ -458,10 +458,11 @@
NTSTATUS lsa_LookupPrivDisplayName (
[in,ref] policy_handle *handle,
[in,ref] lsa_Name *name,
- [in] uint16 unknown, /* 0x0409 */
- [in] uint16 unknown2, /* 0x0409 */
[out] lsa_Name *disp_name,
- [out] uint16 unknown3 /* 0x0409 */
+ /* see http://www.microsoft.com/globaldev/nlsweb/ for
+ language definitions */
+ [in,out,ref] uint16 *language_id,
+ [in] uint16 unknown
);
/* Function: 0x22 */
diff --git a/source4/torture/rpc/lsa.c b/source4/torture/rpc/lsa.c
index 5a306fef4d..135e50fb5a 100644
--- a/source4/torture/rpc/lsa.c
+++ b/source4/torture/rpc/lsa.c
@@ -642,19 +642,26 @@ static BOOL test_LookupPrivDisplayName(struct dcerpc_pipe *p,
{
struct lsa_LookupPrivDisplayName r;
NTSTATUS status;
+ /* produce a reasonable range of language output without screwing up
+ terminals */
+ uint16 language_id = (random() % 4) + 0x409;
printf("testing LookupPrivDisplayName(%s)\n", priv_name->name);
r.in.handle = handle;
r.in.name = priv_name;
+ r.in.language_id = &language_id;
+ r.out.language_id = &language_id;
r.in.unknown = 0;
- r.in.unknown2 = 0;
status = dcerpc_lsa_LookupPrivDisplayName(p, mem_ctx, &r);
if (!NT_STATUS_IS_OK(status)) {
printf("LookupPrivDisplayName failed - %s\n", nt_errstr(status));
return False;
}
+ printf("%s -> \"%s\" (language 0x%x/0x%x)\n",
+ priv_name->name, r.out.disp_name->name,
+ *r.in.language_id, *r.out.language_id);
return True;
}