#include "../replace/replace.h"
-#if _SAMBA_BUILD_ == 4
-# undef _SAMBA_BUILD_
-# define _SAMBA_BUILD_ 3
-#endif
-
/* make sure we have included the correct config.h */
#ifndef NO_CONFIG_H /* for some tests */
#ifndef CONFIG_H_IS_FROM_SAMBA
#endif /* RELIANTUNIX */
#include "system/dir.h"
-#include "system/filesys.h"
#include "system/locale.h"
-#include "system/network.h"
-#include "system/passwd.h"
-#include "system/select.h"
-#include "system/shmem.h"
-#include "system/terminal.h"
#include "system/time.h"
#include "system/wait.h"
#include <aio.h>
#endif
-#ifdef WITH_MADVISE_PROTECTED
-#include <sys/mman.h>
-#endif
-
/* Special macros that are no-ops except when run under Valgrind on
* x86. They've moved a little bit from valgrind 1.0.4 to 1.9.4 */
#if HAVE_VALGRIND_MEMCHECK_H
*/
#ifndef SMB_DEV_T
-# if defined(HAVE_EXPLICIT_LARGEFILE_SUPPORT) && defined(HAVE_DEV64_T)
-# define SMB_DEV_T dev64_t
-# else
-# define SMB_DEV_T dev_t
-# endif
+# define SMB_DEV_T dev_t
#endif
#ifndef LARGE_SMB_DEV_T
-# if (defined(HAVE_EXPLICIT_LARGEFILE_SUPPORT) && defined(HAVE_DEV64_T)) || (defined(SIZEOF_DEV_T) && (SIZEOF_DEV_T == 8))
+# if (defined(SIZEOF_DEV_T) && (SIZEOF_DEV_T == 8))
# define LARGE_SMB_DEV_T 1
# endif
#endif
*/
#ifndef SMB_INO_T
-# if defined(HAVE_EXPLICIT_LARGEFILE_SUPPORT) && defined(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_EXPLICIT_LARGEFILE_SUPPORT) && defined(HAVE_INO64_T)) || (defined(SIZEOF_INO_T) && (SIZEOF_INO_T == 8))
+# if (defined(SIZEOF_INO_T) && (SIZEOF_INO_T == 8))
# define LARGE_SMB_INO_T 1
# endif
#endif
#ifdef LARGE_SMB_INO_T
-#define SINO_T_VAL(p, ofs, v) (SIVAL((p),(ofs),(v)&0xFFFFFFFF), SIVAL((p),(ofs)+4,(v)>>32))
-#define INO_T_VAL(p, ofs) ((SMB_INO_T)(((uint64_t)(IVAL(p,ofs)))| (((uint64_t)(IVAL(p,(ofs)+4))) << 32)))
+#define SINO_T_VAL(p, ofs, v) SBVAL(p, ofs, v)
+#define INO_T_VAL(p, ofs) ((SMB_INO_T)BVAL(p, ofs))
#else
-#define SINO_T_VAL(p, ofs, v) (SIVAL(p,ofs,v),SIVAL(p,(ofs)+4,0))
+#define SINO_T_VAL(p, ofs, v) SBVAL(p, ofs, ((uint64_t)(v)) & UINT32_MAX)
#define INO_T_VAL(p, ofs) ((SMB_INO_T)(IVAL((p),(ofs))))
#endif
#ifndef SMB_OFF_T
-# if defined(HAVE_EXPLICIT_LARGEFILE_SUPPORT) && defined(HAVE_OFF64_T)
-# define SMB_OFF_T off64_t
-# else
# define SMB_OFF_T off_t
-# endif
#endif
-#define SBIG_UINT(p, ofs, v) (SIVAL(p,ofs,(v)&0xFFFFFFFF), SIVAL(p,(ofs)+4,(v)>>32))
-#define BIG_UINT(p, ofs) ((((uint64_t) IVAL(p,(ofs)+4))<<32)|IVAL(p,ofs))
-#define IVAL2_TO_SMB_BIG_UINT(buf,off) ( (((uint64_t)(IVAL((buf),(off)))) & ((uint64_t)0xFFFFFFFF)) | \
- (( ((uint64_t)(IVAL((buf),(off+4)))) & ((uint64_t)0xFFFFFFFF) ) << 32 ) )
-
+/* TODO: remove this macros */
+#define SBIG_UINT(p, ofs, v) SBVAL(p, ofs, v)
+#define BIG_UINT(p, ofs) BVAL(p, ofs)
+#define IVAL2_TO_SMB_BIG_UINT(p, ofs) BVAL(p, ofs)
/* this should really be a 64 bit type if possible */
typedef uint64_t br_off;
* NT SMB calls.
*/
-#ifndef LARGE_SMB_OFF_T
-# if (defined(HAVE_EXPLICIT_LARGEFILE_SUPPORT) && defined(HAVE_OFF64_T)) || (defined(SIZEOF_OFF_T) && (SIZEOF_OFF_T == 8))
-# define LARGE_SMB_OFF_T 1
-# 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)(( ((uint64_t)(IVAL((buf),(off)))) & ((uint64_t)0xFFFFFFFF) )))
-#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 )))
-#endif
#ifndef HAVE_BLKSIZE_T
/* This is mainly for HP/UX which defines st_blksize as long */
typedef struct stat_ex SMB_STRUCT_STAT;
-/*
- * Type for dirent structure.
- */
-
-#ifndef SMB_STRUCT_DIRENT
-# if defined(HAVE_EXPLICIT_LARGEFILE_SUPPORT) && defined(HAVE_STRUCT_DIRENT64)
-# define SMB_STRUCT_DIRENT struct dirent64
-# else
-# define SMB_STRUCT_DIRENT struct dirent
-# endif
-#endif
-
/*
* Type for DIR structure.
*/
#ifndef SMB_STRUCT_DIR
-# if defined(HAVE_EXPLICIT_LARGEFILE_SUPPORT) && defined(HAVE_STRUCT_DIR64)
-# define SMB_STRUCT_DIR DIR64
-# else
# define SMB_STRUCT_DIR DIR
-# endif
#endif
/*
*/
#ifndef SMB_STRUCT_FLOCK
-# if defined(HAVE_EXPLICIT_LARGEFILE_SUPPORT) && 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_EXPLICIT_LARGEFILE_SUPPORT) && defined(HAVE_STRUCT_FLOCK64) && defined(HAVE_OFF64_T)
-# define SMB_F_SETLKW F_SETLKW64
-# else
# define SMB_F_SETLKW F_SETLKW
-# endif
#endif
#ifndef SMB_F_SETLK
-# if defined(HAVE_EXPLICIT_LARGEFILE_SUPPORT) && 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_EXPLICIT_LARGEFILE_SUPPORT) && defined(HAVE_STRUCT_FLOCK64) && defined(HAVE_OFF64_T)
-# define SMB_F_GETLK F_GETLK64
-# else
# define SMB_F_GETLK F_GETLK
-# endif
#endif
/*
#ifndef SMB_STRUCT_AIOCB
# if defined(WITH_AIO)
-# if defined(HAVE_EXPLICIT_LARGEFILE_SUPPORT) && defined(HAVE_AIOCB64)
-# define SMB_STRUCT_AIOCB struct aiocb64
-# else
# define SMB_STRUCT_AIOCB struct aiocb
-# endif
# else
# define SMB_STRUCT_AIOCB int /* AIO not being used but we still need the define.... */
# endif
#endif
/* Lists, trees, caching, database... */
-#include "../lib/util/util.h"
+#include "../lib/util/samba_util.h"
#include "../lib/util/util_net.h"
#include "../lib/util/xfile.h"
#include "../lib/util/memory.h"
#include "../lib/util/attr.h"
#include "../lib/util/tsort.h"
#include "../lib/util/dlinklist.h"
-#include "tdb.h"
-#include "util_tdb.h"
-#include "talloc.h"
+#include <talloc.h>
#include "event.h"
-#include "../lib/util/tevent_unix.h"
-#include "../lib/util/tevent_ntstatus.h"
-#include "../lib/tsocket/tsocket.h"
#include "../lib/util/data_blob.h"
#include "../lib/util/time.h"
+#include "../lib/util/debug.h"
+#include "../lib/util/debug_s3.h"
-#include "libads/ads_status.h"
+#include "../libcli/util/ntstatus.h"
#include "../libcli/util/error.h"
-#include "ntioctl.h"
#include "../lib/util/charset/charset.h"
-#include "dynconfig.h"
-#include "debugparse.h"
-#include "../libcli/security/privileges.h"
-#include "messages.h"
+#include "dynconfig/dynconfig.h"
#include "locking.h"
#include "smb_perfcount.h"
#include "smb.h"
-#include "nameserv.h"
#include "../lib/util/byteorder.h"
-#include "mapping.h"
-#include "passdb.h"
-#include "auth.h"
-#include "librpc/rpc/dcerpc.h"
-#include "ntdomain.h"
-#include "client.h"
-
-#include "module.h"
+#include "../lib/util/samba_modules.h"
#include "../lib/util/talloc_stack.h"
#include "../lib/util/smb_threads.h"
#include "../lib/util/smb_threads_internal.h"
-/*
- * Reasons for cache flush.
- */
-
-enum flush_reason_enum {
- SEEK_FLUSH,
- READ_FLUSH,
- WRITE_FLUSH,
- READRAW_FLUSH,
- OPLOCK_RELEASE_FLUSH,
- CLOSE_FLUSH,
- SYNC_FLUSH,
- SIZECHANGE_FLUSH,
- /* NUM_FLUSH_REASONS must remain the last value in the enumeration. */
- NUM_FLUSH_REASONS};
-
-#include "modules/nfs4_acls.h"
-
/***** prototypes *****/
#ifndef NO_PROTO_H
#include "proto.h"
#endif
-#include "libcli/security/secace.h"
-#include "libcli/security/secacl.h"
-#include "libcli/security/security_descriptor.h"
-#include "libcli/security/sddl.h"
-
-#if defined(HAVE_POSIX_ACLS)
-#include "modules/vfs_posixacl.h"
-#endif
-
-#if defined(HAVE_TRU64_ACLS)
-#include "modules/vfs_tru64acl.h"
-#endif
-
-#if defined(HAVE_SOLARIS_ACLS) || defined(HAVE_UNIXWARE_ACLS)
-#include "modules/vfs_solarisacl.h"
-#endif
-
-#if defined(HAVE_HPUX_ACLS)
-#include "modules/vfs_hpuxacl.h"
-#endif
-
-#if defined(HAVE_IRIX_ACLS)
-#include "modules/vfs_irixacl.h"
-#endif
-
-/* We need this after proto.h to reference GetTimeOfDay(). */
-#include "smbprofile.h"
/* String routines */
#include "srvstr.h"
#include "safe_string.h"
-/* prototypes from lib/util_transfer_file.c */
-#include "transfer_file.h"
-
#ifndef SIGCLD
#define SIGCLD SIGCHLD
#endif
#define SIGRTMIN NSIG
#endif
-#ifndef MAP_FILE
-#define MAP_FILE 0
-#endif
-
#if defined(HAVE_PUTPRPWNAM) && defined(AUTH_CLEARTEXT_SEG_CHARS)
#define OSF1_ENH_SEC 1
#endif
#endif
-#if HAVE_KERNEL_SHARE_MODES
-#ifndef LOCK_MAND
-#define LOCK_MAND 32 /* This is a mandatory flock */
-#define LOCK_READ 64 /* ... Which allows concurrent read operations */
-#define LOCK_WRITE 128 /* ... Which allows concurrent write operations */
-#define LOCK_RW 192 /* ... Which allows concurrent read & write ops */
-#endif
-#endif
-
#define MAX_SEC_CTX_DEPTH 8 /* Maximum number of security contexts */
#endif
-/* needed for some systems without iconv. Doesn't really matter
- what error code we use */
-#ifndef EILSEQ
-#define EILSEQ EIO
-#endif
-
/* add varargs prototypes with printf checking */
/*PRINTFLIKE2 */
int fdprintf(int , const char *, ...) PRINTF_ATTRIBUTE(2,3);
/* PRINTFLIKE2 */
int fstr_sprintf(fstring s, const char *fmt, ...) PRINTF_ATTRIBUTE(2,3);
-int d_vfprintf(FILE *f, const char *format, va_list ap) PRINTF_ATTRIBUTE(2,0);
-
int smb_xvasprintf(char **ptr, const char *format, va_list ap) PRINTF_ATTRIBUTE(2,0);
int asprintf_strupper_m(char **strp, const char *fmt, ...) PRINTF_ATTRIBUTE(2,3);
#define XATTR_REPLACE 0x2 /* set value, fail if attr does not exist */
#endif
-#if defined(HAVE_LINUX_READAHEAD) && ! defined(HAVE_READAHEAD_DECL)
-ssize_t readahead(int fd, off64_t offset, size_t count);
-#endif
-
#ifdef TRUE
#undef TRUE
#endif
#undef HAVE_MMAP
#endif
-#ifndef CONST_DISCARD
-#define CONST_DISCARD(type, ptr) ((type) ((void *) (ptr)))
-#endif
-
void dump_core(void) _NORETURN_;
void exit_server(const char *const reason) _NORETURN_;
void exit_server_cleanly(const char *const reason) _NORETURN_;
-void exit_server_fault(void) _NORETURN_;
-
-#if defined(HAVE_IPV6)
-void in6_addr_to_sockaddr_storage(struct sockaddr_storage *ss,
- struct in6_addr ip);
-#endif
-
-/* samba3 doesn't use uwrap yet */
-#define uwrap_enabled() 0
#define BASE_RID (0x000003E8L)