summaryrefslogtreecommitdiff
path: root/source3/winbindd/winbindd_async.c
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2009-08-29 17:17:47 +0200
committerVolker Lendecke <vl@samba.org>2009-08-29 19:53:46 +0200
commit2774a02f64a57d981924e0fc65b23060803cc469 (patch)
treead55994d97fe1dbbe7ed2c271ff87b255a26570b /source3/winbindd/winbindd_async.c
parent6b474c56a5a1cfaf11dec1c35c7510ba06f175b1 (diff)
downloadsamba-2774a02f64a57d981924e0fc65b23060803cc469.tar.gz
samba-2774a02f64a57d981924e0fc65b23060803cc469.tar.bz2
samba-2774a02f64a57d981924e0fc65b23060803cc469.zip
s3:winbind: Convert WINBINDD_LIST_GROUPS to the new API
Diffstat (limited to 'source3/winbindd/winbindd_async.c')
-rw-r--r--source3/winbindd/winbindd_async.c180
1 files changed, 0 insertions, 180 deletions
diff --git a/source3/winbindd/winbindd_async.c b/source3/winbindd/winbindd_async.c
index 1e63ed1fec..6c5d92e71b 100644
--- a/source3/winbindd/winbindd_async.c
+++ b/source3/winbindd/winbindd_async.c
@@ -454,163 +454,6 @@ enum winbindd_result winbindd_dual_lookupname(struct winbindd_domain *domain,
return WINBINDD_OK;
}
-/* This is the first callback after enumerating users/groups from a domain */
-static void listent_recv(TALLOC_CTX *mem_ctx, bool success,
- struct winbindd_response *response,
- void *c, void *private_data)
-{
- void (*cont)(void *priv, bool succ, fstring dom_name, char *data) =
- (void (*)(void *, bool, fstring, char*))c;
-
- if (!success || response->result != WINBINDD_OK) {
- DEBUG(5, ("list_ent() failed!\n"));
- cont(private_data, False, response->data.name.dom_name, NULL);
- return;
- }
-
- cont(private_data, True, response->data.name.dom_name,
- (char *)response->extra_data.data);
-}
-
-/* Request the name of all users/groups in a single domain */
-void winbindd_listent_async(TALLOC_CTX *mem_ctx,
- struct winbindd_domain *domain,
- void (*cont)(void *private_data, bool success,
- fstring dom_name, char* extra_data),
- void *private_data, enum ent_type type)
-{
- struct winbindd_request request;
-
- ZERO_STRUCT(request);
- if (type == LIST_USERS)
- request.cmd = WINBINDD_LIST_USERS;
- else if (type == LIST_GROUPS)
- request.cmd = WINBINDD_LIST_GROUPS;
-
- do_async_domain(mem_ctx, domain, &request, listent_recv,
- (void *)cont, private_data);
-}
-
-enum winbindd_result winbindd_dual_list_users(struct winbindd_domain *domain,
- struct winbindd_cli_state *state)
-{
- struct wbint_userinfo *info;
- NTSTATUS status;
- struct winbindd_methods *methods;
- uint32 num_entries = 0;
- char *extra_data;
- uint32_t extra_data_len = 0, i;
-
- /* Must copy domain into response first for debugging in parent */
- fstrcpy(state->response->data.name.dom_name, domain->name);
-
- /* Query user info */
- methods = domain->methods;
- status = methods->query_user_list(domain, state->mem_ctx,
- &num_entries, &info);
-
- if (!NT_STATUS_IS_OK(status))
- return WINBINDD_ERROR;
-
- if (num_entries == 0)
- return WINBINDD_OK;
-
- /* Allocate some memory for extra data. Note that we limit
- account names to sizeof(fstring) = 256 characters.
- +1 for the ',' between group names */
- extra_data = talloc_array(state->mem_ctx, char,
- (sizeof(fstring) + 1) * num_entries);
-
- if (!extra_data) {
- DEBUG(0,("failed to enlarge buffer!\n"));
- return WINBINDD_ERROR;
- }
-
- /* Pack user list into extra data fields */
- for (i = 0; i < num_entries; i++) {
- fstring acct_name, name;
-
- if (info[i].acct_name == NULL)
- fstrcpy(acct_name, "");
- else
- fstrcpy(acct_name, info[i].acct_name);
-
- fill_domain_username(name, domain->name, acct_name, True);
- /* Append to extra data */
- memcpy(&extra_data[extra_data_len], name, strlen(name));
- extra_data_len += strlen(name);
- extra_data[extra_data_len++] = ',';
- }
-
- /* Assign extra_data fields in response structure */
- if (extra_data) {
- /* remove trailing ',' */
- extra_data[extra_data_len - 1] = '\0';
- state->response->extra_data.data = extra_data;
- state->response->length += extra_data_len;
- }
-
- return WINBINDD_OK;
-}
-
-enum winbindd_result winbindd_dual_list_groups(struct winbindd_domain *domain,
- struct winbindd_cli_state *state)
-{
- struct getent_state groups;
- char *extra_data;
- uint32_t extra_data_len = 0, i;
-
- ZERO_STRUCT(groups);
-
- /* Must copy domain into response first for debugging in parent */
- fstrcpy(state->response->data.name.dom_name, domain->name);
- fstrcpy(groups.domain_name, domain->name);
-
- /* Get list of sam groups */
- if (!get_sam_group_entries(&groups)) {
- /* this domain is empty or in an error state */
- return WINBINDD_ERROR;
- }
-
- /* Allocate some memory for extra data. Note that we limit
- account names to sizeof(fstring) = 256 characters.
- +1 for the ',' between group names */
- extra_data = talloc_array(
- state->mem_ctx, char,
- (sizeof(fstring) + 1) * groups.num_sam_entries);
-
- if (!extra_data) {
- DEBUG(0,("failed to enlarge buffer!\n"));
- SAFE_FREE(groups.sam_entries);
- return WINBINDD_ERROR;
- }
-
- /* Pack group list into extra data fields */
- for (i = 0; i < groups.num_sam_entries; i++) {
- char *group_name = ((struct acct_info *)
- groups.sam_entries)[i].acct_name;
- fstring name;
-
- fill_domain_username(name, domain->name, group_name, True);
- /* Append to extra data */
- memcpy(&extra_data[extra_data_len], name, strlen(name));
- extra_data_len += strlen(name);
- extra_data[extra_data_len++] = ',';
- }
-
- SAFE_FREE(groups.sam_entries);
-
- /* Assign extra_data fields in response structure */
- if (extra_data) {
- /* remove trailing ',' */
- extra_data[extra_data_len - 1] = '\0';
- state->response->extra_data.data = extra_data;
- state->response->length += extra_data_len;
- }
-
- return WINBINDD_OK;
-}
-
bool print_sidlist(TALLOC_CTX *mem_ctx, const DOM_SID *sids,
size_t num_sids, char **result, ssize_t *len)
{
@@ -671,29 +514,6 @@ bool parse_sidlist(TALLOC_CTX *mem_ctx, const char *sidstr,
return True;
}
-static bool parse_ridlist(TALLOC_CTX *mem_ctx, char *ridstr,
- uint32 **rids, size_t *num_rids)
-{
- char *p;
-
- p = ridstr;
- if (p == NULL)
- return False;
-
- while (p[0] != '\0') {
- uint32 rid;
- char *q;
- rid = strtoul(p, &q, 10);
- if (*q != '\n') {
- DEBUG(0, ("Got invalid ridstr: %s\n", p));
- return False;
- }
- p = q+1;
- ADD_TO_ARRAY(mem_ctx, uint32, rid, rids, num_rids);
- }
- return True;
-}
-
static void getsidaliases_recv(TALLOC_CTX *mem_ctx, bool success,
struct winbindd_response *response,
void *c, void *private_data)