1996-05-04 11:50:46 +04:00
# ifndef _INCLUDES_H
# define _INCLUDES_H
/*
Unix SMB / Netbios implementation .
Version 1.9 .
Machine customisation and include handling
1998-01-22 16:27:43 +03:00
Copyright ( C ) Andrew Tridgell 1994 - 1998
1996-05-04 11:50:46 +04:00
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 0213 9 , USA .
*/
1998-07-29 07:08:05 +04:00
# include "config.h"
# include "local.h"
1996-05-04 11:50:46 +04:00
1998-07-29 07:08:05 +04:00
# ifdef AIX
# define DEFAULT_PRINTING PRINT_AIX
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 07:08:05 +04:00
# ifdef HPUX
# define DEFAULT_PRINTING PRINT_HPUX
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 07:08:05 +04:00
# ifdef QNX
# define DEFAULT_PRINTING PRINT_QNX
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 07:08:05 +04:00
# ifdef SUNOS4
# define REPLACE_GETPASS
/* on SUNOS4 termios.h conflicts with sys/ioctl.h */
# undef HAVE_TERMIOS_H
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 07:08:05 +04:00
# ifdef SUNOS5
# define REPLACE_GETPASS
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 07:08:05 +04:00
# include <sys/types.h>
1996-05-04 11:50:46 +04:00
1998-07-29 07:08:05 +04:00
# ifdef HAVE_UNISTD_H
# include <unistd.h>
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 07:08:05 +04:00
# include <stdio.h>
# include <stddef.h>
1996-05-04 11:50:46 +04:00
1998-07-29 07:08:05 +04:00
# ifdef HAVE_SYS_PARAM_H
# include <sys/param.h>
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 07:08:05 +04:00
# ifdef HAVE_STDLIB_H
# include <stdlib.h>
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 07:08:05 +04:00
# ifdef HAVE_SYS_SOCKET_H
# include <sys/socket.h>
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 07:08:05 +04:00
# ifdef HAVE_STRING_H
# include <string.h>
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 07:08:05 +04:00
# ifdef HAVE_MALLOC_H
# include <malloc.h>
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 07:08:05 +04:00
# ifdef TIME_WITH_SYS_TIME
# include <sys/time.h>
1996-05-04 11:50:46 +04:00
# include <time.h>
# else
1998-07-29 07:08:05 +04:00
# ifdef HAVE_SYS_TIME_H
1996-05-04 11:50:46 +04:00
# include <sys/time.h>
# else
1998-07-29 07:08:05 +04:00
# include <time.h>
1996-05-04 11:50:46 +04:00
# endif
# endif
1998-07-29 07:08:05 +04:00
# ifdef HAVE_FCNTL_H
# include <fcntl.h>
1996-05-04 11:50:46 +04:00
# else
1998-07-29 07:08:05 +04:00
# ifdef HAVE_SYS_FCNTL_H
# include <sys/fcntl.h>
1996-05-04 11:50:46 +04:00
# endif
# endif
1998-07-29 07:08:05 +04:00
# include <sys/stat.h>
1996-05-04 11:50:46 +04:00
1998-07-29 07:08:05 +04:00
# ifdef HAVE_LIMITS_H
# include <limits.h>
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 07:08:05 +04:00
# ifdef HAVE_SYS_IOCTL_H
# include <sys/ioctl.h>
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 07:08:05 +04:00
# ifdef HAVE_SYS_FILIO_H
# include <sys/filio.h>
1998-05-08 17:51:17 +04:00
# endif
1996-05-04 11:50:46 +04:00
1998-07-29 07:08:05 +04:00
# include <signal.h>
1996-05-04 11:50:46 +04:00
1998-07-29 07:08:05 +04:00
# ifdef HAVE_SYS_WAIT_H
1996-05-04 11:50:46 +04:00
# include <sys/wait.h>
# endif
1998-07-29 07:08:05 +04:00
# ifdef HAVE_CTYPE_H
# include <ctype.h>
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 07:08:05 +04:00
# ifdef HAVE_GRP_H
# include <grp.h>
1997-01-09 21:02:17 +03:00
# endif
1998-07-29 07:08:05 +04:00
# ifdef HAVE_SYS_ID_H
# include <sys/id.h>
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 07:08:05 +04:00
# include <errno.h>
1996-05-04 11:50:46 +04:00
1998-07-29 07:08:05 +04:00
# ifdef HAVE_UTIME_H
# include <utime.h>
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 07:08:05 +04:00
# ifdef HAVE_SYS_SELECT_H
# include <sys/select.h>
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 07:08:05 +04:00
# ifdef HAVE_SYS_MODE_H
/* apparently AIX needs this for S_ISLNK */
# ifndef S_ISLNK
# include <sys/mode.h>
1996-05-04 11:50:46 +04:00
# endif
# endif
1998-07-29 07:08:05 +04:00
# ifdef HAVE_GLOB
# include <glob.h>
1996-05-04 11:50:46 +04:00
# endif
# include <pwd.h>
1998-07-29 07:08:05 +04:00
# include <grp.h>
1996-05-04 11:50:46 +04:00
1998-07-29 07:08:05 +04:00
# ifdef HAVE_STDARG_H
# include <stdarg.h>
1998-01-07 09:21:56 +03:00
# else
1998-07-29 07:08:05 +04:00
# include <varargs.h>
# endif
1996-05-04 11:50:46 +04:00
1998-02-07 15:15:20 +03:00
# include <netinet/in.h>
# include <arpa/inet.h>
1998-07-29 07:08:05 +04:00
# include <netdb.h>
# include <syslog.h>
# include <sys/file.h>
1996-05-04 11:50:46 +04:00
1998-07-29 07:08:05 +04:00
# ifdef HAVE_NETINET_TCP_H
1996-05-04 14:32:30 +04:00
# include <netinet/tcp.h>
# endif
1998-07-29 07:08:05 +04:00
# ifdef HAVE_TERMIOS_H
1997-10-21 22:27:55 +04:00
# include <termios.h>
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 07:08:05 +04:00
# if HAVE_DIRENT_H
# include <dirent.h>
# define NAMLEN(dirent) strlen((dirent)->d_name)
# else
# define dirent direct
# define NAMLEN(dirent) (dirent)->d_namlen
# if HAVE_SYS_NDIR_H
# include <sys / ndir.h>
# endif
# if HAVE_SYS_DIR_H
# include <sys / dir.h>
# endif
# if HAVE_NDIR_H
# include <ndir.h>
# endif
# endif
# ifdef HAVE_SHARED_MMAP
# include <sys/mman.h>
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 07:08:05 +04:00
# ifdef HAVE_SYSV_IPC
# include <sys/ipc.h>
# include <sys/shm.h>
# include <sys/sem.h>
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 07:08:05 +04:00
# ifdef HAVE_NET_IF_H
# include <net/if.h>
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 07:08:05 +04:00
# ifdef HAVE_SYS_MOUNT_H
# include <sys/mount.h>
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 07:08:05 +04:00
# ifdef HAVE_SYS_VFS_H
1996-05-04 11:50:46 +04:00
# include <sys/vfs.h>
1996-08-17 18:27:12 +04:00
# endif
1998-07-29 07:08:05 +04:00
# ifdef HAVE_SYS_FS_S5PARAM_H
# include <sys/fs/s5param.h>
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 07:08:05 +04:00
# if defined (HAVE_SYS_FILSYS_H) && !defined (_CRAY)
# include <sys/filsys.h>
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 07:08:05 +04:00
# ifdef HAVE_SYS_STATFS_H
# include <sys / statfs.h>
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 07:08:05 +04:00
# ifdef HAVE_DUSTAT_H
# include <sys/dustat.h>
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 07:08:05 +04:00
# ifdef HAVE_SYS_STATVFS_H
# include <sys/statvfs.h>
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 07:08:05 +04:00
# ifdef HAVE_SHADOW_H
# include <shadow.h>
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 07:08:05 +04:00
# ifdef HAVE_SYS_SECURITY_H
# include <sys/security.h>
# include <prot.h>
# define PASSWORD_LENGTH 16
# endif /* HAVE_SYS_SECURITY_H */
1996-05-04 11:50:46 +04:00
1998-07-29 07:08:05 +04:00
# ifdef HAVE_COMPAT_H
# include <compat.h>
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 07:08:05 +04:00
# ifndef uchar
# define uchar unsigned char
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 07:08:05 +04:00
# ifdef HAVE_UNSIGNED_CHAR
# define schar signed char
1996-05-04 11:50:46 +04:00
# else
1998-07-29 07:08:05 +04:00
# define schar char
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 07:08:05 +04:00
# ifndef int32
# if (SIZEOF_INT == 4)
# define int32 int
# elif (SIZEOF_LONG == 4)
# define int32 long
# elif (SIZEOF_SHORT == 4)
# define int32 short
1997-12-03 08:22:24 +03:00
# endif
# endif
1998-07-29 07:08:05 +04:00
# ifndef uint32
# define uint32 unsigned int32
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 07:08:05 +04:00
# ifndef MIN
# define MIN(a,b) ((a)<(b)?(a):(b))
1997-07-18 00:11:58 +04:00
# endif
1998-07-29 07:08:05 +04:00
# ifndef MAX
# define MAX(a,b) ((a)>(b)?(a):(b))
1998-02-27 01:58:21 +03:00
# endif
1998-07-29 07:08:05 +04:00
# ifndef HAVE_STRERROR
1996-05-04 11:50:46 +04:00
extern char * sys_errlist [ ] ;
# define strerror(i) sys_errlist[i]
# endif
1998-07-29 07:08:05 +04:00
# ifndef HAVE_STRCHR
# define strchr index
# define strrchr rindex
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 07:08:05 +04:00
# ifndef HAVE_ERRNO_DECL
extern int errno ;
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 09:05:36 +04:00
# ifdef HAVE_BROKEN_GETGROUPS
# define GID_T int
# else
# define GID_T gid_t
# endif
1998-07-29 07:08:05 +04:00
1998-06-09 00:07:40 +04:00
/* Lists, trees, caching, datbase... */
1998-06-13 07:04:00 +04:00
# include "ubi_sLinkList.h"
1998-06-11 08:40:14 +04:00
# include "ubi_dLinkList.h"
1998-06-09 00:07:40 +04:00
# ifndef UBI_BINTREE_H
1998-06-11 08:40:14 +04:00
# include "ubi_Cache.h"
1998-06-09 00:07:40 +04:00
# endif /* UBI_BINTREE_H */
1996-05-04 11:50:46 +04:00
# include "version.h"
# include "smb.h"
1996-06-04 10:42:03 +04:00
# include "nameserv.h"
1997-10-30 18:42:40 +03:00
1996-05-04 11:50:46 +04:00
# include "byteorder.h"
# include "kanji.h"
# include "charset.h"
1998-01-16 09:29:38 +03:00
# ifndef MAXCODEPAGELINES
# define MAXCODEPAGELINES 256
# endif
1997-10-30 18:42:40 +03:00
/***** automatically generated prototypes *****/
# include "proto.h"
1998-07-29 07:08:05 +04:00
# ifdef strcpy
# undef strcpy
# endif /* strcpy */
# define strcpy(dest,src) __ERROR__XX__NEVER_USE_STRCPY___;
1997-10-30 18:42:40 +03:00
1998-07-29 07:08:05 +04:00
# ifdef strcat
# undef strcat
# endif /* strcat */
# define strcat(dest,src) __ERROR__XX__NEVER_USE_STRCAT___;
1997-10-30 18:42:40 +03:00
1998-07-29 07:08:05 +04:00
# ifdef sprintf
# undef sprintf
# endif /* sprintf */
# define sprintf __ERROR__XX__NEVER_USE_SPRINTF__;
1996-05-04 11:50:46 +04:00
1998-07-29 07:08:05 +04:00
# 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)
1996-05-04 11:50:46 +04:00
1998-07-29 07:08:05 +04:00
# ifdef __COMPAR_FN_T
# define QSORT_CAST (__compar_fn_t)
1996-05-04 11:50:46 +04:00
# endif
1997-08-14 00:16:32 +04:00
1998-07-29 07:08:05 +04:00
# ifndef QSORT_CAST
# define QSORT_CAST (int (*)(const void *, const void *))
1997-08-14 00:16:32 +04:00
# endif
1996-05-04 11:50:46 +04:00
1998-07-29 07:08:05 +04:00
/* this guess needs to be improved (tridge) */
1998-08-13 20:20:37 +04:00
# if defined(STAT_STATVFS) && !defined(SYSV)
1998-07-29 07:08:05 +04:00
# define SYSV 1
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 07:08:05 +04:00
# ifndef DEFAULT_PRINTING
# ifdef SYSV
# define DEFAULT_PRINTING PRINT_SYSV
# else
# define DEFAULT_PRINTING PRINT_BSD
1996-05-04 11:50:46 +04:00
# endif
# endif
1998-07-29 07:08:05 +04:00
# ifndef SIGCLD
# define SIGCLD SIGCHLD
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 07:08:05 +04:00
# if (defined(HAVE_SYSV_IPC) || defined(HAVE_SHARED_MMAP))
# define FAST_SHARE_MODES 1
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 07:08:05 +04:00
# ifndef MAP_FILE
# define MAP_FILE 0
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 07:08:05 +04:00
# ifdef HAVE_SYSV_IPC
# ifndef HAVE_UNION_SEMUN
union semun {
int val ;
struct semid_ds * buf ;
unsigned short * array ;
} ;
1996-05-04 11:50:46 +04:00
# endif
# endif
1998-07-29 07:08:05 +04:00
# if (!defined(WITH_NISPLUS) && !defined(WITH_LDAP))
# define USE_SMBPASS_DB 1
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 07:08:05 +04:00
# if defined(HAVE_PUTPRPWNAM) && defined(AUTH_CLEARTEXT_SEG_CHARS)
# define OSF1_ENH_SEC 1
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 07:08:05 +04:00
# if defined(HAVE_PAM_AUTHENTICATE) && defined(HAVE_SECURITY_PAM_APPL_H)
# define HAVE_PAM 1
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 07:08:05 +04:00
# if defined(HAVE_YP_GET_DEFAULT_DOMAIN)
# define HAVE_NETGROUP 1
# endif
1996-05-04 11:50:46 +04:00
1998-07-29 07:08:05 +04:00
# ifndef ALLOW_CHANGE_PASSWORD
# if (defined(HAVE_TERMIOS_H) && defined(HAVE_DUP2) && defined(HAVE_SETSID))
# define ALLOW_CHANGE_PASSWORD 1
# endif
1996-10-05 06:54:37 +04:00
# endif
1998-07-29 07:08:05 +04:00
/* 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
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 11:02:06 +04:00
# ifdef REPLACE_INET_NTOA
# define inet_ntoa rep_inet_ntoa
# endif
1998-07-29 07:08:05 +04:00
# ifndef HAVE_PIPE
# define SYNC_DNS 1
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 07:08:05 +04:00
# ifndef MAXPATHLEN
# define MAXPATHLEN 256
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 07:08:05 +04:00
# ifndef SEEK_SET
# define SEEK_SET 0
1996-05-04 11:50:46 +04:00
# endif
1997-09-25 04:25:44 +04:00
# ifndef INADDR_LOOPBACK
# define INADDR_LOOPBACK 0x7f000001
1996-05-04 11:50:46 +04:00
# endif
1998-08-14 10:25:26 +04:00
# ifndef INADDR_NONE
# define INADDR_NONE 0xffffffff
# endif
1998-07-29 07:08:05 +04:00
# ifndef HAVE_CRYPT
# define crypt ufc_crypt
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 07:08:05 +04:00
# if defined(HAVE_CRYPT16) && defined(HAVE_GETAUTHUID)
# define ULTRIX_AUTH 1
# endif
1996-05-04 11:50:46 +04:00
1998-07-29 07:08:05 +04:00
# ifndef HAVE_STRDUP
char * strdup ( const char * s ) ;
1996-05-04 11:50:46 +04:00
# endif
1998-07-29 07:08:05 +04:00
# ifndef HAVE_MEMMOVE
void * memmove ( void * dest , const void * src , int size ) ;
# endif
1998-05-12 04:55:32 +04:00
1998-07-29 07:08:05 +04:00
# ifndef HAVE_INITGROUPS
int initgroups ( char * name , gid_t id ) ;
# endif
1998-05-12 04:55:32 +04:00
1998-07-29 07:08:05 +04:00
# ifndef HAVE_RENAME
int rename ( const char * zfrom , const char * zto ) ;
# endif
1998-05-12 04:55:32 +04:00
1998-07-29 07:08:05 +04:00
# ifndef HAVE_MKTIME
time_t mktime ( struct tm * t ) ;
# endif
1996-05-04 11:50:46 +04:00
1998-07-29 07:08:05 +04:00
# ifndef HAVE_FTRUNCATE
int ftruncate ( int f , long l ) ;
# endif
1998-05-12 04:55:32 +04:00
1998-05-22 11:46:39 +04:00
# endif /* _INCLUDES_H */