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 Library General Public 10 License as published by the Free Software Foundation; either 11 version 2 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 Library General Public 19 License along with this library; if not, write to the 20 Free Software Foundation, Inc., 59 Temple Place - Suite 330, 21 Boston, MA 02111-1307, USA. 22*/ 23 24#ifndef _WINBIND_NSS_CONFIG_H 25#define _WINBIND_NSS_CONFIG_H 26 27/* Include header files from data in config.h file */ 28 29#ifndef NO_CONFIG_H 30#include <config.h> 31#endif 32 33#include <stdio.h> 34 35#ifdef HAVE_STDLIB_H 36#include <stdlib.h> 37#endif 38 39#ifdef HAVE_UNISTD_H 40#include <unistd.h> 41#endif 42 43#ifdef HAVE_SYS_SELECT_H 44#include <sys/select.h> 45#endif 46 47#ifdef HAVE_SYS_SOCKET_H 48#include <sys/socket.h> 49#endif 50 51#ifdef HAVE_UNIXSOCKET 52#include <sys/un.h> 53#endif 54 55#ifdef HAVE_SYS_TIME_H 56#include <sys/time.h> 57#endif 58 59#ifdef HAVE_GRP_H 60#include <grp.h> 61#endif 62 63#ifdef HAVE_STRING_H 64#include <string.h> 65#endif 66 67#ifdef HAVE_FCNTL_H 68#include <fcntl.h> 69#else 70#ifdef HAVE_SYS_FCNTL_H 71#include <sys/fcntl.h> 72#endif 73#endif 74 75#include <sys/types.h> 76#include <sys/stat.h> 77#include <errno.h> 78#include <pwd.h> 79#include "nsswitch/winbind_nss.h" 80 81/* I'm trying really hard not to include anything from smb.h with the 82 result of some silly looking redeclaration of structures. */ 83 84#ifndef _PSTRING 85#define _PSTRING 86#define PSTRING_LEN 1024 87#define FSTRING_LEN 256 88typedef char pstring[PSTRING_LEN]; 89typedef char fstring[FSTRING_LEN]; 90#endif 91 92#ifndef _BOOL 93#define _BOOL /* So we don't typedef BOOL again in vfs.h */ 94#define False (0) 95#define True (1) 96#define Auto (2) 97typedef int BOOL; 98#endif 99 100#if !defined(uint32) 101#if (SIZEOF_INT == 4) 102#define uint32 unsigned int 103#elif (SIZEOF_LONG == 4) 104#define uint32 unsigned long 105#elif (SIZEOF_SHORT == 4) 106#define uint32 unsigned short 107#endif 108#endif 109 110#if !defined(uint16) 111#if (SIZEOF_SHORT == 4) 112#define uint16 __ERROR___CANNOT_DETERMINE_TYPE_FOR_INT16; 113#else /* SIZEOF_SHORT != 4 */ 114#define uint16 unsigned short 115#endif /* SIZEOF_SHORT != 4 */ 116#endif 117 118#ifndef uint8 119#define uint8 unsigned char 120#endif 121 122/* zero a structure */ 123#ifndef ZERO_STRUCT 124#define ZERO_STRUCT(x) memset((char *)&(x), 0, sizeof(x)) 125#endif 126 127/* zero a structure given a pointer to the structure */ 128#ifndef ZERO_STRUCTP 129#define ZERO_STRUCTP(x) { if ((x) != NULL) memset((char *)(x), 0, sizeof(*(x))); } 130#endif 131 132/* Some systems (SCO) treat UNIX domain sockets as FIFOs */ 133 134#ifndef S_IFSOCK 135#define S_IFSOCK S_IFIFO 136#endif 137 138#ifndef S_ISSOCK 139#define S_ISSOCK(mode) ((mode & S_IFSOCK) == S_IFSOCK) 140#endif 141 142#endif 143