2002-01-09 00:11:25 +03:00
/*
2002-01-30 09:08:46 +03:00
Unix SMB / CIFS implementation .
2008-12-16 11:30:16 +03:00
2002-01-09 00:11:25 +03:00
Donated by HP to enable Winbindd to build on HPUX 11. x .
Copyright ( C ) Jeremy Allison 2002.
2008-12-16 11:30:16 +03:00
2002-01-09 00:11:25 +03:00
This library is free software ; you can redistribute it and / or
2007-07-10 08:04:46 +04:00
modify it under the terms of the GNU Lesser General Public
2002-01-09 00:11:25 +03:00
License as published by the Free Software Foundation ; either
2007-07-10 06:31:50 +04:00
version 3 of the License , or ( at your option ) any later version .
2008-12-16 11:30:16 +03:00
2002-01-09 00:11:25 +03:00
This library is distributed in the hope that it will be useful ,
but WITHOUT ANY WARRANTY ; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the GNU
Library General Public License for more details .
2008-12-16 11:30:16 +03:00
2007-07-10 08:04:46 +04:00
You should have received a copy of the GNU Lesser General Public
2007-07-10 07:42:26 +04:00
License along with this library ; if not , see < http : //www.gnu.org/licenses/>.
2002-01-09 00:11:25 +03:00
*/
2003-03-31 08:36:01 +04:00
# ifndef _WINBIND_NSS_HPUX_H
# define _WINBIND_NSS_HPUX_H
# include <nsswitch.h>
# define NSS_STATUS_SUCCESS NSS_SUCCESS
# define NSS_STATUS_NOTFOUND NSS_NOTFOUND
# define NSS_STATUS_UNAVAIL NSS_UNAVAIL
# define NSS_STATUS_TRYAGAIN NSS_TRYAGAIN
# ifdef HAVE_SYNCH_H
# include <synch.h>
# endif
# ifdef HAVE_PTHREAD_H
# include <pthread.h>
# endif
2008-12-16 11:30:16 +03:00
2003-03-31 08:36:01 +04:00
typedef enum {
NSS_SUCCESS ,
NSS_NOTFOUND ,
NSS_UNAVAIL ,
NSS_TRYAGAIN
} nss_status_t ;
2008-12-16 11:30:16 +03:00
2003-11-04 00:05:47 +03:00
typedef nss_status_t NSS_STATUS ;
2003-03-31 08:36:01 +04:00
struct nss_backend ;
2008-12-16 11:30:16 +03:00
2003-03-31 08:36:01 +04:00
typedef nss_status_t ( * nss_backend_op_t ) ( struct nss_backend * , void * args ) ;
2008-12-16 11:30:16 +03:00
2003-03-31 08:36:01 +04:00
struct nss_backend {
nss_backend_op_t * ops ;
int n_ops ;
} ;
typedef struct nss_backend nss_backend_t ;
typedef int nss_dbop_t ;
2002-01-09 00:11:25 +03:00
# include <errno.h>
# include <netdb.h>
# include <limits.h>
2008-12-16 11:30:16 +03:00
2002-01-09 00:11:25 +03:00
# ifndef NSS_INCLUDE_UNSAFE
# define NSS_INCLUDE_UNSAFE 1 /* Build old, MT-unsafe interfaces, */
# endif /* NSS_INCLUDE_UNSAFE */
2008-12-16 11:30:16 +03:00
2002-01-09 00:11:25 +03:00
enum nss_netgr_argn {
NSS_NETGR_MACHINE ,
NSS_NETGR_USER ,
NSS_NETGR_DOMAIN ,
NSS_NETGR_N
} ;
2008-12-16 11:30:16 +03:00
2002-01-09 00:11:25 +03:00
enum nss_netgr_status {
NSS_NETGR_FOUND ,
NSS_NETGR_NO ,
NSS_NETGR_NOMEM
} ;
2008-12-16 11:30:16 +03:00
2002-01-09 00:11:25 +03:00
typedef unsigned nss_innetgr_argc ;
typedef char * * nss_innetgr_argv ;
2008-12-16 11:30:16 +03:00
2002-01-09 00:11:25 +03:00
struct nss_innetgr_1arg {
2002-01-09 23:48:18 +03:00
nss_innetgr_argc argc ;
2002-01-09 00:11:25 +03:00
nss_innetgr_argv argv ;
} ;
2008-12-16 11:30:16 +03:00
2002-01-09 00:11:25 +03:00
typedef struct {
void * result ; /* "result" parameter to getXbyY_r() */
char * buffer ; /* "buffer" " " */
int buflen ; /* "buflen" " " */
} nss_XbyY_buf_t ;
2008-12-16 11:30:16 +03:00
2002-01-09 00:11:25 +03:00
extern nss_XbyY_buf_t * _nss_XbyY_buf_alloc ( int struct_size , int buffer_size ) ;
extern void _nss_XbyY_buf_free ( nss_XbyY_buf_t * ) ;
2008-12-16 11:30:16 +03:00
2002-01-09 00:11:25 +03:00
union nss_XbyY_key {
uid_t uid ;
gid_t gid ;
const char * name ;
int number ;
struct {
long net ;
int type ;
} netaddr ;
struct {
const char * addr ;
int len ;
int type ;
} hostaddr ;
struct {
union {
const char * name ;
int port ;
} serv ;
const char * proto ;
} serv ;
void * ether ;
} ;
2008-12-16 11:30:16 +03:00
2002-01-09 00:11:25 +03:00
typedef struct nss_XbyY_args {
nss_XbyY_buf_t buf ;
int stayopen ;
/*
* Support for setXXXent ( stayopen )
* Used only in hosts , protocols ,
* networks , rpc , and services .
*/
int ( * str2ent ) ( const char * instr , int instr_len , void * ent , char * buffer , int buflen ) ;
union nss_XbyY_key key ;
2008-12-16 11:30:16 +03:00
2002-01-09 00:11:25 +03:00
void * returnval ;
int erange ;
2010-06-10 19:19:16 +04:00
/*
* h_errno is defined as function call macro for multithreaded applications
* in HP - UX . * this * h_errno is not used in the HP - UX codepath of our nss
2010-06-11 01:15:19 +04:00
* modules , so let ' s simply rename it :
2010-06-10 19:19:16 +04:00
*/
2010-06-11 01:15:19 +04:00
int h_errno_unused ;
2002-01-09 00:11:25 +03:00
nss_status_t status ;
} nss_XbyY_args_t ;
2008-12-16 11:30:16 +03:00
2003-03-31 08:36:01 +04:00
# endif /* _WINBIND_NSS_HPUX_H */