]> andersk Git - nss_nonlocal.git/commitdiff
Add check_nonlocal_passwd and check_nonlocal_group helper functions.
authorAnders Kaseorg <andersk@mit.edu>
Sun, 18 Oct 2009 06:28:54 +0000 (02:28 -0400)
committerAnders Kaseorg <andersk@mit.edu>
Sun, 18 Oct 2009 16:06:12 +0000 (12:06 -0400)
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
nonlocal-group.c
nonlocal-passwd.c

index 83e5d12e385bbe5f8a1a640ed2712f9ded310937..af422dda72b4030bcaf0fb69ec7cdb80d06802de 100644 (file)
@@ -126,6 +126,12 @@ check_nonlocal_gid(const char *user, gid_t gid, int *errnop)
     return status;
 }
 
+enum nss_status
+check_nonlocal_group(const char *user, struct group *grp, int *errnop)
+{
+    return check_nonlocal_gid(user, grp->gr_gid, errnop);
+}
+
 enum nss_status
 get_local_group(const char *name, struct group *grp, char **buffer, int *errnop)
 {
@@ -280,7 +286,7 @@ _nss_nonlocal_getgrent_r(struct group *grp, char *buffer, size_t buflen,
            do
                status = DL_CALL_FCT(grent_fct.l, (grp, buffer, buflen, errnop));
            while (status == NSS_STATUS_SUCCESS &&
-                  check_nonlocal_gid("(unknown)", grp->gr_gid, &nonlocal_errno) != NSS_STATUS_SUCCESS);
+                  check_nonlocal_group("(unknown)", grp, &nonlocal_errno) != NSS_STATUS_SUCCESS);
        }
        if (status == NSS_STATUS_TRYAGAIN && *errnop == ERANGE)
            return status;
@@ -334,7 +340,7 @@ _nss_nonlocal_getgrnam_r(const char *name, struct group *grp,
        return NSS_STATUS_NOTFOUND;
     }
 
-    return check_nonlocal_gid(name, grp->gr_gid, errnop);
+    return check_nonlocal_group(name, grp, errnop);
 }
 
 enum nss_status
@@ -372,7 +378,7 @@ _nss_nonlocal_getgrgid_r(gid_t gid, struct group *grp,
     if (status != NSS_STATUS_SUCCESS)
        return status;
 
-    return check_nonlocal_gid(grp->gr_name, grp->gr_gid, errnop);
+    return check_nonlocal_group(grp->gr_name, grp, errnop);
 }
 
 enum nss_status
index 29e922be62c42d2828b65ad71dc89fd78727920c..ffd5375fe6e0125dda81369a880e4c5110090ddd 100644 (file)
@@ -124,6 +124,12 @@ check_nonlocal_uid(const char *user, uid_t uid, int *errnop)
     return status;
 }
 
+enum nss_status
+check_nonlocal_passwd(const char *user, struct passwd *pwd, int *errnop)
+{
+    return check_nonlocal_uid(user, pwd->pw_uid, errnop);
+}
+
 enum nss_status
 check_nonlocal_user(const char *user, int *errnop)
 {
@@ -279,7 +285,7 @@ _nss_nonlocal_getpwent_r(struct passwd *pwd, char *buffer, size_t buflen,
            do
                status = DL_CALL_FCT(pwent_fct.l, (pwd, buffer, buflen, errnop));
            while (status == NSS_STATUS_SUCCESS &&
-                  check_nonlocal_uid(pwd->pw_name, pwd->pw_uid, &nonlocal_errno) != NSS_STATUS_SUCCESS);
+                  check_nonlocal_passwd(pwd->pw_name, pwd, &nonlocal_errno) != NSS_STATUS_SUCCESS);
        }
        if (status == NSS_STATUS_TRYAGAIN && *errnop == ERANGE)
            return status;
@@ -334,7 +340,7 @@ _nss_nonlocal_getpwnam_r(const char *name, struct passwd *pwd,
        return NSS_STATUS_NOTFOUND;
     }
 
-    status = check_nonlocal_uid(name, pwd->pw_uid, errnop);
+    status = check_nonlocal_passwd(name, pwd, errnop);
     if (status != NSS_STATUS_SUCCESS)
        return status;
 
@@ -380,7 +386,7 @@ _nss_nonlocal_getpwuid_r(uid_t uid, struct passwd *pwd,
     if (status != NSS_STATUS_SUCCESS)
        return status;
 
-    status = check_nonlocal_uid(pwd->pw_name, pwd->pw_uid, errnop);
+    status = check_nonlocal_passwd(pwd->pw_name, pwd, errnop);
     if (status != NSS_STATUS_SUCCESS)
        return status;
 
This page took 0.048257 seconds and 5 git commands to generate.