コード例 #1
0
ファイル: cmd_eventlog.c プロジェクト: Alexandr-Galko/samba
static NTSTATUS cmd_eventlog_numrecords(struct rpc_pipe_client *cli,
					TALLOC_CTX *mem_ctx,
					int argc,
					const char **argv)
{
	NTSTATUS status, result;
	struct policy_handle handle;
	uint32_t number = 0;
	struct dcerpc_binding_handle *b = cli->binding_handle;

	if (argc != 2) {
		printf("Usage: %s logname\n", argv[0]);
		return NT_STATUS_OK;
	}

	status = get_eventlog_handle(cli, mem_ctx, argv[1], &handle);
	if (!NT_STATUS_IS_OK(status)) {
		return status;
	}

	status = dcerpc_eventlog_GetNumRecords(b, mem_ctx,
					       &handle,
					       &number,
					       &result);
	if (!NT_STATUS_IS_OK(status)) {
		goto done;
	}
	if (!NT_STATUS_IS_OK(result)) {
		status = result;
		goto done;
	}

	printf("number of records: %d\n", number);

 done:
	dcerpc_eventlog_CloseEventLog(b, mem_ctx, &handle, &result);

	return status;
}
コード例 #2
0
ファイル: eventlog.c プロジェクト: Marvin-Lee/libwmiclient
static bool test_GetNumRecords(struct torture_context *tctx, struct dcerpc_pipe *p)
{
	struct eventlog_GetNumRecords r;
	struct eventlog_CloseEventLog cr;
	struct policy_handle handle;

	if (!get_policy_handle(tctx, p, &handle))
		return false;

	r.in.handle = &handle;

	torture_assert_ntstatus_ok(tctx, 
			dcerpc_eventlog_GetNumRecords(p, tctx, &r), 
			"GetNumRecords failed");

	torture_comment(tctx, talloc_asprintf(tctx, "%d records\n", *r.out.number));

	cr.in.handle = cr.out.handle = &handle;

	torture_assert_ntstatus_ok(tctx, 
					dcerpc_eventlog_CloseEventLog(p, tctx, &cr), 
					"CloseEventLog failed");
	return true;
}