#include "config.h"
+#ifdef HAVE_STDBOOL_H
+# include <stdbool.h>
+#else
+# ifndef HAVE__BOOL
+# ifdef __cplusplus
+typedef bool _Bool;
+# else
+# define _Bool signed char
+# endif
+# endif
+# define bool _Bool
+# define false 0
+# define true 1
+# define __bool_true_false_are_defined 1
+#endif
+
+#include "nsswitch-internal.h"
+#include <pwd.h>
+
+struct walk_nss {
+ enum nss_status *status;
+ int (*lookup)(service_user **ni, const char *fct_name,
+ void **fctp) internal_function;
+ const char *fct_name;
+ int *errnop;
+ char **buf;
+ size_t *buflen;
+};
+
enum nss_status check_nonlocal_uid(const char *user, uid_t uid, int *errnop);
-enum nss_status check_nonlocal_gid(const char *user, gid_t gid, int *errnop);
+enum nss_status check_nonlocal_gid(const char *user, const char *group,
+ gid_t gid, int *errnop);
enum nss_status check_nonlocal_user(const char *user, int *errnop);
+enum nss_status get_nonlocal_passwd(const char *name, struct passwd *pwd,
+ char **buffer, int *errnop);
#define NONLOCAL_IGNORE_ENV "NSS_NONLOCAL_IGNORE"