char *domain_name;
uint32_t resume_index;
char *result;
+ uint32_t num_groups;
};
static void cmd_list_groups_recv_domain(struct composite_context *ctx);
result->private_data = state;
state->service = service;
state->resume_index = 0;
+ state->num_groups = 0;
state->result = talloc_strdup(state, "");
if (composite_nomem(state->result, state->ctx)) return result;
state->result = talloc_asprintf_append_buffer(state->result,
"%s,",
group_list->out.groups[i].groupname);
+ state->num_groups++;
}
/* If the status is OK, we're finished, there's no more groups.
NTSTATUS wb_cmd_list_groups_recv(struct composite_context *ctx,
TALLOC_CTX *mem_ctx, uint32_t *extra_data_len,
- char **extra_data)
+ char **extra_data, uint32_t *num_groups)
{
NTSTATUS status = composite_wait(ctx);
*extra_data_len = strlen(state->result);
*extra_data = talloc_steal(mem_ctx, state->result);
+ *num_groups = state->num_groups;
}
talloc_free(ctx);
struct wbsrv_samba3_call);
uint32_t extra_data_len;
char *extra_data;
+ uint32_t num_groups;
NTSTATUS status;
DEBUG(5, ("list_groups_recv called\n"));
status = wb_cmd_list_groups_recv(ctx, s3call, &extra_data_len,
- &extra_data);
+ &extra_data, &num_groups);
if (NT_STATUS_IS_OK(status)) {
s3call->response.extra_data.data = extra_data;
s3call->response.length += extra_data_len;
if (extra_data) {
s3call->response.length += 1;
+ s3call->response.data.num_entries = num_groups;
}
}