Example #1
0
static bool test_JobEnum(struct torture_context *tctx, struct dcerpc_pipe *p)
{
	NTSTATUS status;
	struct atsvc_JobEnum r;
	struct atsvc_enum_ctr ctr;
	uint32_t resume_handle = 0, i, total_entries = 0;
	
	bool ret = true;

	r.in.servername = dcerpc_server_name(p);
	ctr.entries_read = 0;
	ctr.first_entry = NULL;
	r.in.ctr = r.out.ctr = &ctr;
	r.in.preferred_max_len = 0xffffffff;
	r.in.resume_handle = r.out.resume_handle = &resume_handle;
	r.out.total_entries = &total_entries;

	status = dcerpc_atsvc_JobEnum(p, tctx, &r);

	torture_assert_ntstatus_ok(tctx, status, "JobEnum failed");

	for (i = 0; i < r.out.ctr->entries_read; i++) {
		if (!test_JobGetInfo(p, tctx, r.out.ctr->first_entry[i].job_id)) {
			ret = false;
		}
	}

	return ret;
}
Example #2
0
static void update_joblist(void)
{
	TALLOC_CTX *mem_ctx = talloc_init("update_joblist");
	NTSTATUS status;
	struct atsvc_JobEnum r;
	struct atsvc_enum_ctr ctr;
	int i;
	uint32_t resume_handle = 0;

	gtk_list_store_clear(store_jobs);

	ctr.entries_read = 0;
	ctr.first_entry = NULL;
	r.in.servername = dcerpc_server_name(at_pipe);
	r.in.ctr = r.out.ctr = &ctr;
	r.in.preferred_max_len = 0xffffffff;
	r.in.resume_handle = r.out.resume_handle = &resume_handle;

	status = dcerpc_atsvc_JobEnum(at_pipe, mem_ctx, &r);
	if(!NT_STATUS_IS_OK(status)) {
		gtk_show_ntstatus(mainwin, "Error while enumerating first job", status);
		return;
	}

       	for (i = 0; i < r.out.ctr->entries_read; i++) {
                GtkTreeIter iter;
                gtk_list_store_append(store_jobs, &iter);
                gtk_list_store_set (store_jobs, &iter, 
			0, r.out.ctr->first_entry[i].flags,
			1, r.out.ctr->first_entry[i].job_id, 
			2, r.out.ctr->first_entry[i].days_of_week, /*FIXME: Nicer format */
			3, r.out.ctr->first_entry[i].job_time, /* FIXME: Nicer format */
			4, r.out.ctr->first_entry[i].command,
                        -1);

	}
	talloc_free(mem_ctx);
}