1/* 2 Unix SMB/CIFS implementation. 3 nss includes for the nss tester 4 Copyright (C) Kai Blin 2007 5 6 ** NOTE! The following LGPL license applies to the nsstest 7 ** header. This does NOT imply that all of Samba is released 8 ** under the LGPL 9 10 This library is free software; you can redistribute it and/or 11 modify it under the terms of the GNU Lesser General Public 12 License as published by the Free Software Foundation; either 13 version 3 of the License, or (at your option) any later version. 14 15 This library is distributed in the hope that it will be useful, 16 but WITHOUT ANY WARRANTY; without even the implied warranty of 17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 Library General Public License for more details. 19 20 You should have received a copy of the GNU Lesser General Public License 21 along with this program. If not, see <http://www.gnu.org/licenses/>. 22*/ 23 24#ifndef _NSSTEST_H 25#define _NSSTEST_H 26 27#include <pwd.h> 28#include <grp.h> 29 30#ifdef HAVE_NSS_COMMON_H 31 32/* 33 * Sun Solaris 34 */ 35 36#include <nss_common.h> 37#include <nss_dbdefs.h> 38#include <nsswitch.h> 39 40typedef nss_status_t NSS_STATUS; 41 42#define NSS_STATUS_SUCCESS NSS_SUCCESS 43#define NSS_STATUS_NOTFOUND NSS_NOTFOUND 44#define NSS_STATUS_UNAVAIL NSS_UNAVAIL 45#define NSS_STATUS_TRYAGAIN NSS_TRYAGAIN 46 47#elif HAVE_NSS_H 48 49/* 50 * Linux (glibc) 51 */ 52 53#include <nss.h> 54typedef enum nss_status NSS_STATUS; 55 56#elif HAVE_NS_API_H 57 58/* 59 * SGI IRIX 60 */ 61 62#ifdef DATUM 63#define _DATUM_DEFINED 64#endif 65 66#include <ns_api.h> 67 68typedef enum 69{ 70 NSS_STATUS_SUCCESS=NS_SUCCESS, 71 NSS_STATUS_NOTFOUND=NS_NOTFOUND, 72 NSS_STATUS_UNAVAIL=NS_UNAVAIL, 73 NSS_STATUS_TRYAGAIN=NS_TRYAGAIN 74} NSS_STATUS; 75 76#define NSD_MEM_STATIC 0 77#define NSD_MEM_VOLATILE 1 78#define NSD_MEM_DYNAMIC 2 79 80#elif defined(HPUX) && defined(HAVE_NSSWITCH_H) 81 82/* HP-UX 11 */ 83 84#include <nsswitch.h> 85 86#define NSS_STATUS_SUCCESS NSS_SUCCESS 87#define NSS_STATUS_NOTFOUND NSS_NOTFOUND 88#define NSS_STATUS_UNAVAIL NSS_UNAVAIL 89#define NSS_STATUS_TRYAGAIN NSS_TRYAGAIN 90 91#ifdef HAVE_SYNCH_H 92#include <synch.h> 93#endif 94#ifdef HAVE_PTHREAD_H 95#include <pthread.h> 96#endif 97 98typedef enum { 99 NSS_SUCCESS, 100 NSS_NOTFOUND, 101 NSS_UNAVAIL, 102 NSS_TRYAGAIN 103} nss_status_t; 104 105typedef nss_status_t NSS_STATUS; 106 107#else /* Nothing's defined. Neither solaris nor gnu nor sun nor hp */ 108 109typedef enum 110{ 111 NSS_STATUS_SUCCESS=0, 112 NSS_STATUS_NOTFOUND=1, 113 NSS_STATUS_UNAVAIL=2, 114 NSS_STATUS_TRYAGAIN=3 115} NSS_STATUS; 116 117#endif 118 119#endif /* _NSSTEST_H */ 120