Update.
authorUlrich Drepper <drepper@redhat.com>
Tue, 7 Jul 1998 16:30:46 +0000 (16:30 +0000)
committerUlrich Drepper <drepper@redhat.com>
Tue, 7 Jul 1998 16:30:46 +0000 (16:30 +0000)
1998-07-07 16:28  Ulrich Drepper  <drepper@cygnus.com>

* grp/initgroups.c: Handle directives from nsswitch.conf file.

ChangeLog
grp/initgroups.c

index 4d02e81..4ab9d7b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+1998-07-07 16:28  Ulrich Drepper  <drepper@cygnus.com>
+
+       * grp/initgroups.c: Handle directives from nsswitch.conf file.
+
 1998-07-07  Ulrich Drepper  <drepper@cygnus.com>
 
        * sysdeps/unix/sysv/linux/sparc/sparc64/bits/types.h: Add
index 454882e..d74d08d 100644 (file)
@@ -182,12 +182,24 @@ initgroups (user, group)
       fct = __nss_lookup_function (nip, "initgroups");
 
       if (fct == NULL)
-       status = compat_call (nip, user, group, &start, &size, groups,
-                             limit, &errno);
+       {
+         status = compat_call (nip, user, group, &start, &size, groups,
+                               limit, &errno);
+
+         if (nss_next_action (nip, NSS_STATUS_UNAVAIL) != NSS_ACTION_CONTINUE)
+           break;
+       }
       else
        status = _CALL_DL_FCT (fct, (user, group, &start, &size, groups, limit,
                                     &errno));
 
+      /* This is really only for debugging.  */
+      if (NSS_STATUS_TRYAGAIN > status || status > NSS_STATUS_RETURN)
+        __libc_fatal ("illegal status in " __FUNCTION__);
+
+      if (nss_next_action (nip, status) == NSS_ACTION_RETURN)
+        break;
+
       if (nip->next == NULL)
        no_more = -1;
       else