mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-28 13:31:13 +00:00
ae7a94e5e3
this means that *always* libnsl is only built as shared library for backward compatibility and the NSS modules libnss_nis and libnss_nisplus are not built at all, libnsl's headers aren't installed. This compatibility is kept only for architectures and ABIs that have been added in or before version 2.28. Replacement implementations based on TIRPC, which additionally support IPv6, are available from <https://github.com/thkukuk/>. This change does not affect libnss_compat which does not depended on libnsl since 2.27 and thus can be used without NIS. libnsl code depends on Sun RPC, e.g. on --enable-obsolete-rpc (installed libnsl headers use installed Sun RPC headers), which will be removed in the following commit.
63 lines
2.4 KiB
C
63 lines
2.4 KiB
C
#ifndef _GRP_H
|
|
#include <grp/grp.h>
|
|
|
|
#ifndef _ISOMAC
|
|
libc_hidden_proto (setgroups)
|
|
|
|
/* Now define the internal interfaces. */
|
|
extern int __getgrent_r (struct group *__resultbuf, char *buffer,
|
|
size_t __buflen, struct group **__result)
|
|
attribute_hidden;
|
|
extern int __old_getgrent_r (struct group *__resultbuf, char *buffer,
|
|
size_t __buflen, struct group **__result);
|
|
extern int __fgetgrent_r (FILE * __stream, struct group *__resultbuf,
|
|
char *buffer, size_t __buflen,
|
|
struct group **__result) attribute_hidden;
|
|
|
|
/* Search for an entry with a matching group ID. */
|
|
extern int __getgrgid_r (__gid_t __gid, struct group *__resultbuf,
|
|
char *__buffer, size_t __buflen,
|
|
struct group **__result) attribute_hidden;
|
|
extern int __old_getgrgid_r (__gid_t __gid, struct group *__resultbuf,
|
|
char *__buffer, size_t __buflen,
|
|
struct group **__result);
|
|
|
|
/* Search for an entry with a matching group name. */
|
|
extern int __getgrnam_r (const char *__name, struct group *__resultbuf,
|
|
char *__buffer, size_t __buflen,
|
|
struct group **__result) attribute_hidden;
|
|
extern int __old_getgrnam_r (const char *__name, struct group *__resultbuf,
|
|
char *__buffer, size_t __buflen,
|
|
struct group **__result);
|
|
|
|
struct parser_data;
|
|
extern int _nss_files_parse_grent (char *line, struct group *result,
|
|
struct parser_data *data,
|
|
size_t datalen, int *errnop);
|
|
libc_hidden_proto (_nss_files_parse_grent)
|
|
|
|
#define DECLARE_NSS_PROTOTYPES(service) \
|
|
extern enum nss_status _nss_ ## service ## _setgrent (int); \
|
|
extern enum nss_status _nss_ ## service ## _endgrent (void); \
|
|
extern enum nss_status _nss_ ## service ## _getgrgid_r \
|
|
(gid_t gid, struct group *grp, char *buffer, \
|
|
size_t buflen, int *errnop); \
|
|
extern enum nss_status _nss_ ## service ## _getgrnam_r \
|
|
(const char *name, struct group *grp, \
|
|
char *buffer, size_t buflen, int *errnop); \
|
|
extern enum nss_status _nss_ ## service ##_getgrent_r \
|
|
(struct group *result, char *buffer, size_t buflen, \
|
|
int *errnop); \
|
|
extern enum nss_status _nss_ ## service ##_initgroups_dyn \
|
|
(const char *user, gid_t group, long int *start, \
|
|
long int *size, gid_t **groupsp, long int limit, \
|
|
int *errnop);
|
|
|
|
DECLARE_NSS_PROTOTYPES (compat)
|
|
DECLARE_NSS_PROTOTYPES (files)
|
|
DECLARE_NSS_PROTOTYPES (hesiod)
|
|
|
|
#undef DECLARE_NSS_PROTOTYPES
|
|
#endif
|
|
#endif
|