diff options
Diffstat (limited to 'source4')
-rw-r--r-- | source4/librpc/idl/eventlog.idl | 24 | ||||
-rw-r--r-- | source4/torture/rpc/eventlog.c | 24 |
2 files changed, 38 insertions, 10 deletions
diff --git a/source4/librpc/idl/eventlog.idl b/source4/librpc/idl/eventlog.idl index 574868ab94..a8eba4ae16 100644 --- a/source4/librpc/idl/eventlog.idl +++ b/source4/librpc/idl/eventlog.idl @@ -1,17 +1,31 @@ /* eventlog interface definition */ -[ uuid(82273fdc-e32a-17c3-3f78-827929dc23ea), - version(1.0), +[ uuid(82273fdc-e32a-18c3-3f78-827929dc23ea), + version(0.0), pointer_default(unique) ] interface eventlog { + typedef struct { + uint16 unknown0; + uint16 unknown1; + } eventlog_OpenUnknown0; + + typedef struct { + [value(2*strlen_m(r->name))] uint16 name_len; + [value(r->name_len)] uint16 name_size; + unistr_noterm *name; + } eventlog_String; + /******************/ /* Function: 0x00 */ NTSTATUS eventlog_OpenEventLog( - [in] unistr *servername, - [in] unistr *sourcename, - [out,ref] policy_handle *handle + [in] eventlog_OpenUnknown0 *unknown0, + [in] eventlog_String source, + [in] eventlog_String unknown1, + [in] uint32 unknown2, + [in] uint32 unknown3, + [out,ref] policy_handle *handle ); /******************/ diff --git a/source4/torture/rpc/eventlog.c b/source4/torture/rpc/eventlog.c index 8f357e7987..14b091a0c3 100644 --- a/source4/torture/rpc/eventlog.c +++ b/source4/torture/rpc/eventlog.c @@ -21,6 +21,13 @@ #include "includes.h" +static void init_eventlog_String(struct eventlog_String *name, const char *s) +{ + name->name = s; + name->name_len = 2*strlen_m(s); + name->name_size = name->name_len; +} + BOOL test_CloseEventLog(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct policy_handle *handle) { @@ -44,12 +51,19 @@ static BOOL test_OpenEventLog(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx) { NTSTATUS status; struct eventlog_OpenEventLog r; + struct eventlog_OpenUnknown0 unknown0; struct policy_handle handle; printf("\ntesting OpenEventLog\n"); - r.in.servername = dcerpc_server_name(p); - r.out.handle = &handle; + unknown0.unknown0 = 0x005c; + unknown0.unknown1 = 0x0001; + + r.in.unknown0 = &unknown0; + init_eventlog_String(&r.in.source, "system"); + init_eventlog_String(&r.in.unknown1, NULL); + r.in.unknown2 = 0x00000001; + r.in.unknown3 = 0x00000001; status = dcerpc_eventlog_OpenEventLog(p, mem_ctx, &r); @@ -74,9 +88,9 @@ BOOL torture_rpc_eventlog(int dummy) mem_ctx = talloc_init("torture_rpc_atsvc"); status = torture_rpc_connection(&p, - DCERPC_ATSVC_NAME, - DCERPC_ATSVC_UUID, - DCERPC_ATSVC_VERSION); + DCERPC_EVENTLOG_NAME, + DCERPC_EVENTLOG_UUID, + DCERPC_EVENTLOG_VERSION); if (!NT_STATUS_IS_OK(status)) { return False; } |