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-09-21 15:34:44 +04:00
# ifndef NO_CONFIG_H /* for some tests */
1998-07-29 07:08:05 +04:00
# include "config.h"
1998-09-21 15:34:44 +04:00
# endif
1998-10-07 11:55:14 +04:00
1998-07-29 07:08:05 +04:00
# 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
1998-11-17 03:31:39 +03:00
# define PRINTCAP_NAME " / etc / qconfig"
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
/* 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
# include <sys/types.h>
1996-05-04 11:50:46 +04:00
1998-08-24 22:53:37 +04:00
# ifdef TIME_WITH_SYS_TIME
# include <sys/time.h>
# include <time.h>
# else
# ifdef HAVE_SYS_TIME_H
# include <sys/time.h>
# else
# include <time.h>
# endif
# endif
1998-08-16 09:22:01 +04:00
# ifdef HAVE_SYS_RESOURCE_H
# include <sys/resource.h>
# endif
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-08-16 09:22:01 +04:00
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-10-07 11:55:14 +04:00
# ifdef HAVE_SYS_SYSCALL_H
# include <sys/syscall.h>
# elif HAVE_SYSCALL_H
# include <syscall.h>
# 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-08-15 05:19:26 +04:00
# ifdef HAVE_STRINGS_H
# include <strings.h>
# endif
# ifdef HAVE_MEMORY_H
# include <memory.h>
# endif
1998-11-10 22:05:00 +03:00
# ifdef MEM_MAN
# include "../mem_man/mem_man.h"
# else
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-11-10 22:05:00 +03:00
# endif
1996-05-04 11:50:46 +04:00
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-11-16 04:12:36 +03:00
# ifdef HAVE_GLOB_H
1998-07-29 07:08:05 +04:00
# 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-10-07 14:37:09 +04:00
# ifdef HAVE_SYS_ACL_H
# include <sys/acl.h>
# 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-08-26 06:36:27 +04:00
# ifdef HAVE_GETPWANAM
# include <sys/label.h>
# include <sys/audit.h>
# include <pwdadj.h>
# 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-09-01 00:20:54 +04:00
# ifdef HAVE_STROPTS_H
# include <stropts.h>
# endif
# ifdef HAVE_POLL_H
# include <poll.h>
# endif
1998-09-26 03:40:49 +04:00
# ifdef HAVE_SYS_CAPABILITY_H
# include <sys/capability.h>
# 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-09-01 00:20:54 +04:00
/*
Samba needs type definitions for int16 , int32 , uint16 and uint32 .
Normally these are signed and unsigned 16 and 32 bit integers , but
they actually only need to be at least 16 and 32 bits
respectively . Thus if your word size is 8 bytes just defining them
as signed and unsigned int will work .
*/
# ifndef uint8
# define uint8 unsigned char
# endif
# ifndef int16
# if (SIZEOF_SHORT == 4)
# define int16 __ERROR___CANNOT_DETERMINE_TYPE_FOR_INT16;
# else /* SIZEOF_SHORT != 4 */
# define int16 short
# endif /* SIZEOF_SHORT != 4 */
# endif
# ifndef uint16
# define uint16 unsigned int16
# 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-09-01 00:20:54 +04:00
/*
1998-09-03 22:40:31 +04:00
* Types for devices , inodes and offsets .
1998-09-01 00:20:54 +04:00
*/
# ifndef SMB_DEV_T
1998-09-05 00:53:58 +04:00
# define SMB_DEV_T dev_t
1998-09-01 00:20:54 +04:00
# endif
1998-09-05 00:53:58 +04:00
/*
* Setup the correctly sized inode type .
*/
1998-09-01 00:20:54 +04:00
# ifndef SMB_INO_T
1998-09-05 00:53:58 +04:00
# ifdef HAVE_INO64_T
# define SMB_INO_T ino64_t
# else
# define SMB_INO_T ino_t
# endif
# endif
# ifndef LARGE_SMB_INO_T
# if defined(HAVE_INO64_T) || (defined(SIZEOF_INO_T) && (SIZEOF_INO_T == 8))
# define LARGE_SMB_INO_T 1
# endif
1998-09-01 00:20:54 +04:00
# endif
1998-10-24 12:08:05 +04:00
# ifdef LARGE_SMB_INO_T
# define SINO_T(p, ofs, v) (SIVAL(p,ofs,(v)&0xFFFFFFFF), SIVAL(p,(ofs)+4,(v)>>32))
# else
# define SINO_T(p, ofs, v) (SIVAL(p,ofs,v),SIVAL(p,(ofs)+4,0))
# endif
1998-09-03 22:40:31 +04:00
# ifndef SMB_OFF_T
1998-09-04 04:23:28 +04:00
# ifdef HAVE_OFF64_T
# define SMB_OFF_T off64_t
# else
# define SMB_OFF_T off_t
# endif
1998-09-03 22:40:31 +04:00
# endif
1998-09-18 06:30:03 +04:00
# define SMB_OFF_T_BITS (sizeof(SMB_OFF_T)*8)
1998-09-03 22:40:31 +04:00
/*
* Set the define that tells us if we can do 64 bit
* NT SMB calls .
*/
# ifndef LARGE_SMB_OFF_T
1998-09-04 04:23:28 +04:00
# if defined(HAVE_OFF64_T) || (defined(SIZEOF_OFF_T) && (SIZEOF_OFF_T == 8))
# define LARGE_SMB_OFF_T 1
# endif
1998-09-03 22:40:31 +04:00
# endif
1998-09-18 22:30:42 +04:00
# ifdef LARGE_SMB_OFF_T
# define SOFF_T(p, ofs, v) (SIVAL(p,ofs,(v)&0xFFFFFFFF), SIVAL(p,(ofs)+4,(v)>>32))
# else
# define SOFF_T(p, ofs, v) (SIVAL(p,ofs,v),SIVAL(p,(ofs)+4,0))
# endif
1998-09-02 00:11:54 +04:00
/*
1998-09-03 22:40:31 +04:00
* Type for stat structure .
1998-09-02 00:11:54 +04:00
*/
# ifndef SMB_STRUCT_STAT
1998-09-04 04:23:28 +04:00
# if defined(HAVE_STAT64) && defined(HAVE_OFF64_T)
# define SMB_STRUCT_STAT struct stat64
# else
# define SMB_STRUCT_STAT struct stat
# endif
# endif
/*
* Defines for 64 bit fcntl locks .
*/
# ifndef SMB_STRUCT_FLOCK
# if defined(HAVE_STRUCT_FLOCK64) && defined(HAVE_OFF64_T)
# define SMB_STRUCT_FLOCK struct flock64
# else
# define SMB_STRUCT_FLOCK struct flock
# endif
# endif
# ifndef SMB_F_SETLKW
# if defined(HAVE_STRUCT_FLOCK64) && defined(HAVE_OFF64_T)
# define SMB_F_SETLKW F_SETLKW64
# else
# define SMB_F_SETLKW F_SETLKW
# endif
1998-09-02 00:11:54 +04:00
# endif
1998-09-04 04:23:28 +04:00
# ifndef SMB_F_SETLK
# if defined(HAVE_STRUCT_FLOCK64) && defined(HAVE_OFF64_T)
# define SMB_F_SETLK F_SETLK64
# else
# define SMB_F_SETLK F_SETLK
# endif
# endif
# ifndef SMB_F_GETLK
# if defined(HAVE_STRUCT_FLOCK64) && defined(HAVE_OFF64_T)
# define SMB_F_GETLK F_GETLK64
# else
# define SMB_F_GETLK F_GETLK
# endif
1998-09-03 22:40:31 +04:00
# endif
1998-09-02 00:11:54 +04:00
1998-09-17 23:16:12 +04:00
# if defined(HAVE_LONGLONG)
1998-09-18 03:06:57 +04:00
# define SMB_BIG_UINT unsigned long long
# define SMB_BIG_INT long long
1998-09-17 23:16:12 +04:00
# else
1998-09-18 03:06:57 +04:00
# define SMB_BIG_UINT unsigned long
# define SMB_BIG_INT long
1998-09-17 23:16:12 +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-08-17 10:47:53 +04:00
# include "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 */
1998-10-28 23:24:41 +03:00
# include "debugparse.h"
1996-05-04 11:50:46 +04:00
# include "version.h"
# include "smb.h"
1998-10-04 08:33:56 +04:00
# include "smbw.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-08-19 05:49:34 +04:00
# include "nterr.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
1998-11-17 03:31:39 +03:00
# define PRINTCAP_NAME "lpstat"
1998-07-29 07:08:05 +04:00
# else
# define DEFAULT_PRINTING PRINT_BSD
1998-11-17 03:31:39 +03:00
# define PRINTCAP_NAME " / etc / printcap"
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-11-18 04:19:32 +03:00
# if defined(HAVE_YP_GET_DEFAULT_DOMAIN) && defined(HAVE_SETNETGRENT) && defined(HAVE_ENDNETGRENT) && defined(HAVE_GETNETGRENT)
1998-07-29 07:08:05 +04:00
# define HAVE_NETGROUP 1
# endif
1996-05-04 11:50:46 +04:00
1998-11-14 00:41:01 +03:00
# if defined (HAVE_NETGROUP)
# if defined(HAVE_RPC_RPC_H)
# include <rpc/rpc.h>
1998-08-28 00:38:53 +04:00
# endif
1998-11-14 00:41:01 +03:00
# if defined(HAVE_RPCSVC_YP_PROT_H)
# include <rpcsvc/yp_prot.h>
# endif
# if defined(HAVE_RPCSVC_YPCLNT_H)
# include <rpcsvc/ypclnt.h>
# endif
# endif /* HAVE_NETGROUP */
1998-08-28 00:38:53 +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-10-03 15:51:30 +04:00
# ifndef O_ACCMODE
# define O_ACCMODE (O_RDONLY | O_WRONLY | O_RDWR)
# 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-09-18 16:47:46 +04:00
# ifdef HAVE_LIBREADLINE
# ifdef HAVE_READLINE_READLINE_H
# include <readline / readline.h>
# ifdef HAVE_READLINE_HISTORY_H
# include <readline / history.h>
# endif
# else
# ifdef HAVE_READLINE_H
# include <readline.h>
# ifdef HAVE_HISTORY_H
# include <history.h>
# endif
# else
# undef HAVE_LIBREADLINE
# endif
# endif
# endif
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-08-14 21:38:29 +04:00
# if (defined(HAVE_SETRESUID) && !defined(HAVE_SETRESUID_DECL))
/* stupid glibc */
int setresuid ( uid_t ruid , uid_t euid , uid_t suid ) ;
int setresgid ( gid_t rgid , gid_t egid , gid_t sgid ) ;
# endif
1998-10-28 20:51:49 +03:00
# if (defined(HAVE_CRYPT) && !defined(HAVE_CRYPT_DECL) && !defined(KRB4_AUTH))
1998-10-15 04:55:17 +04:00
/* stupid glibc */
int crypt ( const char * key , const char * salt ) ;
# endif
1998-08-15 05:19:26 +04:00
# if !defined(HAVE_BZERO) && defined(HAVE_MEMSET)
# define bzero(a,b) memset((a),'\0',(b))
# endif
1998-09-21 15:34:44 +04:00
# ifdef REPLACE_GETPASS
# define getpass(prompt) getsmbpass((prompt))
# endif
1998-10-07 11:55:14 +04:00
/* yuck, I'd like a better way of doing this */
# define DIRP_SIZE (256 + 32)
1998-05-22 11:46:39 +04:00
# endif /* _INCLUDES_H */