*id_to_*id call reshape to return NTSTATUS errors
[ira/wip.git] / source3 / nsswitch / winbindd_group.c
index 02114a3891066d353acc44b62b61b0c27506391c..14ebb7846682e2fbeca65c2a6a65f4ecf333bd5e 100644 (file)
@@ -194,8 +194,7 @@ enum winbindd_result winbindd_getgrnam(struct winbindd_cli_state *state)
        fstring name_domain, name_group;
        char *tmp, *gr_mem;
        int gr_mem_len;
-       unid_t id;
-       int id_type;
+       gid_t gid;
        
        /* Ensure null termination */
        state->request.data.groupname[sizeof(state->request.data.groupname)-1]='\0';
@@ -234,14 +233,13 @@ enum winbindd_result winbindd_getgrnam(struct winbindd_cli_state *state)
                return WINBINDD_ERROR;
        }
 
-       id_type = ID_GROUPID;
-       if (NT_STATUS_IS_ERR(idmap_get_id_from_sid(&id, &id_type, &group_sid))) {
+       if (NT_STATUS_IS_ERR(sid_to_gid(&group_sid, &gid))) {
                DEBUG(1, ("error converting unix gid to sid\n"));
                return WINBINDD_ERROR;
        }
 
        if (!fill_grent(&state->response.data.gr, name_domain,
-                       name_group, id.gid) ||
+                       name_group, gid) ||
            !fill_grent_mem(domain, &group_sid, name_type,
                            &state->response.data.gr.num_gr_mem,
                            &gr_mem, &gr_mem_len)) {
@@ -269,7 +267,6 @@ enum winbindd_result winbindd_getgrgid(struct winbindd_cli_state *state)
        fstring group_name;
        int gr_mem_len;
        char *gr_mem;
-       unid_t id;
 
        DEBUG(3, ("[%5d]: getgrgid %d\n", state->pid, 
                  state->request.data.gid));
@@ -281,8 +278,7 @@ enum winbindd_result winbindd_getgrgid(struct winbindd_cli_state *state)
                return WINBINDD_ERROR;
 
        /* Get rid from gid */
-       id.gid = state->request.data.gid;
-       if (NT_STATUS_IS_ERR(idmap_get_sid_from_id(&group_sid, id, ID_GROUPID))) {
+       if (NT_STATUS_IS_ERR(uid_to_sid(&group_sid, state->request.data.gid))) {
                DEBUG(1, ("could not convert gid %d to rid\n", 
                          state->request.data.gid));
                return WINBINDD_ERROR;
@@ -547,8 +543,6 @@ enum winbindd_result winbindd_getgrent(struct winbindd_cli_state *state)
                char *gr_mem, *new_gr_mem_list;
                DOM_SID group_sid;
                struct winbindd_domain *domain;
-               unid_t id;
-               int id_type;
                                
                /* Do we need to fetch another chunk of groups? */
 
@@ -595,8 +589,7 @@ enum winbindd_result winbindd_getgrent(struct winbindd_cli_state *state)
                sid_copy(&group_sid, &domain->sid);
                sid_append_rid(&group_sid, name_list[ent->sam_entry_index].rid);
 
-               id_type = ID_GROUPID;
-               if (NT_STATUS_IS_ERR(idmap_get_id_from_sid(&id, &id_type, &group_sid))) {
+               if (NT_STATUS_IS_ERR(sid_to_gid(&group_sid, &group_gid))) {
                        
                        DEBUG(1, ("could not look up gid for group %s\n", 
                                  name_list[ent->sam_entry_index].acct_name));
@@ -604,7 +597,6 @@ enum winbindd_result winbindd_getgrent(struct winbindd_cli_state *state)
                        ent->sam_entry_index++;
                        goto tryagain;
                }
-               group_gid = id.gid;
 
                DEBUG(10, ("got gid %d for group %x\n", group_gid,
                           name_list[ent->sam_entry_index].rid));
@@ -874,18 +866,16 @@ enum winbindd_result winbindd_getgroups(struct winbindd_cli_state *state)
                goto done;
 
        for (i = 0; i < num_groups; i++) {
-               unid_t id;
-               int id_type;
+               gid_t gid;
                
-               id_type = ID_GROUPID;
-               if (NT_STATUS_IS_ERR(idmap_get_id_from_sid(&id, &id_type, user_gids[i]))) {
+               if (NT_STATUS_IS_ERR(sid_to_gid(user_gids[i], &gid))) {
                        fstring sid_string;
 
                        DEBUG(1, ("unable to convert group sid %s to gid\n", 
                                  sid_to_string(sid_string, user_gids[i])));
                        continue;
                }
-               gid_list[num_gids] = id.gid;
+               gid_list[num_gids] = gid;
                num_gids++;
        }