-static __thread int local_only = 0;
-
-enum nss_status
-local_getpwuid_r(uid_t uid, struct passwd *pwd,
- char *buffer, size_t buflen, int *errnop)
-{
- int old_local_only = local_only;
- int old_errno = errno;
- int ret;
- errno = *errnop;
- local_only = 1;
-
- ret = getpwuid_r(uid, pwd, buffer, buflen, &pwd);
-
- local_only = old_local_only;
- *errnop = errno;
- errno = old_errno;
-
- if (pwd != NULL)
- return NSS_STATUS_SUCCESS;
- else if (ret == 0)
- return NSS_STATUS_NOTFOUND;
- else
- return NSS_STATUS_TRYAGAIN;
-}
-