get rid of __wait boring warning, caused by rpc/clnt.h
[samba.git] / source / include / includes.h
index 69b629f07cd7812cee9bff5a0b0cb802ce0d0c45..96ff1fadf907d4e26c4d7f03b5036b6be4c818bc 100644 (file)
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */
 
+#ifndef NO_CONFIG_H /* for some tests */
 #include "config.h"
+#endif
+
 #include "local.h"
 
 #ifdef AIX
 #define DEFAULT_PRINTING PRINT_AIX
+#define PRINTCAP_NAME "/etc/qconfig"
 #endif
 
 #ifdef HPUX
 #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
 
+#if defined(HAVE_RPC_RPC_H)
+#include <rpc/rpc.h>
+#endif
 
 #include <sys/types.h>
 
 #include <sys/socket.h>
 #endif
 
+#ifdef HAVE_SYS_SYSCALL_H
+#include <sys/syscall.h>
+#elif HAVE_SYSCALL_H
+#include <syscall.h>
+#endif
+
 #ifdef HAVE_STRING_H
 #include <string.h>
 #endif
 #include <memory.h>
 #endif
 
+#ifdef MEM_MAN
+#include "../mem_man/mem_man.h"
+#else
 #ifdef HAVE_MALLOC_H
 #include <malloc.h>
 #endif
+#endif
 
 #ifdef HAVE_FCNTL_H
 #include <fcntl.h>
 #endif
 #endif
 
-#ifdef HAVE_GLOB
+#ifdef HAVE_GLOB_H
 #include <glob.h>
 #endif
 
 #include <sys/sem.h>
 #endif
 
+/*
+ * Seems to be needed by some OS's that complain
+ * about struct rtentry not being defined.
+ */
+#ifdef HAVE_NET_ROUTE_H
+#include <net/route.h>
+#endif
+
 #ifdef HAVE_NET_IF_H
 #include <net/if.h>
 #endif
 #include <sys/vfs.h>
 #endif
 
+#ifdef HAVE_SYS_ACL_H
+#include <sys/acl.h>
+#endif
+
 #ifdef HAVE_SYS_FS_S5PARAM_H 
 #include <sys/fs/s5param.h>
 #endif
 #include <poll.h>
 #endif
 
+#ifdef HAVE_SYS_CAPABILITY_H
+#include <sys/capability.h>
+#endif
+
+#if defined(HAVE_YP_GET_DEFAULT_DOMAIN) && defined(HAVE_SETNETGRENT) && defined(HAVE_ENDNETGRENT) && defined(HAVE_GETNETGRENT)
+#define HAVE_NETGROUP 1
+#endif
+
 #ifndef uchar
 #define uchar unsigned char
 #endif
 #define uint8 unsigned char
 #endif
 
-#ifndef int16
+#if !defined(int16) && !defined(HAVE_INT16_FROM_RPC_RPC_H)
 #if (SIZEOF_SHORT == 4)
 #define int16 __ERROR___CANNOT_DETERMINE_TYPE_FOR_INT16;
 #else /* SIZEOF_SHORT != 4 */
 #endif /* SIZEOF_SHORT != 4 */
 #endif
 
-#ifndef uint16
-#define uint16 unsigned int16
+/*
+ * Note we duplicate the size tests in the unsigned 
+ * case as int16 may be a typedef from rpc/rpc.h
+ */
+
+#if !defined(uint16) && !defined(HAVE_UINT16_FROM_RPC_RPC_H)
+#if (SIZEOF_SHORT == 4)
+#define uint16 __ERROR___CANNOT_DETERMINE_TYPE_FOR_INT16;
+#else /* SIZEOF_SHORT != 4 */
+#define uint16 unsigned short
+#endif /* SIZEOF_SHORT != 4 */
 #endif
 
-#ifndef int32
+#if !defined(int32) && !defined(HAVE_INT32_FROM_RPC_RPC_H)
 #if (SIZEOF_INT == 4)
 #define int32 int
 #elif (SIZEOF_LONG == 4)
 #endif
 #endif
 
-#ifndef uint32
-#define uint32 unsigned int32
+/*
+ * Note we duplicate the size tests in the unsigned 
+ * case as int32 may be a typedef from rpc/rpc.h
+ */
+
+#if !defined(uint32) && !defined(HAVE_UINT32_FROM_RPC_RPC_H)
+#if (SIZEOF_INT == 4)
+#define uint32 unsigned int
+#elif (SIZEOF_LONG == 4)
+#define uint32 unsigned long
+#elif (SIZEOF_SHORT == 4)
+#define uint32 unsigned short
+#endif
 #endif
 
 /*
 #  endif
 #endif
 
+#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
+
 #ifndef SMB_OFF_T
 #  ifdef HAVE_OFF64_T
 #    define SMB_OFF_T off64_t
 #  endif
 #endif
 
+#define SMB_OFF_T_BITS (sizeof(SMB_OFF_T)*8)
+
 /*
  * Set the define that tells us if we can do 64 bit
  * NT SMB calls.
 #  endif
 #endif
 
+#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
+
 /*
  * Type for stat structure.
  */
 #  endif
 #endif
 
-/*
- * Type for statvfs structure.
- * Unfortunately, due to the make proto structure
- * we still need to define this as void * for platforms
- * that don't have either statvfs or statvfs64. JRA.
- */
-
-#ifndef SMB_STRUCT_STATVFS
-#  if defined(STAT_STATVFS64)
-#    define SMB_STRUCT_STATVFS struct statvfs64
-#  elif defined(STAT_STATVFS)
-#    define SMB_STRUCT_STATVFS struct statvfs
-#  else
-#    define SMB_STRUCT_STATVFS void *
-#  endif
-#endif
-
 /*
  * Defines for 64 bit fcntl locks.
  */
@@ -473,8 +524,11 @@ extern int errno;
 #include "ubi_Cache.h"
 #endif /* UBI_BINTREE_H */
 
+#include "debugparse.h"
+
 #include "version.h"
 #include "smb.h"
+#include "smbw.h"
 #include "nameserv.h"
 
 #include "byteorder.h"
@@ -527,8 +581,10 @@ extern int errno;
 #ifndef DEFAULT_PRINTING
 #ifdef SYSV
 #define DEFAULT_PRINTING PRINT_SYSV
+#define PRINTCAP_NAME "lpstat"
 #else
 #define DEFAULT_PRINTING PRINT_BSD
+#define PRINTCAP_NAME "/etc/printcap"
 #endif
 #endif
 
@@ -556,6 +612,7 @@ union semun {
 
 #if (!defined(WITH_NISPLUS) && !defined(WITH_LDAP))
 #define USE_SMBPASS_DB 1
+#define USE_SMBUNIX_DB 1
 #endif
 
 #if defined(HAVE_PUTPRPWNAM) && defined(AUTH_CLEARTEXT_SEG_CHARS)
@@ -566,14 +623,6 @@ union semun {
 #define HAVE_PAM 1
 #endif
 
-#if defined(HAVE_YP_GET_DEFAULT_DOMAIN)
-#define HAVE_NETGROUP 1
-#endif
-
-#if defined (HAVE_NETGROUP) && defined(HAVE_RPCSVC_YPCLNT_H)
-#include "rpcsvc/ypclnt.h"
-#endif
-
 #ifndef ALLOW_CHANGE_PASSWORD
 #if (defined(HAVE_TERMIOS_H) && defined(HAVE_DUP2) && defined(HAVE_SETSID))
 #define ALLOW_CHANGE_PASSWORD 1
@@ -614,10 +663,32 @@ union semun {
 #define crypt ufc_crypt
 #endif
 
+#ifndef O_ACCMODE
+#define O_ACCMODE (O_RDONLY | O_WRONLY | O_RDWR)
+#endif
+
 #if defined(HAVE_CRYPT16) && defined(HAVE_GETAUTHUID)
 #define ULTRIX_AUTH 1
 #endif
 
+#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
+
 #ifndef HAVE_STRDUP
 char *strdup(const char *s);
 #endif
@@ -648,8 +719,20 @@ int setresuid(uid_t ruid, uid_t euid, uid_t suid);
 int setresgid(gid_t rgid, gid_t egid, gid_t sgid);
 #endif
 
+#if (defined(HAVE_CRYPT) && !defined(HAVE_CRYPT_DECL) && !defined(KRB4_AUTH))
+/* stupid glibc */
+int crypt(const char *key, const char *salt);
+#endif
+
 #if !defined(HAVE_BZERO) && defined(HAVE_MEMSET)
 #define bzero(a,b) memset((a),'\0',(b))
 #endif
 
+#ifdef REPLACE_GETPASS
+#define getpass(prompt) getsmbpass((prompt))
+#endif
+
+/* yuck, I'd like a better way of doing this */
+#define DIRP_SIZE (256 + 32)
+
 #endif /* _INCLUDES_H */