#ifndef NO_CONFIG_H /* for some tests */
#include "config.h"
+#include "smb_build.h"
#endif
#include "local.h"
#endif
-#if defined(HAVE_RPC_RPC_H)
-/*
- * Check for AUTH_ERROR define conflict with rpc/rpc.h in prot.h.
- */
-#if defined(HAVE_SYS_SECURITY_H) && defined(HAVE_RPC_AUTH_ERROR_CONFLICT)
-#undef AUTH_ERROR
-#endif
-#include <rpc/rpc.h>
-#endif
-
-#if defined(HAVE_YP_GET_DEFAULT_DOMAIN) && defined(HAVE_SETNETGRENT) && defined(HAVE_ENDNETGRENT) && defined(HAVE_GETNETGRENT)
-#define HAVE_NETGROUP 1
-#endif
-
-#if defined (HAVE_NETGROUP)
-#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 */
-
#if defined(HAVE_SYS_IPC_H)
#include <sys/ipc.h>
#endif /* HAVE_SYS_IPC_H */
/*
* Define additional missing types
*/
-#if defined(HAVE_SIG_ATOMIC_T_TYPE)
-typedef sig_atomic_t SIG_ATOMIC_T;
-#else
-typedef int SIG_ATOMIC_T;
+#ifndef HAVE_SIG_ATOMIC_T_TYPE
+typedef int sig_atomic_t;
#endif
#ifndef HAVE_SOCKLEN_T_TYPE
#endif
-#ifndef uchar
-#define uchar unsigned char
-#endif
-
-#ifdef HAVE_UNSIGNED_CHAR
-#define schar signed char
-#else
-#define schar char
-#endif
-
/*
- Samba needs type definitions for int16, int32, uint16 and uint32.
+ Samba needs type definitions for
+ int8_t, int16_t, int32_t, int64_t
+ uint8_t, uint16_t, uint32_t and uint64_t.
- Normally these are signed and unsigned 16 and 32 bit integers, but
- they actually only need to be at least 16 and 32 bits
+ Normally these are signed and unsigned 8, 16, 32 and 64 bit integers, but
+ they actually only need to be at least 8, 16, 32 and 64 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
+#if !defined(int8)
+#define int8 int8_t
#endif
-#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 */
-#define int16 short
-#endif /* SIZEOF_SHORT != 4 */
+#if !defined(uint8)
+#define uint8 uint8_t
#endif
-/*
- * Note we duplicate the size tests in the unsigned
- * case as int16 may be a typedef from rpc/rpc.h
- */
+#if !defined(int16)
+#define int16 int16_t
+#endif
-#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
-
-#if !defined(int32) && !defined(HAVE_INT32_FROM_RPC_RPC_H)
-#if (SIZEOF_INT == 4)
-#define int32 int
-#elif (SIZEOF_LONG == 4)
-#define int32 long
-#elif (SIZEOF_SHORT == 4)
-#define int32 short
-#else
-/* uggh - no 32 bit type?? probably a CRAY. just hope this works ... */
-#define int32 int
+#if !defined(uint16)
+#define uint16 uint16_t
#endif
+
+#if !defined(int32)
+#define int32 int32_t
#endif
-/*
- * Note we duplicate the size tests in the unsigned
- * case as int32 may be a typedef from rpc/rpc.h
- */
+#if !defined(uint32)
+#define uint32 uint32_t
+#endif
-#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
-#else
-/* uggh - no 32 bit type?? probably a CRAY. just hope this works ... */
-#define uint32 unsigned
+#if !defined(int64)
+#define int64 int64_t
#endif
+
+#if !defined(uint64)
+#define uint64 uint64_t
#endif
/*
# endif
#endif
-/* this should really be a 64 bit type if possible */
-#define br_off SMB_BIG_UINT
-
-#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))
-#define SOFF_T_R(p, ofs, v) (SIVAL(p,(ofs)+4,(v)&0xFFFFFFFF), SIVAL(p,ofs,(v)>>32))
-#define IVAL_TO_SMB_OFF_T(buf,off) ((SMB_OFF_T)(( ((SMB_BIG_UINT)(IVAL((buf),(off)))) & ((SMB_BIG_UINT)0xFFFFFFFF) )))
-#define IVAL2_TO_SMB_BIG_UINT(buf,off) ( (((SMB_BIG_UINT)(IVAL((buf),(off)))) & ((SMB_BIG_UINT)0xFFFFFFFF)) | \
- (( ((SMB_BIG_UINT)(IVAL((buf),(off+4)))) & ((SMB_BIG_UINT)0xFFFFFFFF) ) << 32 ) )
-#else
-#define SOFF_T(p, ofs, v) (SIVAL(p,ofs,v),SIVAL(p,(ofs)+4,0))
-#define SOFF_T_R(p, ofs, v) (SIVAL(p,(ofs)+4,v),SIVAL(p,ofs,0))
-#define IVAL_TO_SMB_OFF_T(buf,off) ((SMB_OFF_T)(( ((uint32)(IVAL((buf),(off)))) & 0xFFFFFFFF )))
-#define IVAL2_TO_SMB_BIG_UINT(buf,off) ( (((SMB_BIG_UINT)(IVAL((buf),(off)))) & ((SMB_BIG_UINT)0xFFFFFFFF)) | \
- (( ((SMB_BIG_UINT)(IVAL((buf),(off+4)))) & ((SMB_BIG_UINT)0xFFFFFFFF) ) << 32 ) )
-#endif
-
/*
* Type for stat structure.
*/
# endif
#endif
-#if defined(HAVE_LONGLONG)
-#define SMB_BIG_UINT unsigned long long
-#define SMB_BIG_INT long long
-#define SBVAL(p, ofs, v) (SIVAL(p,ofs,(v)&0xFFFFFFFF), SIVAL(p,(ofs)+4,(v)>>32))
-#define BVAL(p, ofs) (IVAL(p,ofs) | (((SMB_BIG_UINT)IVAL(p,(ofs)+4)) << 32))
-#else
-#define SMB_BIG_UINT unsigned long
-#define SMB_BIG_INT long
-#define SBVAL(p, ofs, v) (SIVAL(p,ofs,v),SIVAL(p,(ofs)+4,0))
-#define BVAL(p, ofs) IVAL(p,ofs)
-#endif
-
-#define SMB_BIG_UINT_BITS (sizeof(SMB_BIG_UINT)*8)
-
#ifndef MIN
#define MIN(a,b) ((a)<(b)?(a):(b))
#endif
/* Lists, trees, caching, database... */
#include "xfile.h"
#include "dlinklist.h"
-#include "lib/tdb/tdb.h"
-#include "lib/tdb/spinlock.h"
-#include "lib/tdb/tdbutil.h"
+#include "lib/ldb/include/ldb.h"
+#include "lib/tdb/include/tdb.h"
+#include "lib/tdb/include/spinlock.h"
+#include "lib/tdb/include/tdbutil.h"
#include "talloc.h"
#include "nt_status.h"
#include "interfaces.h"
#include "charset.h"
#include "dynconfig.h"
-#include "util_getent.h"
-
#include "version.h"
+#include "rewrite.h"
#include "smb.h"
#include "ads.h"
#include "nameserv.h"
#include "byteorder.h"
-#include "msdfs.h"
-
#include "md5.h"
#include "hmacmd5.h"
#include "libcli/auth/ntlmssp.h"
+#include "libcli/auth/credentials.h"
#include "libcli/auth/schannel.h"
+#include "libcli/auth/kerberos.h"
+#include "libcli/auth/gensec.h"
+#include "libcli/auth/spnego.h"
#include "auth/auth.h"
-#include "passdb/passdb.h"
#include "module.h"
#include "popt.h"
-#include "mangle.h"
-
-#include "nsswitch/winbind_client.h"
-
#include "mutex.h"
#include "librpc/rpc/dcerpc.h"
#include "rpc_server/dcerpc_server.h"
-#include "context.h"
+#include "smb_server/smb_server.h"
#include "ntvfs/ntvfs.h"
#include "cli_context.h"
+#include "registry.h"
+#include "gtk/common/gtk-smb.h"
+#define malloc_p(type) (type *)malloc(sizeof(type))
+#define malloc_array_p(type, count) (type *)realloc_array(NULL, sizeof(type), count)
+#define realloc_p(p, type, count) (type *)realloc_array(p, sizeof(type), count)
-/* used in net.c */
-struct functable {
- const char *funcname;
- int (*fn)(int argc, const char **argv);
-};
-
-
-#include "nsswitch/nss.h"
+#ifndef HAVE_COMPARISON_FN_T
+typedef int (*comparison_fn_t)(const void *, const void *);
+#endif
/***** automatically generated prototypes *****/
+#define _PRINTF_ATTRIBUTE(a1, a2) PRINTF_ATTRIBUTE(a1, a2)
#include "proto.h"
+#undef _PRINTF_ATTRIBUTE
+#define _PRINTF_ATTRIBUTE(a1, a2)
/* String routines */
#define MAP_FILE 0
#endif
-#if (!defined(WITH_NISPLUS) && !defined(WITH_LDAP) && !defined(WITH_TDB_SAM))
-#define USE_SMBPASS_DB 1
-#endif
-
#if defined(HAVE_PUTPRPWNAM) && defined(AUTH_CLEARTEXT_SEG_CHARS)
#define OSF1_ENH_SEC 1
#endif