#ifndef _INCLUDES_H #define _INCLUDES_H /* Unix SMB/Netbios implementation. Version 1.9. Machine customisation and include handling Copyright (C) Andrew Tridgell 1994-1998 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "config.h" #include "local.h" #ifdef AIX #define DEFAULT_PRINTING PRINT_AIX #endif #ifdef HPUX #define DEFAULT_PRINTING PRINT_HPUX #endif #ifdef QNX #define DEFAULT_PRINTING PRINT_QNX #endif #ifdef SUNOS4 #define REPLACE_GETPASS /* on SUNOS4 termios.h conflicts with sys/ioctl.h */ #undef HAVE_TERMIOS_H #endif #ifdef SUNOS5 #define REPLACE_GETPASS #endif #include #ifdef HAVE_UNISTD_H #include #endif #include #include #ifdef HAVE_SYS_PARAM_H #include #endif #ifdef HAVE_STDLIB_H #include #endif #ifdef HAVE_SYS_SOCKET_H #include #endif #ifdef HAVE_STRING_H #include #endif #ifdef HAVE_MALLOC_H #include #endif #ifdef TIME_WITH_SYS_TIME #include #include #else #ifdef HAVE_SYS_TIME_H #include #else #include #endif #endif #ifdef HAVE_FCNTL_H #include #else #ifdef HAVE_SYS_FCNTL_H #include #endif #endif #include #ifdef HAVE_LIMITS_H #include #endif #ifdef HAVE_SYS_IOCTL_H #include #endif #ifdef HAVE_SYS_FILIO_H #include #endif #include #ifdef HAVE_SYS_WAIT_H #include #endif #ifdef HAVE_CTYPE_H #include #endif #ifdef HAVE_GRP_H #include #endif #ifdef HAVE_SYS_ID_H #include #endif #include #ifdef HAVE_UTIME_H #include #endif #ifdef HAVE_SYS_SELECT_H #include #endif #ifdef HAVE_SYS_MODE_H /* apparently AIX needs this for S_ISLNK */ #ifndef S_ISLNK #include #endif #endif #ifdef HAVE_GLOB #include #endif #include #include #ifdef HAVE_STDARG_H #include #else #include #endif #include #include #include #include #include #ifdef HAVE_NETINET_TCP_H #include #endif #ifdef HAVE_TERMIOS_H #include #endif #if HAVE_DIRENT_H # include # define NAMLEN(dirent) strlen((dirent)->d_name) #else # define dirent direct # define NAMLEN(dirent) (dirent)->d_namlen # if HAVE_SYS_NDIR_H # include # endif # if HAVE_SYS_DIR_H # include # endif # if HAVE_NDIR_H # include # endif #endif #ifdef HAVE_SHARED_MMAP #include #endif #ifdef HAVE_SYSV_IPC #include #include #include #endif #ifdef HAVE_NET_IF_H #include #endif #ifdef HAVE_SYS_MOUNT_H #include #endif #ifdef HAVE_SYS_VFS_H #include #endif #ifdef HAVE_SYS_FS_S5PARAM_H #include #endif #if defined (HAVE_SYS_FILSYS_H) && !defined (_CRAY) #include #endif #ifdef HAVE_SYS_STATFS_H # include #endif #ifdef HAVE_DUSTAT_H #include #endif #ifdef HAVE_SYS_STATVFS_H #include #endif #ifdef HAVE_SHADOW_H #include #endif #ifdef HAVE_SYS_SECURITY_H #include #include #define PASSWORD_LENGTH 16 #endif /* HAVE_SYS_SECURITY_H */ #ifdef HAVE_COMPAT_H #include #endif #ifndef uchar #define uchar unsigned char #endif #ifdef HAVE_UNSIGNED_CHAR #define schar signed char #else #define schar char #endif #ifndef int32 #if (SIZEOF_INT == 4) #define int32 int #elif (SIZEOF_LONG == 4) #define int32 long #elif (SIZEOF_SHORT == 4) #define int32 short #endif #endif #ifndef uint32 #define uint32 unsigned int32 #endif #ifndef MIN #define MIN(a,b) ((a)<(b)?(a):(b)) #endif #ifndef MAX #define MAX(a,b) ((a)>(b)?(a):(b)) #endif #ifndef HAVE_STRERROR extern char *sys_errlist[]; #define strerror(i) sys_errlist[i] #endif #ifndef HAVE_STRCHR # define strchr index # define strrchr rindex #endif #ifndef HAVE_ERRNO_DECL extern int errno; #endif #ifdef HAVE_BROKEN_GETGROUPS #define GID_T int #else #define GID_T gid_t #endif /* Lists, trees, caching, datbase... */ #include "ubi_sLinkList.h" #include "ubi_dLinkList.h" #ifndef UBI_BINTREE_H #include "ubi_Cache.h" #endif /* UBI_BINTREE_H */ #include "version.h" #include "smb.h" #include "nameserv.h" #include "byteorder.h" #include "kanji.h" #include "charset.h" #ifndef MAXCODEPAGELINES #define MAXCODEPAGELINES 256 #endif /***** automatically generated prototypes *****/ #include "proto.h" #ifdef strcpy #undef strcpy #endif /* strcpy */ #define strcpy(dest,src) __ERROR__XX__NEVER_USE_STRCPY___; #ifdef strcat #undef strcat #endif /* strcat */ #define strcat(dest,src) __ERROR__XX__NEVER_USE_STRCAT___; #ifdef sprintf #undef sprintf #endif /* sprintf */ #define sprintf __ERROR__XX__NEVER_USE_SPRINTF__; #define pstrcpy(d,s) safe_strcpy((d),(s),sizeof(pstring)-1) #define pstrcat(d,s) safe_strcat((d),(s),sizeof(pstring)-1) #define fstrcpy(d,s) safe_strcpy((d),(s),sizeof(fstring)-1) #define fstrcat(d,s) safe_strcat((d),(s),sizeof(fstring)-1) #ifdef __COMPAR_FN_T #define QSORT_CAST (__compar_fn_t) #endif #ifndef QSORT_CAST #define QSORT_CAST (int (*)(const void *, const void *)) #endif /* this guess needs to be improved (tridge) */ #if defined(HAVE_STATVFS) && !defined(SYSV) #define SYSV 1 #endif #ifndef DEFAULT_PRINTING #ifdef SYSV #define DEFAULT_PRINTING PRINT_SYSV #else #define DEFAULT_PRINTING PRINT_BSD #endif #endif #ifndef SIGCLD #define SIGCLD SIGCHLD #endif #if (defined(HAVE_SYSV_IPC) || defined(HAVE_SHARED_MMAP)) #define FAST_SHARE_MODES 1 #endif #ifndef MAP_FILE #define MAP_FILE 0 #endif #ifdef HAVE_SYSV_IPC #ifndef HAVE_UNION_SEMUN union semun { int val; struct semid_ds *buf; unsigned short *array; }; #endif #endif #if (!defined(WITH_NISPLUS) && !defined(WITH_LDAP)) #define USE_SMBPASS_DB 1 #endif #if defined(HAVE_PUTPRPWNAM) && defined(AUTH_CLEARTEXT_SEG_CHARS) #define OSF1_ENH_SEC 1 #endif #if defined(HAVE_PAM_AUTHENTICATE) && defined(HAVE_SECURITY_PAM_APPL_H) #define HAVE_PAM 1 #endif #if defined(HAVE_YP_GET_DEFAULT_DOMAIN) #define HAVE_NETGROUP 1 #endif #ifndef ALLOW_CHANGE_PASSWORD #if (defined(HAVE_TERMIOS_H) && defined(HAVE_DUP2) && defined(HAVE_SETSID)) #define ALLOW_CHANGE_PASSWORD 1 #endif #endif /* what is the longest significant password available on your system? Knowing this speeds up password searches a lot */ #ifndef PASSWORD_LENGTH #define PASSWORD_LENGTH 8 #endif #ifndef HAVE_PIPE #define SYNC_DNS 1 #endif #ifndef MAXPATHLEN #define MAXPATHLEN 256 #endif #ifndef SEEK_SET #define SEEK_SET 0 #endif #ifndef INADDR_LOOPBACK #define INADDR_LOOPBACK 0x7f000001 #endif #ifndef HAVE_CRYPT #define crypt ufc_crypt #endif #if defined(HAVE_CRYPT16) && defined(HAVE_GETAUTHUID) #define ULTRIX_AUTH 1 #endif #ifndef HAVE_STRDUP char *strdup(const char *s); #endif #ifndef HAVE_MEMMOVE void *memmove(void *dest,const void *src,int size); #endif #ifndef HAVE_INITGROUPS int initgroups(char *name,gid_t id); #endif #ifndef HAVE_RENAME int rename(const char *zfrom, const char *zto); #endif #ifndef HAVE_MKTIME time_t mktime(struct tm *t); #endif #ifndef HAVE_FTRUNCATE int ftruncate(int f,long l); #endif #endif /* _INCLUDES_H */