25 #ifndef SSS_NSS_IDMAP_H_ 26 #define SSS_NSS_IDMAP_H_ 29 #include <sys/types.h> 37 SSS_ID_TYPE_NOT_SPECIFIED = 0,
65 int sss_nss_getsidbyname(
const char *fq_name,
char **sid,
66 enum sss_id_type *type);
79 int sss_nss_getsidbyid(uint32_t
id,
char **sid,
enum sss_id_type *type);
92 int sss_nss_getnamebysid(
const char *sid,
char **fq_name,
93 enum sss_id_type *type);
105 int sss_nss_getidbysid(
const char *sid, uint32_t *
id,
106 enum sss_id_type *id_type);
126 int sss_nss_getorigbyname(
const char *fq_name,
struct sss_nss_kv **kv_list,
127 enum sss_id_type *type);
141 int sss_nss_getnamebycert(
const char *cert,
char **fq_name,
142 enum sss_id_type *type);
156 int sss_nss_getlistbycert(
const char *cert,
char ***fq_name,
157 enum sss_id_type **type);
164 void sss_nss_free_kv(
struct sss_nss_kv *kv_list);
170 #define SSS_NSS_EX_FLAG_NO_FLAGS 0 174 #define SSS_NSS_EX_FLAG_NO_CACHE (1 << 0) 180 struct sss_nss_ex_data;
182 enum extra_data_item {
183 EX_DATA_SHORT_NAME = 0,
185 EX_DATA_SHORT_DOMAIN_NAME,
190 void sss_nss_free_ex_data(
struct sss_nss_ex_data *ex);
192 const char *sss_nss_get_extra_data_item(
struct sss_nss_ex_data *ex,
193 enum extra_data_item item);
194 #define sss_nss_get_extra_data_short_name(ex) \ 195 sss_nss_get_extra_data_item((ex), EX_DATA_SHORT_NAME) 196 #define sss_nss_get_extra_data_domain_name(ex) \ 197 sss_nss_get_extra_data_item((ex), EX_DATA_DOMAIN_NAME) 198 #define sss_nss_get_extra_data_short_domain_name(ex) \ 199 sss_nss_get_extra_data_item((ex), EX_DATA_SHORT_DOMAIN_NAME) 200 #define sss_nss_get_extra_data_sid_str(ex) \ 201 sss_nss_get_extra_data_item((ex), EX_DATA_SID_STR) 228 int sss_nss_getpwnam_ex(
const char *name,
struct passwd *pwd,
229 char *buf,
size_t buflen,
struct passwd **result,
230 uint32_t flags,
unsigned int timeout,
232 struct sss_nss_ex_data **extra_data);
234 int sss_nss_getpwuid_ex(uid_t uid,
struct passwd *pwd,
235 char *buffer,
size_t buflen,
struct passwd **result,
236 uint32_t flags,
unsigned int timeout,
238 struct sss_nss_ex_data **extra_data);
240 int sss_nss_getgrnam_ex(
const char *name,
struct group *grp,
241 char *buffer,
size_t buflen,
struct group **result,
242 uint32_t flags,
unsigned int timeout,
244 struct sss_nss_ex_data **extra_data);
246 int sss_nss_getgrgid_ex(gid_t gid,
struct group *grp,
247 char *buffer,
size_t buflen,
struct group **result,
248 uint32_t flags,
unsigned int timeout,
250 struct sss_nss_ex_data **extra_data);
251 int sss_nss_getgrouplist_ex(
const char *name, gid_t *groups,
int *ngroups,
252 uint32_t flags,
unsigned int timeout,