1/* 2 Unix SMB/CIFS implementation. 3 4 Winbind daemon for ntdom nss module 5 6 Copyright (C) Tim Potter 2000 7 8 This library is free software; you can redistribute it and/or 9 modify it under the terms of the GNU Lesser General Public 10 License as published by the Free Software Foundation; either 11 version 3 of the License, or (at your option) any later version. 12 13 This library is distributed in the hope that it will be useful, 14 but WITHOUT ANY WARRANTY; without even the implied warranty of 15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 Library General Public License for more details. 17 18 You should have received a copy of the GNU Lesser General Public License 19 along with this program. If not, see <http://www.gnu.org/licenses/>. 20*/ 21 22#ifndef _WINBIND_NSS_SOLARIS_H 23#define _WINBIND_NSS_SOLARIS_H 24 25/* Solaris has a broken nss_common header file containing C++ reserved names. */ 26#ifndef __cplusplus 27#undef class 28#undef private 29#undef public 30#undef protected 31#undef template 32#undef this 33#undef new 34#undef delete 35#undef friend 36#endif 37 38#include <nss_common.h> 39 40#ifndef __cplusplus 41#define class #error DONT_USE_CPLUSPLUS_RESERVED_NAMES 42#define private #error DONT_USE_CPLUSPLUS_RESERVED_NAMES 43#define public #error DONT_USE_CPLUSPLUS_RESERVED_NAMES 44#define protected #error DONT_USE_CPLUSPLUS_RESERVED_NAMES 45#define template #error DONT_USE_CPLUSPLUS_RESERVED_NAMES 46#define this #error DONT_USE_CPLUSPLUS_RESERVED_NAMES 47#define new #error DONT_USE_CPLUSPLUS_RESERVED_NAMES 48#define delete #error DONT_USE_CPLUSPLUS_RESERVED_NAMES 49#define friend #error DONT_USE_CPLUSPLUS_RESERVED_NAMES 50#endif 51 52#include <nss_dbdefs.h> 53#include <nsswitch.h> 54 55typedef nss_status_t NSS_STATUS; 56 57#define NSS_STATUS_SUCCESS NSS_SUCCESS 58#define NSS_STATUS_NOTFOUND NSS_NOTFOUND 59#define NSS_STATUS_UNAVAIL NSS_UNAVAIL 60#define NSS_STATUS_TRYAGAIN NSS_TRYAGAIN 61 62/* The solaris winbind is implemented as a wrapper around the linux 63 version. */ 64 65NSS_STATUS _nss_winbind_setpwent(void); 66NSS_STATUS _nss_winbind_endpwent(void); 67NSS_STATUS _nss_winbind_getpwent_r(struct passwd* result, char* buffer, 68 size_t buflen, int* errnop); 69NSS_STATUS _nss_winbind_getpwuid_r(uid_t, struct passwd*, char* buffer, 70 size_t buflen, int* errnop); 71NSS_STATUS _nss_winbind_getpwnam_r(const char* name, struct passwd* result, 72 char* buffer, size_t buflen, int* errnop); 73 74NSS_STATUS _nss_winbind_setgrent(void); 75NSS_STATUS _nss_winbind_endgrent(void); 76NSS_STATUS _nss_winbind_getgrent_r(struct group* result, char* buffer, 77 size_t buflen, int* errnop); 78NSS_STATUS _nss_winbind_getgrnam_r(const char *name, 79 struct group *result, char *buffer, 80 size_t buflen, int *errnop); 81NSS_STATUS _nss_winbind_getgrgid_r(gid_t gid, 82 struct group *result, char *buffer, 83 size_t buflen, int *errnop); 84NSS_STATUS _nss_winbind_initgroups_dyn(char *user, gid_t group, long int *start, 85 long int *size, gid_t **groups, 86 long int limit, int *errnop); 87 88#endif /* _WINBIND_NSS_SOLARIS_H */ 89