Blame nss/prototypes.h

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 */