A big tidyup while thinking about getting trusted domains being re-read
authorTim Potter <tpot@samba.org>
Thu, 10 Jan 2002 06:20:03 +0000 (06:20 +0000)
committerTim Potter <tpot@samba.org>
Thu, 10 Jan 2002 06:20:03 +0000 (06:20 +0000)
when they are added or removed on the PDC.

 - renamed GETPWNAM_FROM_{UID,USER} constants and functions to GETPW{NAM,UID}

 - renamed GETGRNAM_FROM_{GID,GROUP} constants and functions to GETGR{NAM,GID}

 - use SIGUSR2 in winbindd for debugging/logging instead of SIGUSR1 in
   preparation for moving to smbcontrol type messages (not sure whether to
   ditch this altogether or not)

 - tidy debugging messages in top level winbind user and group routines

 - convert talloc_init() to talloc_init_named()

 - make enumerations of the domain list use the same local variable names
(This used to be commit eeb8af9c1a66bfcd80823d7b406acbab79857a16)

source3/nsswitch/winbind_nss.c
source3/nsswitch/winbindd.c
source3/nsswitch/winbindd_group.c
source3/nsswitch/winbindd_nss.h
source3/nsswitch/winbindd_proto.h
source3/nsswitch/winbindd_rpc.c
source3/nsswitch/winbindd_user.c
source3/nsswitch/winbindd_util.c

index 4579d167d2be397423b7806600cb712a18516caf..efb52f35c3cb5c4a0846efb32f525b68341c20e6 100644 (file)
@@ -888,8 +888,7 @@ _nss_winbind_getpwuid_r(uid_t uid, struct passwd *result, char *buffer,
 
                request.data.uid = uid;
 
-               ret = winbindd_request(WINBINDD_GETPWNAM_FROM_UID, &request, 
-                                      &response);
+               ret = winbindd_request(WINBINDD_GETPWUID, &request, &response);
 
                if (ret == NSS_STATUS_SUCCESS) {
                        ret = fill_pwent(result, &response.data.pw, 
@@ -951,8 +950,7 @@ _nss_winbind_getpwnam_r(const char *name, struct passwd *result, char *buffer,
                request.data.username
                        [sizeof(request.data.username) - 1] = '\0';
 
-               ret = winbindd_request(WINBINDD_GETPWNAM_FROM_USER, &request, 
-                                      &response);
+               ret = winbindd_request(WINBINDD_GETPWNAM, &request, &response);
 
                if (ret == NSS_STATUS_SUCCESS) {
                        ret = fill_pwent(result, &response.data.pw, &buffer,
@@ -1148,8 +1146,7 @@ _nss_winbind_getgrnam_r(const char *name,
                request.data.groupname
                        [sizeof(request.data.groupname) - 1] = '\0';
 
-               ret = winbindd_request(WINBINDD_GETGRNAM_FROM_GROUP, 
-                                      &request, &response);
+               ret = winbindd_request(WINBINDD_GETGRNAM, &request, &response);
 
                if (ret == NSS_STATUS_SUCCESS) {
                        ret = fill_grent(result, &response.data.gr, 
@@ -1211,8 +1208,7 @@ _nss_winbind_getgrgid_r(gid_t gid,
 
                request.data.gid = gid;
 
-               ret = winbindd_request(WINBINDD_GETGRNAM_FROM_GID, &request, 
-                                      &response);
+               ret = winbindd_request(WINBINDD_GETGRGID, &request, &response);
 
                if (ret == NSS_STATUS_SUCCESS) {
 
index a877bf9e0a8667e1b44a0f7377bff2d0d1e4d6d1..7da20d8b01af4dfd004aa481af4e2a6735a43fae 100644 (file)
@@ -169,11 +169,11 @@ static void termination_handler(int signum)
        do_sigterm = True;
 }
 
-static BOOL do_sigusr1;
+static BOOL do_sigusr2;
 
-static void sigusr1_handler(int signum)
+static void sigusr2_handler(int signum)
 {
-       do_sigusr1 = True;
+       do_sigusr2 = True;
 }
 
 static BOOL do_sighup;
@@ -285,8 +285,8 @@ static struct dispatch_table dispatch_table[] = {
        
        /* User functions */
 
-       { WINBINDD_GETPWNAM_FROM_USER, winbindd_getpwnam_from_user, "GETPWNAM_FROM_USER" },
-       { WINBINDD_GETPWNAM_FROM_UID, winbindd_getpwnam_from_uid, "GETPWNAM_FROM_UID" },
+       { WINBINDD_GETPWNAM, winbindd_getpwnam, "GETPWNAM" },
+       { WINBINDD_GETPWUID, winbindd_getpwuid, "GETPWUID" },
 
        { WINBINDD_SETPWENT, winbindd_setpwent, "SETPWENT" },
        { WINBINDD_ENDPWENT, winbindd_endpwent, "ENDPWENT" },
@@ -296,8 +296,8 @@ static struct dispatch_table dispatch_table[] = {
 
        /* Group functions */
 
-       { WINBINDD_GETGRNAM_FROM_GROUP, winbindd_getgrnam_from_group, "GETGRNAM_FROM_GROUP" },
-       { WINBINDD_GETGRNAM_FROM_GID, winbindd_getgrnam_from_gid, "GETGRNAM_FROM_GID" },
+       { WINBINDD_GETGRNAM, winbindd_getgrnam, "GETGRNAM" },
+       { WINBINDD_GETGRGID, winbindd_getgrgid, "GETGRGID" },
        { WINBINDD_SETGRENT, winbindd_setgrent, "SETGRENT" },
        { WINBINDD_ENDGRENT, winbindd_endgrent, "ENDGRENT" },
        { WINBINDD_GETGRENT, winbindd_getgrent, "GETGRENT" },
@@ -715,9 +715,9 @@ static void process_loop(int accept_sock)
                        do_sighup = False;
                }
 
-               if (do_sigusr1) {
+               if (do_sigusr2) {
                        print_winbindd_status();
-                       do_sigusr1 = False;
+                       do_sigusr2 = False;
                }
        }
 }
@@ -737,9 +737,9 @@ int main(int argc, char **argv)
        int opt, new_debuglevel = -1;
 
        /* glibc (?) likes to print "User defined signal 1" and exit if a
-               SIGUSR1 is received before a handler is installed */
+          SIGUSR2 is received before a handler is installed */
 
-       CatchSignal(SIGUSR1, SIG_IGN);
+       CatchSignal(SIGUSR2, SIG_IGN);
 
        fault_setup((void (*)(void *))fault_quit );
 
@@ -857,7 +857,7 @@ int main(int argc, char **argv)
        BlockSignals(False, SIGINT);
        BlockSignals(False, SIGQUIT);
        BlockSignals(False, SIGTERM);
-       BlockSignals(False, SIGUSR1);
+       BlockSignals(False, SIGUSR2);
        BlockSignals(False, SIGHUP);
 
        /* Setup signal handlers */
@@ -867,8 +867,9 @@ int main(int argc, char **argv)
        CatchSignal(SIGTERM, termination_handler);
 
        CatchSignal(SIGPIPE, SIG_IGN);                 /* Ignore sigpipe */
+       CatchSignal(SIGUSR1, SIG_IGN);                 /* Samba messages */
 
-       CatchSignal(SIGUSR1, sigusr1_handler);         /* Debugging sigs */
+       CatchSignal(SIGUSR2, sigusr2_handler);         /* Debugging sigs */
        CatchSignal(SIGHUP, sighup_handler);
 
        /* Create UNIX domain socket */
index 6e22a8b559184a9cdc9a9a79ba2f3f8b192123a4..ff15611fba3c8399cf9d7731063200593da7b3f9 100644 (file)
@@ -60,19 +60,19 @@ static BOOL fill_grent_mem(struct winbindd_domain *domain,
        TALLOC_CTX *mem_ctx;
        NTSTATUS status;
 
-       if (!(mem_ctx = talloc_init()))
+       if (!(mem_ctx = talloc_init_named("fill_grent_mem(%s)", domain->name)))
                return False;
 
        /* Initialise group membership information */
        
-       DEBUG(10, ("fill_grent_mem(): group %s rid 0x%x\n",
-                  domain ? domain->name : "NULL", group_rid));
+       DEBUG(10, ("group %s rid 0x%x\n", domain ? domain->name : "NULL", 
+                  group_rid));
 
        *num_gr_mem = 0;
        
        if (group_name_type != SID_NAME_DOM_GRP) {
-               DEBUG(1, ("fill_grent_mem(): rid %d in domain %s isn't a "
-                         "domain group\n", group_rid, domain->name));
+               DEBUG(1, ("rid %d in domain %s isn't a " "domain group\n", 
+                         group_rid, domain->name));
                 goto done;
        }
 
@@ -80,14 +80,13 @@ static BOOL fill_grent_mem(struct winbindd_domain *domain,
        status = domain->methods->lookup_groupmem(domain, mem_ctx, group_rid, &num_names, 
                                                  &rid_mem, &names, &name_types);
        if (!NT_STATUS_IS_OK(status)) {
-               DEBUG(1, ("fill_grent_mem(): could not lookup membership "
-                         "for group rid %d in domain %s\n", 
+               DEBUG(1, ("could not lookup membership for group rid %d in domain %s\n", 
                          group_rid, domain->name));
 
                goto done;
        }
 
-       DEBUG(10, ("fill_grent_mem(): looked up %d names\n", num_names));
+       DEBUG(10, ("looked up %d names\n", num_names));
 
        if (DEBUGLEVEL >= 10) {
                for (i = 0; i < num_names; i++)
@@ -109,24 +108,21 @@ static BOOL fill_grent_mem(struct winbindd_domain *domain,
                        
                the_name = names[i];
 
-               DEBUG(10, ("fill_grent_mem(): processing name %s\n", 
-                           the_name));
+               DEBUG(10, ("processing name %s\n", the_name));
 
                /* FIXME: need to cope with groups within groups.  These
                    occur in Universal groups on a Windows 2000 native mode
                    server. */
 
                if (name_types[i] != SID_NAME_USER) {
-                       DEBUG(3, ("fill_grent_mem(): name %s isn't a domain "
-                                 "user\n", the_name));
+                       DEBUG(3, ("name %s isn't a domain user\n", the_name));
                        continue;
                }
 
                /* Don't bother with machine accounts */
                
                if (the_name[strlen(the_name) - 1] == '$') {
-                       DEBUG(10, ("fill_grent_mem(): %s is machine account\n",
-                                  the_name));
+                       DEBUG(10, ("%s is machine account\n", the_name));
                        continue;
                }
 
@@ -142,11 +138,9 @@ static BOOL fill_grent_mem(struct winbindd_domain *domain,
                if (!buf) {
                        buf_len += len + 1; /* List is comma separated */
                        (*num_gr_mem)++;
-                       DEBUG(10, ("fill_grent_mem(): buf_len + %d = %d\n", len + 1,
-                                  buf_len));
+                       DEBUG(10, ("buf_len + %d = %d\n", len + 1, buf_len));
                } else {
-                       DEBUG(10, ("fill_grent_mem(): appending %s at index %d\n",
-                                  name, len));
+                       DEBUG(10, ("appending %s at ndx %d\n", name, len));
                        safe_strcpy(&buf[buf_ndx], name, len);
                        buf_ndx += len;
                        buf[buf_ndx] = ',';
@@ -158,7 +152,7 @@ static BOOL fill_grent_mem(struct winbindd_domain *domain,
 
        if (!buf) {
                if (!(buf = malloc(buf_len))) {
-                       DEBUG(1, ("fill_grent_mem(): out of memory\n"));
+                       DEBUG(1, ("out of memory\n"));
                        result = False;
                        goto done;
                }
@@ -173,23 +167,22 @@ static BOOL fill_grent_mem(struct winbindd_domain *domain,
        *gr_mem = buf;
        *gr_mem_len = buf_len;
 
-       DEBUG(10, ("fill_grent_mem(): num_mem = %d, len = %d, mem = %s\n", 
-                   *num_gr_mem, buf_len, *num_gr_mem ? buf : "NULL"));
-
+       DEBUG(10, ("num_mem = %d, len = %d, mem = %s\n", *num_gr_mem, 
+                  buf_len, *num_gr_mem ? buf : "NULL")); 
        result = True;
 
 done:
 
        talloc_destroy(mem_ctx);
        
-       DEBUG(10, ("fill_grent_mem(): returning %d\n", result));
+       DEBUG(10, ("fill_grent_mem returning %d\n", result));
 
        return result;
 }
 
 /* Return a group structure from a group name */
 
-enum winbindd_result winbindd_getgrnam_from_group(struct winbindd_cli_state *state)
+enum winbindd_result winbindd_getgrnam(struct winbindd_cli_state *state)
 {
        DOM_SID group_sid;
        struct winbindd_domain *domain;
@@ -214,8 +207,8 @@ enum winbindd_result winbindd_getgrnam_from_group(struct winbindd_cli_state *sta
        /* Get info for the domain */
 
        if ((domain = find_domain_from_name(name_domain)) == NULL) {
-               DEBUG(0, ("getgrname_from_group(): could not get domain "
-                         "sid for domain %s\n", name_domain));
+               DEBUG(0, ("could not get domain sid for domain %s\n",
+                         name_domain));
                return WINBINDD_ERROR;
        }
 
@@ -223,15 +216,16 @@ enum winbindd_result winbindd_getgrnam_from_group(struct winbindd_cli_state *sta
 
        /* Get rid and name type from name */
         
-       if (!winbindd_lookup_sid_by_name(domain, name, &group_sid, &name_type)) {
+       if (!winbindd_lookup_sid_by_name(domain, name, &group_sid, 
+                                        &name_type)) {
                DEBUG(1, ("group %s in domain %s does not exist\n", 
                          name_group, name_domain));
                return WINBINDD_ERROR;
        }
 
        if ((name_type != SID_NAME_ALIAS) && (name_type != SID_NAME_DOM_GRP)) {
-               DEBUG(1, ("from_group: name '%s' is not a local or domain "
-                         "group: %d\n", name_group, name_type));
+               DEBUG(1, ("name '%s' is not a local or domain group: %d\n", 
+                         name_group, name_type));
                return WINBINDD_ERROR;
        }
 
@@ -240,7 +234,7 @@ enum winbindd_result winbindd_getgrnam_from_group(struct winbindd_cli_state *sta
        sid_split_rid(&group_sid, &group_rid);
 
        if (!winbindd_idmap_get_gid_from_rid(domain->name, group_rid, &gid)) {
-               DEBUG(1, ("error sursing unix gid for sid\n"));
+               DEBUG(1, ("error converting unix gid to sid\n"));
                return WINBINDD_ERROR;
        }
 
@@ -264,8 +258,7 @@ enum winbindd_result winbindd_getgrnam_from_group(struct winbindd_cli_state *sta
 
 /* Return a group structure from a gid number */
 
-enum winbindd_result winbindd_getgrnam_from_gid(struct winbindd_cli_state 
-                                                *state)
+enum winbindd_result winbindd_getgrgid(struct winbindd_cli_state *state)
 {
        struct winbindd_domain *domain;
        DOM_SID group_sid;
@@ -288,7 +281,7 @@ enum winbindd_result winbindd_getgrnam_from_gid(struct winbindd_cli_state
 
        if (!winbindd_idmap_get_rid_from_gid(state->request.data.gid, 
                                             &group_rid, &domain)) {
-               DEBUG(1, ("Could not convert gid %d to rid\n", 
+               DEBUG(1, ("could not convert gid %d to rid\n", 
                          state->request.data.gid));
                return WINBINDD_ERROR;
        }
@@ -299,7 +292,7 @@ enum winbindd_result winbindd_getgrnam_from_gid(struct winbindd_cli_state
        sid_append_rid(&group_sid, group_rid);
 
        if (!winbindd_lookup_name_by_sid(&group_sid, group_name, &name_type)) {
-               DEBUG(1, ("Could not lookup sid\n"));
+               DEBUG(1, ("could not lookup sid\n"));
                return WINBINDD_ERROR;
        }
 
@@ -309,8 +302,8 @@ enum winbindd_result winbindd_getgrnam_from_gid(struct winbindd_cli_state
 
        if (!((name_type == SID_NAME_ALIAS) || 
              (name_type == SID_NAME_DOM_GRP))) {
-               DEBUG(1, ("from_gid: name '%s' is not a local or domain "
-                         "group: %d\n", group_name, name_type));
+               DEBUG(1, ("name '%s' is not a local or domain group: %d\n", 
+                         group_name, name_type));
                return WINBINDD_ERROR;
        }
 
@@ -341,7 +334,7 @@ enum winbindd_result winbindd_getgrnam_from_gid(struct winbindd_cli_state
 
 enum winbindd_result winbindd_setgrent(struct winbindd_cli_state *state)
 {
-       struct winbindd_domain *tmp;
+       struct winbindd_domain *domain;
 
        DEBUG(3, ("[%5d]: setgrent\n", state->pid));
 
@@ -362,14 +355,14 @@ enum winbindd_result winbindd_setgrent(struct winbindd_cli_state *state)
        if (domain_list == NULL)
                get_domain_info();
 
-       for (tmp = domain_list; tmp != NULL; tmp = tmp->next) {
+       for (domain = domain_list; domain != NULL; domain = domain->next) {
                struct getent_state *domain_state;
                
                /* Skip domains other than WINBINDD_DOMAIN environment 
                   variable */
                
                if ((strcmp(state->request.domain, "") != 0) &&
-                   !check_domain_env(state->request.domain, tmp->name))
+                   !check_domain_env(state->request.domain, domain->name))
                        continue;
                
                /* Create a state record for this domain */
@@ -380,7 +373,7 @@ enum winbindd_result winbindd_setgrent(struct winbindd_cli_state *state)
                
                ZERO_STRUCTP(domain_state);
                
-               domain_state->domain = tmp;
+               domain_state->domain = domain;
 
                /* Add to list of open domains */
                
@@ -421,7 +414,8 @@ static BOOL get_sam_group_entries(struct getent_state *ent)
        if (ent->got_sam_entries)
                return False;
 
-       if (!(mem_ctx = talloc_init()))
+       if (!(mem_ctx = talloc_init_named("get_sam_group_entries(%s)",
+                                         ent->domain->name)))
                return False;
                
        /* Free any existing group info */
@@ -510,7 +504,7 @@ enum winbindd_result winbindd_getgrent(struct winbindd_cli_state *state)
 
        tryagain:
 
-               DEBUG(10, ("getgrent(): entry_index = %d, num_entries = %d\n",
+               DEBUG(10, ("entry_index = %d, num_entries = %d\n",
                           ent->sam_entry_index, ent->num_sam_entries));
 
                if (ent->num_sam_entries == ent->sam_entry_index) {
@@ -518,8 +512,7 @@ enum winbindd_result winbindd_getgrent(struct winbindd_cli_state *state)
                        while(ent && !get_sam_group_entries(ent)) {
                                struct getent_state *next_ent;
 
-                               DEBUG(10, ("getgrent(): freeing state info for "
-                                          "domain %s\n", ent->domain->name)); 
+                               DEBUG(10, ("freeing state info for domain %s\n", ent->domain->name)); 
 
                                /* Free state information for this domain */
 
@@ -547,14 +540,14 @@ enum winbindd_result winbindd_getgrent(struct winbindd_cli_state *state)
                        name_list[ent->sam_entry_index].rid,
                        &group_gid)) {
                        
-                       DEBUG(1, ("getgrent(): could not look up gid for group %s\n",
+                       DEBUG(1, ("could not look up gid for group %s\n", 
                                  name_list[ent->sam_entry_index].acct_name));
 
                        ent->sam_entry_index++;
                        goto tryagain;
                }
 
-               DEBUG(10, ("getgrent(): got gid %d for group %x\n", group_gid,
+               DEBUG(10, ("got gid %d for group %x\n", group_gid,
                           name_list[ent->sam_entry_index].rid));
                
                /* Fill in group entry */
@@ -585,13 +578,13 @@ enum winbindd_result winbindd_getgrent(struct winbindd_cli_state *state)
                                gr_mem_list_len + gr_mem_len);
 
                        if (!new_gr_mem_list && (group_list[group_list_ndx].num_gr_mem != 0)) {
-                               DEBUG(0, ("getgrent(): out of memory\n"));
+                               DEBUG(0, ("out of memory\n"));
                                SAFE_FREE(gr_mem_list);
                                gr_mem_list_len = 0;
                                break;
                        }
 
-                       DEBUG(10, ("getgrent(): list_len = %d, mem_len = %d\n",
+                       DEBUG(10, ("list_len = %d, mem_len = %d\n",
                                   gr_mem_list_len, gr_mem_len));
 
                        gr_mem_list = new_gr_mem_list;
@@ -613,7 +606,7 @@ enum winbindd_result winbindd_getgrent(struct winbindd_cli_state *state)
                
                if (result) {
 
-                       DEBUG(10, ("getgrent(): adding group num_entries = %d\n",
+                       DEBUG(10, ("adding group num_entries = %d\n",
                                   state->response.data.num_entries));
 
                        group_list_ndx++;
@@ -656,7 +649,7 @@ enum winbindd_result winbindd_getgrent(struct winbindd_cli_state *state)
 
        state->response.length += gr_mem_list_len;
 
-       DEBUG(10, ("getgrent(): returning %d groups, length = %d\n",
+       DEBUG(10, ("returning %d groups, length = %d\n",
                   group_list_ndx, gr_mem_list_len));
 
        /* Out of domains */
@@ -714,8 +707,7 @@ enum winbindd_result winbindd_list_groups(struct winbindd_cli_state *state)
                 ted = Realloc(extra_data, sizeof(fstring) * total_entries);
  
                if (!ted) {
-                       DEBUG(0,("winbindd_list_groups: failed to enlarge "
-                                 "buffer!\n"));
+                       DEBUG(0,("failed to enlarge buffer!\n"));
                        SAFE_FREE(extra_data);
                        return WINBINDD_ERROR;
                } else
@@ -773,7 +765,8 @@ enum winbindd_result winbindd_getgroups(struct winbindd_cli_state *state)
        DEBUG(3, ("[%5d]: getgroups %s\n", state->pid,
                  state->request.data.username));
 
-       if (!(mem_ctx = talloc_init()))
+       if (!(mem_ctx = talloc_init_named("winbindd_getgroups(%s)",
+                                         state->request.data.username)))
                return WINBINDD_ERROR;
 
        /* Parse domain and username */
@@ -794,14 +787,15 @@ enum winbindd_result winbindd_getgroups(struct winbindd_cli_state *state)
        
        /* Get rid and name type from name.  The following costs 1 packet */
 
-       if (!winbindd_lookup_sid_by_name(domain, name, &user_sid, &name_type)) {
+       if (!winbindd_lookup_sid_by_name(domain, name, &user_sid, 
+                                        &name_type)) {
                DEBUG(1, ("user '%s' does not exist\n", name_user));
                goto done;
        }
 
        if (name_type != SID_NAME_USER) {
-               DEBUG(1, ("name '%s' is not a user name: %d\n", name_user, 
-                         name_type));
+               DEBUG(1, ("name '%s' is not a user name: %d\n", 
+                         name_user, name_type));
                goto done;
        }
 
@@ -819,8 +813,12 @@ enum winbindd_result winbindd_getgroups(struct winbindd_cli_state *state)
                goto done;
 
        for (i = 0; i < num_groups; i++) {
-               if (!winbindd_idmap_get_gid_from_rid(domain->name, user_gids[i], &gid_list[num_gids])) {
-                       DEBUG(1, ("unable to convert group rid %d to gid\n", user_gids[i]));
+               if (!winbindd_idmap_get_gid_from_rid(domain->name, 
+                                                    user_gids[i], 
+                                                    &gid_list[num_gids])) {
+
+                       DEBUG(1, ("unable to convert group rid %d to gid\n", 
+                                 user_gids[i]));
                        continue;
                }
                        
index 4fb9458c141c25bbcaa830a777dc9750546a3c71..07c67dd5581bf5fec387f8625130d96943ef1fb6 100644 (file)
@@ -41,10 +41,10 @@ enum winbindd_cmd {
 
        /* Get users and groups */
 
-       WINBINDD_GETPWNAM_FROM_USER,
-       WINBINDD_GETPWNAM_FROM_UID,
-       WINBINDD_GETGRNAM_FROM_GROUP,
-       WINBINDD_GETGRNAM_FROM_GID,
+       WINBINDD_GETPWNAM,
+       WINBINDD_GETPWUID,
+       WINBINDD_GETGRNAM,
+       WINBINDD_GETGRGID,
        WINBINDD_GETGROUPS,
 
        /* Enumerate users and groups */
index f0badc4331bce2ad73914d00873da0e2b0be2701..ac72768ea43cb7d9562a2b7ce32cf603a2d1781c 100644 (file)
@@ -40,9 +40,8 @@ void winbindd_cm_status(void);
 
 /* The following definitions come from nsswitch/winbindd_group.c  */
 
-enum winbindd_result winbindd_getgrnam_from_group(struct winbindd_cli_state *state);
-enum winbindd_result winbindd_getgrnam_from_gid(struct winbindd_cli_state 
-                                                *state);
+enum winbindd_result winbindd_getgrnam(struct winbindd_cli_state *state);
+enum winbindd_result winbindd_getgrgid(struct winbindd_cli_state *state);
 enum winbindd_result winbindd_setgrent(struct winbindd_cli_state *state);
 enum winbindd_result winbindd_endgrent(struct winbindd_cli_state *state);
 enum winbindd_result winbindd_getgrent(struct winbindd_cli_state *state);
@@ -90,8 +89,8 @@ enum winbindd_result winbindd_gid_to_sid(struct winbindd_cli_state *state);
 
 /* The following definitions come from nsswitch/winbindd_user.c  */
 
-enum winbindd_result winbindd_getpwnam_from_user(struct winbindd_cli_state *state) ;
-enum winbindd_result winbindd_getpwnam_from_uid(struct winbindd_cli_state *state);
+enum winbindd_result winbindd_getpwnam(struct winbindd_cli_state *state) ;
+enum winbindd_result winbindd_getpwuid(struct winbindd_cli_state *state);
 enum winbindd_result winbindd_setpwent(struct winbindd_cli_state *state);
 enum winbindd_result winbindd_endpwent(struct winbindd_cli_state *state);
 enum winbindd_result winbindd_getpwent(struct winbindd_cli_state *state);
index 87656d7ae24df4a7ac5e9826f8bbd13476e6cb05..18186b629a3521c0b361bc2f84a1f3540c09d7a8 100644 (file)
@@ -135,7 +135,7 @@ static NTSTATUS enum_dom_groups(struct winbindd_domain *domain,
                uint32 count = 0, start = *num_entries;
                TALLOC_CTX *mem_ctx2;
 
-               mem_ctx2 = talloc_init();
+               mem_ctx2 = talloc_init_named("enum_dom_groups[rpc]");
 
                status = cli_samr_enum_dom_groups(hnd->cli, mem_ctx2, &dom_pol,
                                                  &start,
@@ -178,7 +178,7 @@ static NTSTATUS name_to_sid(struct winbindd_domain *domain,
        uint32 *types = NULL;
        int num_sids;
 
-       if (!(mem_ctx = talloc_init()))
+       if (!(mem_ctx = talloc_init_named("name_to_sid[rpc]")))
                return NT_STATUS_NO_MEMORY;
         
        if (!(hnd = cm_get_lsa_handle(domain->name)))
@@ -465,7 +465,7 @@ static NTSTATUS sequence_number(struct winbindd_domain *domain, uint32 *seq)
 
        *seq = DOM_SEQUENCE_NONE;
 
-       if (!(mem_ctx = talloc_init()))
+       if (!(mem_ctx = talloc_init_named("sequence_number[rpc]")))
                return NT_STATUS_NO_MEMORY;
 
        /* Get sam handle */
@@ -539,7 +539,7 @@ static NTSTATUS domain_sid(struct winbindd_domain *domain, DOM_SID *sid)
        CLI_POLICY_HND *hnd;
        fstring level5_dom;
 
-       if (!(mem_ctx = talloc_init()))
+       if (!(mem_ctx = talloc_init_named("domain_sid[rpc]")))
                return NT_STATUS_NO_MEMORY;
 
        /* Get sam handle */
index 6f38b13548af65b1673a206e6af1b6b62fa0608c..b5f9436de5517e5b98595646ba18106ca9aa0eea 100644 (file)
@@ -93,7 +93,7 @@ static BOOL winbindd_fill_pwent(char *domain_name, char *name,
 
 /* Return a password structure from a username.  */
 
-enum winbindd_result winbindd_getpwnam_from_user(struct winbindd_cli_state *state) 
+enum winbindd_result winbindd_getpwnam(struct winbindd_cli_state *state) 
 {
        uint32 user_rid;
        WINBIND_USERINFO user_info;
@@ -114,7 +114,7 @@ enum winbindd_result winbindd_getpwnam_from_user(struct winbindd_cli_state *stat
                return WINBINDD_ERROR;
        
        if ((domain = find_domain_from_name(name_domain)) == NULL) {
-               DEBUG(5, ("No such domain: %s\n", name_domain));
+               DEBUG(5, ("no such domain: %s\n", name_domain));
                return WINBINDD_ERROR;
        }
 
@@ -137,24 +137,28 @@ enum winbindd_result winbindd_getpwnam_from_user(struct winbindd_cli_state *stat
           from the winbind_lookup_by_name() call and use it in a
           winbind_lookup_userinfo() */
     
-       if (!(mem_ctx = talloc_init())) {
+       if (!(mem_ctx = talloc_init_named("winbindd_getpwnam(%s)", 
+                                         name_user))) {
                DEBUG(1, ("out of memory\n"));
                return WINBINDD_ERROR;
        }
 
        sid_split_rid(&user_sid, &user_rid);
 
-       status = domain->methods->query_user(domain, mem_ctx, user_rid, &user_info);
+       status = domain->methods->query_user(domain, mem_ctx, user_rid, 
+                                            &user_info);
+
        if (!NT_STATUS_IS_OK(status)) {
-               DEBUG(1, ("pwnam_from_user(): error getting user info for "
-                         "user '%s'\n", name_user));
+               DEBUG(1, ("error getting user info for user '%s'\n", 
+                         name_user));
                talloc_destroy(mem_ctx);
                return WINBINDD_ERROR;
        }
     
        /* Now take all this information and fill in a passwd structure */      
        if (!winbindd_fill_pwent(name_domain, state->request.data.username, 
-                                user_rid, user_info.group_rid, user_info.full_name,
+                                user_rid, user_info.group_rid, 
+                                user_info.full_name,
                                 &state->response.data.pw)) {
                talloc_destroy(mem_ctx);
                return WINBINDD_ERROR;
@@ -167,7 +171,7 @@ enum winbindd_result winbindd_getpwnam_from_user(struct winbindd_cli_state *stat
 
 /* Return a password structure given a uid number */
 
-enum winbindd_result winbindd_getpwnam_from_uid(struct winbindd_cli_state *state)
+enum winbindd_result winbindd_getpwuid(struct winbindd_cli_state *state)
 {
        DOM_SID user_sid;
        struct winbindd_domain *domain;
@@ -192,7 +196,7 @@ enum winbindd_result winbindd_getpwnam_from_uid(struct winbindd_cli_state *state
 
        if (!winbindd_idmap_get_rid_from_uid(state->request.data.uid, 
                                             &user_rid, &domain)) {
-               DEBUG(1, ("Could not convert uid %d to rid\n", 
+               DEBUG(1, ("could not convert uid %d to rid\n", 
                          state->request.data.uid));
                return WINBINDD_ERROR;
        }
@@ -206,7 +210,7 @@ enum winbindd_result winbindd_getpwnam_from_uid(struct winbindd_cli_state *state
                fstring temp;
                
                sid_to_string(temp, &user_sid);
-               DEBUG(1, ("Could not lookup sid %s\n", temp));
+               DEBUG(1, ("could not lookup sid %s\n", temp));
                return WINBINDD_ERROR;
        }
        
@@ -216,15 +220,19 @@ enum winbindd_result winbindd_getpwnam_from_uid(struct winbindd_cli_state *state
 
        /* Get some user info */
        
-       if (!(mem_ctx = talloc_init())) {
+       if (!(mem_ctx = talloc_init_named("winbind_getpwuid(%d)",
+                                         state->request.data.uid))) {
+
                DEBUG(1, ("out of memory\n"));
                return WINBINDD_ERROR;
        }
 
-       status = domain->methods->query_user(domain, mem_ctx, user_rid, &user_info);
+       status = domain->methods->query_user(domain, mem_ctx, user_rid, 
+                                            &user_info);
+
        if (!NT_STATUS_IS_OK(status)) {
-               DEBUG(1, ("pwnam_from_uid(): error getting user info for "
-                         "user '%s'\n", user_name));
+               DEBUG(1, ("error getting user info for user '%s'\n", 
+                         user_name));
                return WINBINDD_ERROR;
        }
        
@@ -255,7 +263,7 @@ enum winbindd_result winbindd_getpwnam_from_uid(struct winbindd_cli_state *state
 
 enum winbindd_result winbindd_setpwent(struct winbindd_cli_state *state)
 {
-       struct winbindd_domain *tmp;
+       struct winbindd_domain *domain;
         
        DEBUG(3, ("[%5d]: setpwent\n", state->pid));
         
@@ -276,7 +284,7 @@ enum winbindd_result winbindd_setpwent(struct winbindd_cli_state *state)
        if (domain_list == NULL)
                get_domain_info();
 
-       for(tmp = domain_list; tmp != NULL; tmp = tmp->next) {
+       for(domain = domain_list; domain != NULL; domain = domain->next) {
                struct getent_state *domain_state;
                 
                /*
@@ -285,17 +293,19 @@ enum winbindd_result winbindd_setpwent(struct winbindd_cli_state *state)
                 */
                 
                if ((strcmp(state->request.domain, "") != 0) &&
-                               !check_domain_env(state->request.domain, tmp->name))
+                               !check_domain_env(state->request.domain, 
+                                                 domain->name))
                        continue;
 
                /* Create a state record for this domain */
                 
-               if ((domain_state = (struct getent_state *)malloc(sizeof(struct getent_state))) == NULL)
+               if ((domain_state = (struct getent_state *)
+                    malloc(sizeof(struct getent_state))) == NULL)
                        return WINBINDD_ERROR;
                 
                ZERO_STRUCTP(domain_state);
 
-               domain_state->domain = tmp;
+               domain_state->domain = domain;
 
                /* Add to list of open domains */
                 
@@ -338,7 +348,8 @@ static BOOL get_sam_user_entries(struct getent_state *ent)
        if (ent->num_sam_entries)
                return False;
 
-       if (!(mem_ctx = talloc_init()))
+       if (!(mem_ctx = talloc_init_named("get_sam_user_entries(%s)",
+                                         ent->domain->name)))
                return False;
 
        methods = ent->domain->methods;
@@ -363,7 +374,7 @@ static BOOL get_sam_user_entries(struct getent_state *ent)
                                                       num_entries));
                
                if (!tnl) {
-                       DEBUG(0,("get_sam_user_entries: Realloc failed.\n"));
+                       DEBUG(0,("get_sam_user_entries realloc failed.\n"));
                        SAFE_FREE(name_list);
                        goto done;
                } else
@@ -531,7 +542,7 @@ enum winbindd_result winbindd_list_users(struct winbindd_cli_state *state)
 
        DEBUG(3, ("[%5d]: list users\n", state->pid));
 
-       if (!(mem_ctx = talloc_init()))
+       if (!(mem_ctx = talloc_init_named("winbindd_list_users")))
                return WINBINDD_ERROR;
 
        /* Enumerate over trusted domains */
@@ -566,7 +577,7 @@ enum winbindd_result winbindd_list_users(struct winbindd_cli_state *state)
                ted = Realloc(extra_data, sizeof(fstring) * total_entries);
                        
                if (!ted) {
-                       DEBUG(0,("winbindd_list_users: failed to enlarge buffer!\n"));
+                       DEBUG(0,("failed to enlarge buffer!\n"));
                        SAFE_FREE(extra_data);
                        goto done;
                } else 
index 2f21f81ea8738a27abcffacb986fcd4ccf62d6ca..3086795a494b51fb5005d29e56f52f7d8bb8437d 100644 (file)
@@ -47,17 +47,17 @@ struct winbindd_domain *domain_list = NULL;
 
 struct winbindd_domain *find_domain_from_name(char *domain_name)
 {
-       struct winbindd_domain *tmp;
+       struct winbindd_domain *domain;
 
        if (domain_list == NULL)
                get_domain_info();
 
        /* Search through list */
 
-       for (tmp = domain_list; tmp != NULL; tmp = tmp->next) {
-               if (strcasecmp(domain_name, tmp->name) == 0 ||
-                   strcasecmp(domain_name, tmp->full_name) == 0)
-                       return tmp;
+       for (domain = domain_list; domain != NULL; domain = domain->next) {
+               if (strcasecmp(domain_name, domain->name) == 0 ||
+                   strcasecmp(domain_name, domain->full_name) == 0)
+                       return domain;
        }
 
        /* Not found */
@@ -69,15 +69,15 @@ struct winbindd_domain *find_domain_from_name(char *domain_name)
 
 struct winbindd_domain *find_domain_from_sid(DOM_SID *sid)
 {
-       struct winbindd_domain *tmp;
+       struct winbindd_domain *domain;
 
        if (domain_list == NULL)
                get_domain_info();
 
        /* Search through list */
-       for (tmp = domain_list; tmp != NULL; tmp = tmp->next) {
-               if (sid_compare_domain(sid, &tmp->sid) == 0)
-                       return tmp;
+       for (domain = domain_list; domain != NULL; domain = domain->next) {
+               if (sid_compare_domain(sid, &domain->sid) == 0)
+                       return domain;
        }
 
        /* Not found */
@@ -90,22 +90,26 @@ struct winbindd_domain *find_domain_from_sid(DOM_SID *sid)
 static struct winbindd_domain *add_trusted_domain(char *domain_name,
                                                  struct winbindd_methods *methods)
 {
-       struct winbindd_domain *domain, *tmp;
+       struct winbindd_domain *domain;
         
-       for (tmp = domain_list; tmp != NULL; tmp = tmp->next) {
-               if (strcmp(domain_name, tmp->name) == 0) {
-                       DEBUG(3, ("domain %s already in domain list\n", domain_name));
-                       return tmp;
+       for (domain = domain_list; domain; domain = domain->next) {
+               if (strcmp(domain_name, domain->name) == 0) {
+                       DEBUG(3, ("domain %s already in domain list\n", 
+                                 domain_name));
+                       return domain;
                }
        }
         
        /* Create new domain entry */
-       if ((domain = (struct winbindd_domain *)malloc(sizeof(*domain))) == NULL)
+
+       if ((domain = (struct winbindd_domain *)
+            malloc(sizeof(*domain))) == NULL)
                return NULL;
 
        /* Fill in fields */
         
        ZERO_STRUCTP(domain);
+
        fstrcpy(domain->name, domain_name);
         domain->methods = methods;
        domain->sequence_number = DOM_SEQUENCE_NONE;
@@ -130,7 +134,7 @@ BOOL get_domain_info(void)
        char **names;
        int num_domains = 0;
 
-       if (!(mem_ctx = talloc_init()))
+       if (!(mem_ctx = talloc_init_named("get_domain_info")))
                return False;
 
        domain = add_trusted_domain(lp_workgroup(), &cache_methods);
@@ -222,6 +226,7 @@ BOOL winbindd_lookup_name_by_sid(DOM_SID *sid,
        struct winbindd_domain *domain;
 
        domain = find_domain_from_sid(sid);
+
        if (!domain) {
                DEBUG(1,("Can't find domain from sid\n"));
                return False;
@@ -229,7 +234,7 @@ BOOL winbindd_lookup_name_by_sid(DOM_SID *sid,
 
        /* Lookup name */
 
-       if (!(mem_ctx = talloc_init()))
+       if (!(mem_ctx = talloc_init_named("winbindd_lookup_name_by_sid")))
                return False;
         
        result = domain->methods->sid_to_name(domain, mem_ctx, sid, &names, type);