1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
2 #pragma once
3 
4 #include <grp.h>
5 #include <gshadow.h>
6 #include <pwd.h>
7 #include <shadow.h>
8 
9 #include "group-record.h"
10 #include "user-record.h"
11 
12 /* Synthesize UserRecord and GroupRecord objects from NSS data */
13 
14 int nss_passwd_to_user_record(const struct passwd *pwd, const struct spwd *spwd, UserRecord **ret);
15 int nss_spwd_for_passwd(const struct passwd *pwd, struct spwd *ret_spwd, char **ret_buffer);
16 
17 int nss_user_record_by_name(const char *name, bool with_shadow, UserRecord **ret);
18 int nss_user_record_by_uid(uid_t uid, bool with_shadow, UserRecord **ret);
19 
20 int nss_group_to_group_record(const struct group *grp, const struct sgrp *sgrp, GroupRecord **ret);
21 int nss_sgrp_for_group(const struct group *grp, struct sgrp *ret_sgrp, char **ret_buffer);
22 
23 int nss_group_record_by_name(const char *name, bool with_shadow, GroupRecord **ret);
24 int nss_group_record_by_gid(gid_t gid, bool with_shadow, GroupRecord **ret);
25