|
Packit |
6bd9ab |
/*
|
|
Packit |
6bd9ab |
prototypes.h - all functions exported by the NSS library
|
|
Packit |
6bd9ab |
|
|
Packit |
6bd9ab |
Copyright (C) 2006 West Consulting
|
|
Packit |
6bd9ab |
Copyright (C) 2006-2015 Arthur de Jong
|
|
Packit |
6bd9ab |
|
|
Packit |
6bd9ab |
This library is free software; you can redistribute it and/or
|
|
Packit |
6bd9ab |
modify it under the terms of the GNU Lesser General Public
|
|
Packit |
6bd9ab |
License as published by the Free Software Foundation; either
|
|
Packit |
6bd9ab |
version 2.1 of the License, or (at your option) any later version.
|
|
Packit |
6bd9ab |
|
|
Packit |
6bd9ab |
This library is distributed in the hope that it will be useful,
|
|
Packit |
6bd9ab |
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Packit |
6bd9ab |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Packit |
6bd9ab |
Lesser General Public License for more details.
|
|
Packit |
6bd9ab |
|
|
Packit |
6bd9ab |
You should have received a copy of the GNU Lesser General Public
|
|
Packit |
6bd9ab |
License along with this library; if not, write to the Free Software
|
|
Packit |
6bd9ab |
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
|
Packit |
6bd9ab |
02110-1301 USA
|
|
Packit |
6bd9ab |
*/
|
|
Packit |
6bd9ab |
|
|
Packit |
6bd9ab |
#ifndef NSS__PROTOTYPES_H
|
|
Packit |
6bd9ab |
#define NSS__PROTOTYPES_H 1
|
|
Packit |
6bd9ab |
|
|
Packit |
6bd9ab |
#include "compat/nss_compat.h"
|
|
Packit |
6bd9ab |
|
|
Packit |
6bd9ab |
/* flag to gloabally disable lookups (all _nss_ldap_*() functions will return
|
|
Packit |
6bd9ab |
NSS_STATUS_UNAVAIL */
|
|
Packit |
6bd9ab |
extern int NSS_NAME(enablelookups);
|
|
Packit |
6bd9ab |
|
|
Packit |
6bd9ab |
#ifdef NSS_FLAVOUR_FREEBSD
|
|
Packit |
6bd9ab |
|
|
Packit |
6bd9ab |
/* for FreeBSD we want the GlibC prototypes and functions to be built
|
|
Packit |
6bd9ab |
(we provide some wrappers in bsdnss.c) */
|
|
Packit |
6bd9ab |
#define NSS_FLAVOUR_GLIBC 1
|
|
Packit |
6bd9ab |
|
|
Packit |
6bd9ab |
/* FreeBSD specific register function */
|
|
Packit |
6bd9ab |
ns_mtab *nss_module_register(const char *source, unsigned int *mtabsize,
|
|
Packit |
6bd9ab |
nss_module_unregister_fn *unreg);
|
|
Packit |
6bd9ab |
|
|
Packit |
6bd9ab |
#endif /* NSS_FLAVOUR_FREEBSD */
|
|
Packit |
6bd9ab |
|
|
Packit |
6bd9ab |
#ifdef NSS_FLAVOUR_GLIBC
|
|
Packit |
6bd9ab |
|
|
Packit |
6bd9ab |
/*
|
|
Packit |
6bd9ab |
These are prototypes for functions exported from the ldap NSS module.
|
|
Packit |
6bd9ab |
For more complete definitions of these functions check the GLIBC
|
|
Packit |
6bd9ab |
documentation.
|
|
Packit |
6bd9ab |
|
|
Packit |
6bd9ab |
Other services than those mentioned here are currently not implemented.
|
|
Packit |
6bd9ab |
|
|
Packit |
6bd9ab |
These definitions partially came from examining the GLIBC source code
|
|
Packit |
6bd9ab |
as no complete documentation of the NSS interface is available.
|
|
Packit |
6bd9ab |
This however is a useful pointer:
|
|
Packit |
6bd9ab |
http://www.gnu.org/software/libc/manual/html_node/Name-Service-Switch.html
|
|
Packit |
6bd9ab |
*/
|
|
Packit |
6bd9ab |
|
|
Packit |
6bd9ab |
/* aliases - mail aliases */
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(getaliasbyname_r)(const char *name, struct aliasent *result, char *buffer, size_t buflen, int *errnop);
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(setaliasent)(void);
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(getaliasent_r)(struct aliasent *result, char *buffer, size_t buflen, int *errnop);
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(endaliasent)(void);
|
|
Packit |
6bd9ab |
|
|
Packit |
6bd9ab |
/* ethers - ethernet numbers */
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(gethostton_r)(const char *name, struct etherent *result, char *buffer, size_t buflen, int *errnop);
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(getntohost_r)(const struct ether_addr *addr, struct etherent *result, char *buffer, size_t buflen, int *errnop);
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(setetherent)(int stayopen);
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(getetherent_r)(struct etherent *result, char *buffer, size_t buflen, int *errnop);
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(endetherent)(void);
|
|
Packit |
6bd9ab |
|
|
Packit |
6bd9ab |
/* group - groups of users */
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(getgrnam_r)(const char *name, struct group *result, char *buffer, size_t buflen, int *errnop);
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(getgrgid_r)(gid_t gid, struct group *result, char *buffer, size_t buflen, int *errnop);
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(initgroups_dyn)(const char *user, gid_t skipgroup, long int *start, long int *size, gid_t **groupsp, long int limit, int *errnop);
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(setgrent)(int stayopen);
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(getgrent_r)(struct group *result, char *buffer, size_t buflen, int *errnop);
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(endgrent)(void);
|
|
Packit |
6bd9ab |
|
|
Packit |
6bd9ab |
/* hosts - host names and numbers */
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(gethostbyname_r)(const char *name, struct hostent *result, char *buffer, size_t buflen, int *errnop, int *h_errnop);
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(gethostbyname2_r)(const char *name, int af, struct hostent *result, char *buffer, size_t buflen, int *errnop, int *h_errnop);
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(gethostbyaddr_r)(const void *addr, socklen_t len, int af, struct hostent *result, char *buffer, size_t buflen, int *errnop, int *h_errnop);
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(sethostent)(int stayopen);
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(gethostent_r)(struct hostent *result, char *buffer, size_t buflen, int *errnop, int *h_errnop);
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(endhostent)(void);
|
|
Packit |
6bd9ab |
|
|
Packit |
6bd9ab |
/* netgroup - list of host and users */
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(setnetgrent)(const char *group, struct __netgrent *result);
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(getnetgrent_r)(struct __netgrent *result, char *buffer, size_t buflen, int *errnop);
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(endnetgrent)(struct __netgrent *result);
|
|
Packit |
6bd9ab |
|
|
Packit |
6bd9ab |
/* networks - network names and numbers */
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(getnetbyname_r)(const char *name, struct netent *result, char *buffer, size_t buflen, int *errnop, int *h_errnop);
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(getnetbyaddr_r)(uint32_t addr, int af, struct netent *result, char *buffer, size_t buflen, int *errnop, int *h_errnop);
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(setnetent)(int stayopen);
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(getnetent_r)(struct netent *result, char *buffer, size_t buflen, int *errnop, int *h_errnop);
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(endnetent)(void);
|
|
Packit |
6bd9ab |
|
|
Packit |
6bd9ab |
/* passwd - user database and passwords */
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(getpwnam_r)(const char *name, struct passwd *result, char *buffer, size_t buflen, int *errnop);
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(getpwuid_r)(uid_t uid, struct passwd *result, char *buffer, size_t buflen, int *errnop);
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(setpwent)(int stayopen);
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(getpwent_r)(struct passwd *result, char *buffer, size_t buflen, int *errnop);
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(endpwent)(void);
|
|
Packit |
6bd9ab |
|
|
Packit |
6bd9ab |
/* protocols - network protocols */
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(getprotobyname_r)(const char *name, struct protoent *result, char *buffer, size_t buflen, int *errnop);
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(getprotobynumber_r)(int number, struct protoent *result, char *buffer, size_t buflen, int *errnop);
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(setprotoent)(int stayopen);
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(getprotoent_r)(struct protoent *result, char *buffer, size_t buflen, int *errnop);
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(endprotoent)(void);
|
|
Packit |
6bd9ab |
|
|
Packit |
6bd9ab |
/* rpc - remote procedure call names and numbers */
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(getrpcbyname_r)(const char *name, struct rpcent *result, char *buffer, size_t buflen, int *errnop);
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(getrpcbynumber_r)(int number, struct rpcent *result, char *buffer, size_t buflen, int *errnop);
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(setrpcent)(int stayopen);
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(getrpcent_r)(struct rpcent *result, char *buffer, size_t buflen, int *errnop);
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(endrpcent)(void);
|
|
Packit |
6bd9ab |
|
|
Packit |
6bd9ab |
/* services - network services */
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(getservbyname_r)(const char *name, const char *protocol, struct servent *result, char *buffer, size_t buflen, int *errnop);
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(getservbyport_r)(int port, const char *protocol, struct servent *result, char *buffer, size_t buflen, int *errnop);
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(setservent)(int stayopen);
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(getservent_r)(struct servent *result, char *buffer, size_t buflen, int *errnop);
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(endservent)(void);
|
|
Packit |
6bd9ab |
|
|
Packit |
6bd9ab |
/* shadow - extended user information */
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(getspnam_r)(const char *name, struct spwd *result, char *buffer, size_t buflen, int *errnop);
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(setspent)(int stayopen);
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(getspent_r)(struct spwd *result, char *buffer, size_t buflen, int *errnop);
|
|
Packit |
6bd9ab |
nss_status_t NSS_NAME(endspent)(void);
|
|
Packit |
6bd9ab |
|
|
Packit |
6bd9ab |
#endif /* NSS_FLAVOUR_GLIBC */
|
|
Packit |
6bd9ab |
|
|
Packit |
6bd9ab |
#ifdef NSS_FLAVOUR_SOLARIS
|
|
Packit |
6bd9ab |
|
|
Packit |
6bd9ab |
/* helper marcos to do casts */
|
|
Packit |
6bd9ab |
#define NSS_ARGS(args) ((nss_XbyY_args_t *)args)
|
|
Packit |
6bd9ab |
#define LDAP_BE(be) ((struct nss_ldap_backend*)(be))
|
|
Packit |
6bd9ab |
|
|
Packit |
6bd9ab |
/* these are the constructors we provide */
|
|
Packit |
6bd9ab |
nss_backend_t *NSS_NAME(ethers_constr)(const char *db_name, const char *src_name, const char *cfg_args);
|
|
Packit |
6bd9ab |
nss_backend_t *NSS_NAME(group_constr)(const char *db_name, const char *src_name, const char *cfg_args);
|
|
Packit |
6bd9ab |
nss_backend_t *NSS_NAME(hosts_constr)(const char *db_name, const char *src_name, const char *cfg_args);
|
|
Packit |
6bd9ab |
nss_backend_t *NSS_NAME(netgroup_constr)(const char *db_name, const char *src_name, const char *cfg_args);
|
|
Packit |
6bd9ab |
nss_backend_t *NSS_NAME(networks_constr)(const char *db_name, const char *src_name, const char *cfg_args);
|
|
Packit |
6bd9ab |
nss_backend_t *NSS_NAME(passwd_constr)(const char *db_name, const char *src_name, const char *cfg_args);
|
|
Packit |
6bd9ab |
nss_backend_t *NSS_NAME(protocols_constr)(const char *db_name, const char *src_name, const char *cfg_args);
|
|
Packit |
6bd9ab |
nss_backend_t *NSS_NAME(rpc_constr)(const char *db_name, const char *src_name, const char *cfg_args);
|
|
Packit |
6bd9ab |
nss_backend_t *NSS_NAME(services_constr)(const char *db_name, const char *src_name, const char *cfg_args);
|
|
Packit |
6bd9ab |
nss_backend_t *NSS_NAME(shadow_constr)(const char *db_name, const char *src_name, const char *cfg_args);
|
|
Packit |
6bd9ab |
|
|
Packit |
6bd9ab |
#endif /* NSS_FLAVOUR_SOLARIS */
|
|
Packit |
6bd9ab |
|
|
Packit |
6bd9ab |
#endif /* not NSS__PROTOTYPES_H */
|