s3compat: use internal heimdal from s4 for s3compat build
authorAndrew Tridgell <tridge@samba.org>
Mon, 26 Apr 2010 01:13:36 +0000 (11:13 +1000)
committerAndrew Bartlett <abartlet@samba.org>
Thu, 3 Jun 2010 01:12:29 +0000 (11:12 +1000)
This brings us a step closer to auth integration

source4/s3compat/compat/config.h
source4/s3compat/compat/includes.h
source4/s3compat/compat/smb_krb5.h [new file with mode: 0644]
source4/s3compat/s3_smbd.c
source4/s3compat/s3replace.c
source4/s3compat/wscript
source4/s3compat/wscript_build

index 640da4c05475478ccc091b0b5f4e1e2ad6b35239..d9023b1ce1ab22a7ccfaf75a19c45c32d3ff619f 100644 (file)
    s3 code needs in the s4 build
 */
 #ifndef _INCLUDE_CONFIG_H_WAF
+#include "source4/include/config.h"
 #define _INCLUDE_CONFIG_H_WAF
 
-#define PACKAGE_NAME "Samba"
-#define PACKAGE_STRING "Samba 3"
-#define PACKAGE_TARNAME "samba"
-#define PACKAGE_URL ""
-#define PACKAGE_VERSION "3"
-#define PACKAGE_BUGREPORT "samba-technical@samba.org"
-#define CONFIG_H_IS_FROM_SAMBA 1
+/* pretend to be samba3 */
 #undef _SAMBA_BUILD_
 #define _SAMBA_BUILD_ 3
-#define HAVE_CONFIG_H 1
-#define HAVE_STDIO_H 1
-#define HAVE_SIMPLE_C_PROG 1
-#define _GNU_SOURCE 1
-#define _XOPEN_SOURCE_EXTENDED 1
-#define HAVE_SYS_TYPES_H 1
-#define HAVE_SYS_STAT_H 1
-#define HAVE_STDLIB_H 1
-#define HAVE_STDDEF_H 1
-#define HAVE_MEMORY_H 1
-#define HAVE_STRING_H 1
-#define HAVE_STRINGS_H 1
-#define HAVE_INTTYPES_H 1
-#define HAVE_STDINT_H 1
-#define HAVE_UNISTD_H 1
-#define HAVE_CTYPE_H 1
-#define HAVE_STDBOOL_H 1
-#define HAVE_STDARG_H 1
-#define HAVE_LIMITS_H 1
-#define HAVE_ASSERT_H 1
-#define HAVE_LARGEFILE 1
-#define STDC_HEADERS 1
-#define HAVE_SYS_TIME_H 1
-#define HAVE_TIME_H 1
-#define TIME_WITH_SYS_TIME 1
-#define SHLIBEXT "so"
-/* #undef WORDS_BIGENDIAN */
-#define HAVE_SIGNAL_H 1
-/* #undef RETSIGTYPE_INT */
-#define RETSIGTYPE void
-#define HAVE_FUNCTION_MACRO 1
-#define HAVE_VA_COPY 1
-#define HAVE__VA_ARGS__MACRO 1
-#define LIBREPLACE_NETWORK_CHECKS 1
-#define HAVE_CRYPT_H 1
-#define HAVE_LOCALE_H 1
-#define HAVE_FCNTL_H 1
-#define HAVE_FNMATCH_H 1
-#define HAVE_GLOB_H 1
-#define HAVE_KRB5_H 1
-#define HAVE_LANGINFO_H 1
-#define HAVE_PWD_H 1
-#define HAVE_SHADOW_H 1
-#define HAVE_SYS_DIR_H 1
-#define HAVE_SYS_EPOLL_H 1
-#define HAVE_SYS_FCNTL_H 1
-#define HAVE_SYS_IOCTL_H 1
-#define HAVE_SYS_IPC_H 1
-#define HAVE_SYS_MMAN_H 1
-#define HAVE_SYS_RESOURCE_H 1
-#define HAVE_SYS_SHM_H 1
-#define HAVE_SYS_STATFS_H 1
-#define HAVE_SYS_STATVFS_H 1
-#define HAVE_SYS_VFS_H 1
-#define HAVE_SYS_XATTR_H 1
-#define HAVE_TERMIO_H 1
-#define HAVE_TERMIOS_H 1
-#define HAVE_SYS_WAIT_H 1
-#define HAVE_MALLOC_H 1
-#define HAVE_GRP_H 1
-#define HAVE_SYS_SELECT_H 1
-#define HAVE_SETJMP_H 1
-#define HAVE_UTIME_H 1
-#define HAVE_SYS_SYSLOG_H 1
-#define HAVE_SYSLOG_H 1
-#define HAVE_SYS_MOUNT_H 1
-#define HAVE_MNTENT_H 1
-#define HAVE_STROPTS_H 1
-#define HAVE_SYS_PARAM_H 1
-#define HAVE_SYS_SOCKET_H 1
-#define HAVE_NETINET_IN_H 1
-#define HAVE_NETDB_H 1
-#define HAVE_ARPA_INET_H 1
-#define HAVE_NETINET_IN_SYSTM_H 1
-#define HAVE_NETINET_IP_H 1
-#define HAVE_NETINET_TCP_H 1
-#define HAVE_SYS_UN_H 1
-#define HAVE_SYS_UIO_H 1
-#define HAVE_IFADDRS_H 1
-#define HAVE_DIRENT_H 1
-#define HAVE_LIBINTL_H 1
-#define HAVE_ERRNO_H 1
-#define HAVE_GETOPT_H 1
-#define HAVE_ICONV_H 1
-#define HAVE_SYS_INOTIFY_H 1
-#define HAVE_NSS_H 1
-#define HAVE_ZLIB_H 1
-#define HAVE_ASM_UNISTD_H 1
-#define HAVE_AIO_H 1
-#define HAVE_SYS_UNISTD_H 1
-#define HAVE_RPC_RPC_H 1
-#define HAVE_ALLOCA_H 1
-#define HAVE_FLOAT_H 1
-#define HAVE_RPCSVC_NIS_H 1
-#define HAVE_RPCSVC_YPCLNT_H 1
-#define HAVE_SYS_PRCTL_H 1
-#define HAVE_SYS_SYSCTL_H 1
-#define HAVE_SYS_SYSMACROS_H 1
-#define HAVE_RPCSVC_YP_PROT_H 1
-#define HAVE_SYS_CDEFS_H 1
-#define HAVE_UTMP_H 1
-#define HAVE_UTMPX_H 1
-#define HAVE_LASTLOG_H 1
-#define HAVE_SYSCALL_H 1
-#define HAVE_SYS_SYSCALL_H 1
-#define HAVE_LONG_LONG 1
-#define HAVE_INTPTR_T 1
-#define HAVE_UINTPTR_T 1
-#define HAVE_PTRDIFF_T 1
-#define HAVE_COMPARISON_FN_T 1
-#define HAVE_BOOL 1
-#define HAVE__Bool 1
-#define HAVE_INT8_T 1
-#define HAVE_INT16_T 1
-#define HAVE_UINT16_T 1
-#define HAVE_INT32_T 1
-#define HAVE_UINT32_T 1
-#define HAVE_INT64_T 1
-#define HAVE_UINT64_T 1
-#define HAVE_SIZE_T 1
-#define HAVE_SSIZE_T 1
-#define HAVE_INO_T 1
-#define HAVE_LOFF_T 1
-/* #undef HAVE_OFFSET_T */
-#define offset_t loff_t
-#define HAVE_VOLATILE 1
-/* #undef HAVE_UINT_T */
-#define uint_t unsigned int
-#define HAVE_SOCKLEN_T 1
-#define HAVE_STRUCT_IFADDRS 1
-#define HAVE_STRUCT_ADDRINFO 1
-#define HAVE_STRUCT_SOCKADDR 1
-#define HAVE_STRUCT_SOCKADDR_IN6 1
-#define HAVE_STRUCT_SOCKADDR_STORAGE 1
-#define HAVE_SA_FAMILY_T 1
-#define HAVE_SIG_ATOMIC_T_TYPE 1
-#define HAVE_INET_NTOA 1
-#define HAVE_INET_ATON 1
-#define HAVE_INET_NTOP 1
-#define HAVE_INET_PTON 1
-#define HAVE_CONNECT 1
-#define HAVE_GETHOSTBYNAME 1
-#define HAVE_GETADDRINFO 1
-#define HAVE_GETNAMEINFO 1
-#define HAVE_FREEADDRINFO 1
-#define HAVE_GAI_STRERROR 1
-#define HAVE_SOCKETPAIR 1
-#define HAVE_IPV6 1
-#define HAVE_STRDUP 1
-#define HAVE_MEMMEM 1
-#define HAVE_PRINTF 1
-#define HAVE_MEMSET 1
-#define HAVE_MEMCPY 1
-#define HAVE_MEMMOVE 1
-#define HAVE_STRCPY 1
-#define HAVE_STRNCPY 1
-#define HAVE_BZERO 1
-/* #undef HAVE_SHL_LOAD */
-/* #undef HAVE_SHL_UNLOAD */
-/* #undef HAVE_SHL_FINDSYM */
-#define HAVE_PIPE 1
-#define HAVE_STRFTIME 1
-#define HAVE_SRANDOM 1
-#define HAVE_RANDOM 1
-#define HAVE_SRAND 1
-#define HAVE_RAND 1
-#define HAVE_USLEEP 1
-#define HAVE_SETBUFFER 1
-#define HAVE_LSTAT 1
-#define HAVE_GETPGRP 1
-#define HAVE_UTIME 1
-#define HAVE_UTIMES 1
-#define HAVE_SETEUID 1
-#define HAVE_SETRESUID 1
-#define HAVE_SETEGID 1
-#define HAVE_SETRESGID 1
-#define HAVE_CHROOT 1
-#define HAVE_STRERROR 1
-#define HAVE_VSYSLOG 1
-#define HAVE_SETLINEBUF 1
-#define HAVE_MKTIME 1
-#define HAVE_FTRUNCATE 1
-/* #undef HAVE_CHSIZE */
-#define HAVE_RENAME 1
-#define HAVE_WAITPID 1
-#define HAVE_WAIT4 1
-/* #undef HAVE_STRLCPY */
-/* #undef HAVE_STRLCAT */
-#define HAVE_INITGROUPS 1
-#define HAVE_PREAD 1
-#define HAVE_PWRITE 1
-#define HAVE_STRNDUP 1
-#define HAVE_STRCASESTR 1
-#define HAVE_STRTOK_R 1
-#define HAVE_MKDTEMP 1
-#define HAVE_DUP2 1
-#define HAVE_DPRINTF 1
-#define HAVE_VDPRINTF 1
-#define HAVE_ISATTY 1
-#define HAVE_CHOWN 1
-#define HAVE_LCHOWN 1
-#define HAVE_LINK 1
-#define HAVE_READLINK 1
-#define HAVE_SYMLINK 1
-#define HAVE_REALPATH 1
-#define HAVE_SNPRINTF 1
-#define HAVE_VSNPRINTF 1
-#define HAVE_ASPRINTF 1
-#define HAVE_VASPRINTF 1
-#define HAVE_SETENV 1
-#define HAVE_UNSETENV 1
-#define HAVE_STRNLEN 1
-#define HAVE_STRTOULL 1
-/* #undef HAVE___STRTOULL */
-#define HAVE_STRTOUQ 1
-#define HAVE_STRTOLL 1
-/* #undef HAVE___STRTOLL */
-#define HAVE_STRTOQ 1
-#define HAVE_IF_NAMETOINDEX 1
-#define HAVE_STRERROR_R 1
-#define HAVE_GETDIRENTRIES 1
-/* #undef HAVE_GETDENTS */
-#define HAVE_SYSLOG 1
-#define HAVE_GET_CURRENT_DIR_NAME 1
-#define HAVE_TIMEGM 1
-#define HAVE_GETIFADDRS 1
-#define HAVE_FREEIFADDRS 1
-#define HAVE_MMAP 1
-#define HAVE_SETGROUPS 1
-#define HAVE_SETSID 1
-#define HAVE_GETGRENT_R 1
-#define HAVE_GETGRGID_R 1
-#define HAVE_GETGRNAM_R 1
-#define HAVE_GETGROUPLIST 1
-#define HAVE_GETPAGESIZE 1
-#define HAVE_GETPWENT_R 1
-#define HAVE_GETPWNAM_R 1
-#define HAVE_GETPWUID_R 1
-#define HAVE_EPOLL_CREATE 1
-#define HAVE_DLFCN_H 1
-#define HAVE_DLOPEN 1
-#define HAVE_DLSYM 1
-#define HAVE_DLERROR 1
-#define HAVE_DLCLOSE 1
-#define HAVE_LIBDL 1
-#define HAVE_DECL_DLOPEN 1
-/* #undef DLOPEN_TAKES_UNSIGNED_FLAGS */
-#define HAVE_FDATASYNC 1
-#define HAVE_NET_IF_H 1
-#define HAVE_ARPA_NAMESER_H 1
-#define HAVE_RESOLV_H 1
-#define HAVE_RES_SEARCH 1
-#define HAVE_LIBRESOLV 1
-#define HAVE_GETTEXT 1
-#define HAVE_PTHREAD_H 1
-#define HAVE_PTHREAD_CREATE 1
-#define HAVE_LIBPTHREAD 1
-#define HAVE_CRYPT 1
-#define HAVE_LIBCRYPT 1
-#define HAVE_DECL_RL_EVENT_HOOK 0
-#define HAVE_DECL_SNPRINTF 1
-#define HAVE_DECL_VSNPRINTF 1
-#define HAVE_DECL_ASPRINTF 1
-#define HAVE_DECL_VASPRINTF 1
-#define HAVE_ERRNO_DECL 1
-#define HAVE_ENVIRON_DECL 1
-#define HAVE_GETGRENT_R_DECL 1
-#define HAVE_GETPWENT_R_DECL 1
-#define HAVE_PREAD_DECL 1
-#define HAVE_PWRITE_DECL 1
-#define HAVE_SETENV_DECL 1
-#define HAVE_SETRESGID_DECL 1
-#define HAVE_SETRESUID_DECL 1
-#define SIZEOF_CHAR 1
 
-#define SIZEOF_INT 4
+/* setup for builtin heimdal */
+#define HAVE_GSSAPI_GSSAPI_H 1
+#define HAVE_KRB5_ADDRESSES 1
+#define HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK 1
+#define HAVE_KRB5_SET_REAL_TIME 1
+#undef HAVE_KRB5_DEPRECATED_WITH_IDENTIFIER
+#define HAVE_COM_ERR_H 1
+#define HAVE_ADDR_TYPE_IN_KRB5_ADDRESS 1
+#define HAVE_GSSAPI_GSSAPI_H 1
+#define HAVE_GSS_DISPLAY_STATUS 1
+#define HAVE_LIBGSSAPI 1
+#define HAVE_ADDR_TYPE_IN_KRB5_ADDRESS 1
+#define HAVE_CHECKSUM_IN_KRB5_CHECKSUM 1
+#define HAVE_DECL_KRB5_AUTH_CON_SET_REQ_CKSUMTYPE 0
+#define HAVE_DECL_KRB5_GET_CREDENTIALS_FOR_USER 0
+#define HAVE_E_DATA_POINTER_IN_KRB5_ERROR 1
+#define HAVE_INITIALIZE_KRB5_ERROR_TABLE 1
+#define HAVE_KRB5_ADDRESSES 1
+#define HAVE_KRB5_AUTH_CON_SETKEY 1
+#define HAVE_KRB5_CRYPTO 1
+#define HAVE_KRB5_CRYPTO_DESTROY 1
+#define HAVE_KRB5_CRYPTO_INIT 1
+#define HAVE_KRB5_C_ENCTYPE_COMPARE 1
+#define HAVE_KRB5_C_VERIFY_CHECKSUM 1
+#define HAVE_KRB5_DECODE_AP_REQ 1
+#define HAVE_KRB5_ENCTYPES_COMPATIBLE_KEYS 1
+#define HAVE_KRB5_ENCTYPE_TO_STRING 1
+#define HAVE_KRB5_ENCTYPE_TO_STRING_WITH_KRB5_CONTEXT_ARG 1
+#define HAVE_KRB5_FREE_ERROR_CONTENTS 1
+#define HAVE_KRB5_FREE_HOST_REALM 1
+#define HAVE_KRB5_FWD_TGT_CREDS 1
+#define HAVE_KRB5_GET_CREDS 1
+#define HAVE_KRB5_GET_CREDS_OPT_ALLOC 1
+#define HAVE_KRB5_GET_CREDS_OPT_SET_IMPERSONATE 1
+#define HAVE_KRB5_GET_DEFAULT_IN_TKT_ETYPES 1
+#define HAVE_KRB5_GET_HOST_REALM 1
+#define HAVE_KRB5_GET_INIT_CREDS_OPT_ALLOC 1
+#define HAVE_KRB5_GET_INIT_CREDS_OPT_FREE 1
+#define HAVE_KRB5_GET_INIT_CREDS_OPT_GET_ERROR 1
+#define HAVE_KRB5_GET_INIT_CREDS_OPT_SET_PAC_REQUEST 1
+#define HAVE_KRB5_GET_KDC_CRED 1
+#define HAVE_KRB5_GET_PW_SALT 1
+#define HAVE_KRB5_GET_RENEWED_CREDS 1
+#define HAVE_KRB5_KEYBLOCK_KEYVALUE 1
+#define HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK 1
+#define HAVE_KRB5_KRBHST_GET_ADDRINFO 1
+#define HAVE_KRB5_KRBHST_INIT 1
+#define HAVE_KRB5_KT_COMPARE 1
+#define HAVE_KRB5_KT_FREE_ENTRY 1
+#define HAVE_KRB5_KU_OTHER_CKSUM 1
+#define HAVE_KRB5_LOCATE_PLUGIN_H 1
+#define HAVE_KRB5_MK_REQ_EXTENDED 1
+#define HAVE_KRB5_PRINCIPAL_COMPARE_ANY_REALM 1
+#define HAVE_KRB5_PRINCIPAL_GET_COMP_STRING 1
+#define HAVE_KRB5_PRINCIPAL_GET_REALM 1
+#define HAVE_KRB5_REALM_TYPE 1
+#define HAVE_KRB5_SESSION_IN_CREDS 1
+#define HAVE_KRB5_SET_DEFAULT_IN_TKT_ETYPES 1
+#define HAVE_KRB5_SET_REAL_TIME 1
+#define HAVE_KRB5_STRING_TO_KEY 1
+#define HAVE_KRB5_STRING_TO_KEY_SALT 1
+#define HAVE_KRB5_VERIFY_CHECKSUM 1
+#define HAVE_LIBKRB5 1
+#define KRB5_CREDS_OPT_FREE_REQUIRES_CONTEXT 1
+#define KRB5_VERIFY_CHECKSUM_ARGS 6
+#define HAVE_ETYPE_IN_ENCRYPTEDDATA 1
+#define KRB5_PRINC_REALM_RETURNS_REALM 1
 
-#define SIZEOF_LONG_LONG 8
+/* assume ldap lib */
+#define HAVE_LDAP 1
+#define HAVE_LDAP_ADD_RESULT_ENTRY 1
+#define HAVE_LDAP_INIT 1
+#define HAVE_LDAP_INITIALIZE 1
+#define HAVE_LDAP_SASL_WRAPPING 1
+#define HAVE_LDAP_SET_REBIND_PROC 1
+#define LDAP_SET_REBIND_PROC_ARGS 3
+#define LDAP_DEPRECATED 1
 
-#define SIZEOF_LONG 8
-
-#define SIZEOF_OFF_T 8
-
-#define SIZEOF_SHORT 2
-
-#define SIZEOF_SIZE_T 8
-
-#define SIZEOF_SSIZE_T 8
-
-#define SIZEOF_DEV_T 8
-
-#define SIZEOF_INO_T 8
-
-#define SIZEOF_TIME_T 8
+/* force winbind and sendfile */
+#define WITH_SENDFILE 1
+#define WITH_WINBIND 1
 
-#define SIZEOF_VOID_P 8
+/* s3 pidfile.c needs this */
+extern const char *dyn_CONFIGFILE;
+#define CONFIGFILE dyn_CONFIGFILE
 
-#define HAVE_EPOLL 1
-/* #undef HAVE_STRPTIME */
-#define REPLACE_STRPTIME 1
-#define HAVE_KRB5_DEPRECATED_WITH_IDENTIFIER 1
-#define HAVE_GETTIMEOFDAY_TZ 1
-#define HAVE_C99_VSNPRINTF 1
-#define HAVE_IMMEDIATE_STRUCTURES 1
-#define HAVE_MKDIR_MODE 1
-#define HAVE_STAT_TV_NSEC 1
-#define HAVE_STRUCT_STAT_ST_RDEV 1
-#define HAVE_ST_RDEV 1
-#define HAVE_SS_FAMILY 1
-/* #undef HAVE_SOCKADDR_SA_LEN */
-/* #undef HAVE_SOCK_SIN_LEN */
-#define HAVE_UNIXSOCKET 1
-#define HAVE_SECURE_MKSTEMP 1
-#define HAVE_VISIBILITY_ATTR 1
-#define HAVE_IFACE_GETIFADDRS 1
-#define HAVE_GETPASS 1
-/* #undef HAVE_GETPASSPHRASE */
-#define REPLACE_GETPASS 1
-#define HAVE_DECL_GETPWENT_R 1
-/* #undef SOLARIS_GETPWENT_R */
-#define HAVE_DECL_GETGRENT_R 1
-/* #undef SOLARIS_GETGRENT_R */
-#define CONFIGFILE "/home/tridge-waf/prefix-s3-waf/lib/smb.conf"
-#define PYTHONDIR "/home/tridge-waf/prefix-s3-waf/lib/python2.6/site-packages"
-#define HAVE_PYTHON_H 1
-#define HAVE_POPT_H 1
-#define HAVE_LIBPOPT 1
-#define HAVE_POPTGETCONTEXT 1
-#define USING_SYSTEM_POPT 1
-#define NSS_WRAPPER 1
-#define SOCKET_WRAPPER 1
-#define HAVE_LIBZ 1
-#define HAVE_ZLIBVERSION 1
-/* #undef HAVE_ZLIB */
-#define HAVE_EXECINFO_H 1
+/* missing configure tests */
 #define HAVE_GETCWD 1
 #define HAVE_FCHOWN 1
 #define HAVE_CHMOD 1
 #define HAVE_FCHMOD 1
 #define HAVE_MKNOD 1
-/* #undef HAVE_MKNOD64 */
 #define HAVE_STRTOL 1
 #define HAVE_STRCHR 1
-/* #undef HAVE_STRUPR */
-/* #undef HAVE_CHFLAGS */
 #define HAVE_GETRLIMIT 1
 #define HAVE_FSYNC 1
 #define HAVE_SETPGID 1
 #define HAVE_GLOB 1
 #define HAVE_STRPBRK 1
-/* #undef HAVE_CRYPT16 */
-/* #undef HAVE_GETAUTHUID */
-#define HAVE_SIGPROCMASK 1
-#define HAVE_SIGBLOCK 1
-#define HAVE_SIGACTION 1
 #define HAVE_SIGSET 1
 #define HAVE_INNETGR 1
 #define HAVE_SETNETGRENT 1
 #define HAVE_ENDNETGRENT 1
 #define HAVE_SELECT 1
 #define HAVE_POLL 1
-/* #undef HAVE_RDCHK */
 #define HAVE_GETGRNAM 1
 #define HAVE_GETGRENT 1
 #define HAVE_PATHCONF 1
-/* #undef HAVE_SETPRIV */
-/* #undef HAVE_SETGIDX */
-/* #undef HAVE_SETUIDX */
 #define HAVE_SYSCONF 1
 #define HAVE_STAT64 1
 #define HAVE_FSTAT64 1
 #define HAVE_LSTAT64 1
 #define HAVE_FOPEN64 1
-#define HAVE_ATEXIT 1
 #define HAVE_GRANTPT 1
 #define HAVE_LSEEK64 1
 #define HAVE_FTRUNCATE64 1
 #define HAVE_POSIX_FALLOCATE 1
 #define HAVE_POSIX_FALLOCATE64 1
-/* #undef HAVE_FSEEK64 */
 #define HAVE_FSEEKO64 1
-/* #undef HAVE_FTELL64 */
 #define HAVE_FTELLO64 1
-/* #undef HAVE_SETLUID */
 #define HAVE_GETPWNAM 1
-/* #undef HAVE_OPENDIR64 */
 #define HAVE_READDIR64 1
-/* #undef HAVE_SEEKDIR64 */
-/* #undef HAVE_TELLDIR64 */
-/* #undef HAVE_REWINDDIR64 */
-/* #undef HAVE_CLOSEDIR64 */
-/* #undef HAVE_GETDENTS64 */
 #define HAVE_STRCASECMP 1
 #define HAVE_FCVT 1
-/* #undef HAVE_FCVTL */
 #define HAVE_SETLOCALE 1
 #define HAVE_NL_LANGINFO 1
 #define HAVE_LIBRT 1
 #define HAVE_MUNLOCKALL 1
 #define HAVE_MEMALIGN 1
 #define HAVE_POSIX_MEMALIGN 1
-#define HAVE_HSTRERROR 1
 #define HAVE_SHMGET 1
 #define HAVE_SHM_OPEN 1
-#define HAVE_DGETTEXT 1
 #define HAVE_BINDTEXTDOMAIN 1
 #define HAVE_TEXTDOMAIN 1
-#define HAVE_LIBNSL 1
 #define HAVE_YP_GET_DEFAULT_DOMAIN 1
-/* #undef HAVE_DN_EXPAND */
-/* #undef HAVE__DN_EXPAND */
 #define HAVE___DN_EXPAND 1
-#define HAVE_LINUX_INOTIFY_H 1
-#define HAVE_INOTIFY_INIT 1
 #define HAVE_INOTIFY 1
 #define HAVE_KERNEL_CHANGE_NOTIFY 1
 #define HAVE_KERNEL_OPLOCKS_LINUX 1
-/* #undef HAVE_KERNEL_OPLOCKS_IRIX */
 #define HAVE_KERNEL_SHARE_MODES 1
 #define HAVE_BLKSIZE_T 1
 #define HAVE_BLKCNT_T 1
 #define HAVE_STAT_ST_BLOCKS 1
 #define HAVE_STAT_ST_BLKSIZE 1
-/* #undef HAVE_CAP_GET_PROC */
-/* #undef HAVE_INT16_FROM_RPC_RPC_H */
 #define HAVE_COMPILER_WILL_OPTIMIZE_OUT_FNS 1
-/* #undef HAVE__ACL */
-/* #undef HAVE___ACL */
-/* #undef HAVE_ADD_PROPLIST_ENTRY */
-/* #undef HAVE_ATTR_GETF */
-/* #undef HAVE_ATTR_LIST */
-/* #undef HAVE_ATTR_LISTF */
-/* #undef HAVE_ATTROPEN */
-/* #undef HAVE_ATTR_REMOVE */
-/* #undef HAVE_ATTR_REMOVEF */
-/* #undef HAVE_ATTR_SET */
-/* #undef HAVE_ATTR_SETF */
 #define HAVE_BACKTRACE_SYMBOLS 1
-/* #undef HAVE__CHDIR */
-/* #undef HAVE___CHDIR */
-/* #undef HAVE__CLOSE */
 #define HAVE___CLOSE 1
-/* #undef HAVE__CLOSEDIR */
-/* #undef HAVE___CLOSEDIR */
 #define HAVE_CREAT64 1
-/* #undef HAVE_DELPROPLIST */
-/* #undef HAVE_DEVNM */
-#define HAVE_DIRFD 1
-/* #undef HAVE_DNSSERVICEREGISTER */
-/* #undef HAVE__DUP */
-/* #undef HAVE___DUP */
-/* #undef HAVE__DUP2 */
 #define HAVE___DUP2 1
 #define HAVE_ENDMNTENT 1
 #define HAVE_EXECL 1
-/* #undef HAVE_EXTATTR_DELETE_FD */
-/* #undef HAVE_EXTATTR_DELETE_LINK */
-/* #undef HAVE_EXTATTR_GET_FD */
-/* #undef HAVE_EXTATTR_GET_FILE */
-/* #undef HAVE_EXTATTR_GET_LINK */
-/* #undef HAVE_EXTATTR_LIST_FD */
-/* #undef HAVE_EXTATTR_LIST_FILE */
-/* #undef HAVE_EXTATTR_LIST_LINK */
-/* #undef HAVE_EXTATTR_SET_FD */
-/* #undef HAVE_EXTATTR_SET_FILE */
-/* #undef HAVE_EXTATTR_SET_LINK */
-/* #undef HAVE__FACL */
-/* #undef HAVE___FACL */
-/* #undef HAVE__FCHDIR */
-/* #undef HAVE___FCHDIR */
-/* #undef HAVE__FCNTL */
 #define HAVE___FCNTL 1
-/* #undef HAVE_FDELPROPLIST */
-/* #undef HAVE_FGETEA */
-/* #undef HAVE_FGETPROPLIST */
 #define HAVE_FGETXATTR 1
-/* #undef HAVE_FLISTEA */
-#define HAVE_FLISTXATTR 1
-/* #undef HAVE__FORK */
 #define HAVE___FORK 1
-/* #undef HAVE_FREMOVEEA */
 #define HAVE_FREMOVEXATTR 1
-/* #undef HAVE_FSETEA */
-/* #undef HAVE_FSETPROPLIST */
 #define HAVE_FSETXATTR 1
-/* #undef HAVE__FSTAT */
 #define HAVE___FSTAT 1
-/* #undef HAVE__FSTAT64 */
-/* #undef HAVE___FSTAT64 */
 #define HAVE___FXSTAT 1
-/* #undef HAVE__GETCWD */
-/* #undef HAVE___GETCWD */
-/* #undef HAVE___GETDENTS */
 #define HAVE_GETMNTENT 1
-/* #undef HAVE_GETPROPLIST */
-/* #undef HAVE_GET_PROPLIST_ENTRY */
-/* #undef HAVE_GETPWANAM */
 #define HAVE_GETUTMPX 1
 #define HAVE_GETUTXENT 1
-/* #undef HAVE_LGETEA */
 #define HAVE_LGETXATTR 1
-/* #undef HAVE_LISTEA */
 #define HAVE_LISTXATTR 1
-/* #undef HAVE_LLISTEA */
 #define HAVE_LLISTXATTR 1
 #define HAVE_LLSEEK 1
-/* #undef HAVE__LLSEEK */
-/* #undef HAVE___LLSEEK */
-/* #undef HAVE_LREMOVEEA */
 #define HAVE_LREMOVEXATTR 1
-/* #undef HAVE__LSEEK */
 #define HAVE___LSEEK 1
-/* #undef HAVE_LSETEA */
 #define HAVE_LSETXATTR 1
-/* #undef HAVE__LSTAT */
 #define HAVE___LSTAT 1
-/* #undef HAVE__LSTAT64 */
-/* #undef HAVE___LSTAT64 */
 #define HAVE___LXSTAT 1
-/* #undef HAVE__OPEN */
 #define HAVE___OPEN 1
 #define HAVE_OPEN64 1
-/* #undef HAVE__OPEN64 */
 #define HAVE___OPEN64 1
-/* #undef HAVE__OPENDIR */
-/* #undef HAVE___OPENDIR */
 #define HAVE_PRCTL 1
-/* #undef HAVE__PREAD */
-/* #undef HAVE___PREAD */
 #define HAVE_PREAD64 1
-/* #undef HAVE__PREAD64 */
 #define HAVE___PREAD64 1
 #define HAVE_PUTUTLINE 1
 #define HAVE_PUTUTXLINE 1
-/* #undef HAVE__PWRITE */
-/* #undef HAVE___PWRITE */
 #define HAVE_PWRITE64 1
-/* #undef HAVE__PWRITE64 */
 #define HAVE___PWRITE64 1
-/* #undef HAVE__READ */
 #define HAVE___READ 1
-/* #undef HAVE__READDIR */
-/* #undef HAVE___READDIR */
-/* #undef HAVE__READDIR64 */
-/* #undef HAVE___READDIR64 */
-/* #undef HAVE_REMOVEEA */
 #define HAVE_REMOVEXATTR 1
-/* #undef HAVE__SEEKDIR */
-/* #undef HAVE___SEEKDIR */
-/* #undef HAVE_SETEA */
 #define HAVE_SETMNTENT 1
-/* #undef HAVE_SETPROPLIST */
 #define HAVE_SETXATTR 1
-/* #undef HAVE_SIZEOF_PROPLIST_ENTRY */
-/* #undef HAVE__STAT */
 #define HAVE___STAT 1
-/* #undef HAVE__STAT64 */
-/* #undef HAVE___STAT64 */
 #define HAVE_STATVFS 1
 #define HAVE_STRSIGNAL 1
-/* #undef HAVE_SYSCTLBYNAME */
-/* #undef HAVE___SYS_LLSEEK */
-/* #undef HAVE__TELLDIR */
-/* #undef HAVE___TELLDIR */
 #define HAVE_UPDWTMP 1
 #define HAVE_UPDWTMPX 1
-/* #undef HAVE__WRITE */
 #define HAVE___WRITE 1
 #define HAVE___XSTAT 1
 #define HAVE_STRUCT_TIMESPEC 1
-#define HAVE_ICONV_OPEN 1
-#define HAVE_NATIVE_ICONV 1
 #define HAVE_CHARSET_CP850 1
 #define HAVE_CHARSET_ASCII 1
 #define HAVE_CHARSET_UTF_8 1
 #define DEFAULT_DOS_CHARSET "CP850"
 #define DEFAULT_DISPLAY_CHARSET "ASCII"
 #define DEFAULT_UNIX_CHARSET "UTF-8"
+
+/* s3 modules */
 #define STRING_STATIC_MODULES "pdb_ldap pdb_ads pdb_smbpasswd     pdb_tdbsam pdb_wbc_sam rpc_lsarpc rpc_winreg rpc_initshutdown rpc_dssetup     rpc_wkssvc rpc_svcctl rpc_ntsvcs rpc_netlogon rpc_netdfs rpc_srvsvc     rpc_spoolss rpc_eventlog rpc_samr rpc_rpcecho idmap_ldap idmap_tdb     idmap_passdb idmap_nss nss_info_template auth_sam auth_unix auth_winbind     auth_wbc auth_server auth_domain auth_builtin auth_netlogond vfs_default"
 #define static_init_vfs {  vfs_default_init();}
 #define static_init_pdb { pdb_smbpasswd_init();  pdb_tdbsam_init();  pdb_wbc_sam_init();}
 #define static_init_nss_info {}
 #define static_init_charset {}
 #define static_init_idmap {}
-#define WITH_WINBIND 1
 #define auth_script_init init_samba_module
 #define charset_CP437_init init_samba_module
 #define charset_CP850_init init_samba_module
 #define static_decl_vfs extern NTSTATUS vfs_default_init(void);
 #define static_init_gpext {}
 #define static_init_perfcount {}
-#define STAT_STATVFS64 1
 #define STAT_ST_BLOCKSIZE 512
 #define vfs_acl_tdb_init init_samba_module
 #define vfs_acl_xattr_init init_samba_module
 #define vfs_streams_xattr_init init_samba_module
 #define vfs_syncops_init init_samba_module
 #define vfs_xattr_tdb_init init_samba_module
-#define WITH_SENDFILE 1
+
 #endif /* _INCLUDE_CONFIG_H_WAF */
index 24d8bef287d023bdf7e01892bd0141c36acf71be..753d6aa78a8e466ef1abfc009a1cba7720ded0ab 100644 (file)
@@ -1,5 +1,6 @@
 /* this wraps the s3 includes.h to give the opportunity
    to override some defines if need be */
 #include "source3/include/includes.h"
+#include "source4/s3compat/s3replace.h"
 
 #define USE_SETRESUID 1
diff --git a/source4/s3compat/compat/smb_krb5.h b/source4/s3compat/compat/smb_krb5.h
new file mode 100644 (file)
index 0000000..2bc4795
--- /dev/null
@@ -0,0 +1,7 @@
+/* wrapper around the s3 smb_krb5.h to add missing prototypes */
+
+#include "source3/include/smb_krb5.h"
+
+
+krb5_realm *krb5_princ_realm(krb5_context context, krb5_principal principal);
+void krb5_princ_set_realm(krb5_context context, krb5_principal principal, krb5_realm *realm);
index 5d893b2018d5695499aa8f7aff3f75a12a7b1530..f3042c57b7a38a8b9cfa7b9a6e641f0247be27a8 100644 (file)
@@ -42,10 +42,10 @@ static void s3compat_smb_accept(struct stream_connection *conn)
        int fd = socket_get_fd(conn->socket);
 #if 0
        char *cmd = talloc_asprintf(conn, "xterm -e gdb --pid %u &", getpid());
-       DEBUG(0,(__location__ ": NEW CONNECTION\n"));
        system(cmd);
        sleep(2);
 #endif
+       DEBUG(0,(__location__ ": new s3compat smbd connection\n"));
        s3compat_set_server_fd(fd);
        s3compat_set_event_ctx(conn->event.ctx);
        tevent_re_initialise(conn->event.ctx);
index 9f81d7435343263860d2967e23ac9137409b36bf..16526ec6d4dd0c1b7bfcd5a510df08df14ccb968 100644 (file)
 #include "includes.h"
 #include "../libcli/auth/libcli_auth.h"
 #include "librpc/gen_ndr/ndr_secrets.h"
+#include "smb_krb5.h"
 
 void build_options(bool screen)
 {
        DEBUG(2,("build options:\ns3compat\n"));
 }
 
+/* TODO: andrewB to fix */
+krb5_realm *krb5_princ_realm(krb5_context context, krb5_principal principal)
+{
+       DEBUG(2,("WARNING: krb5_princ_realm not implemented in s3replace\n"));
+       return NULL;
+}
+
+ void krb5_princ_set_realm(krb5_context context, krb5_principal principal, krb5_realm *realm)
+{
+       DEBUG(2,("WARNING: krb5_princ_set_realm not implemented in s3replace\n"));
+}
index cbd05d02fcb5cede5a71e00db8ec6c219af99935..8b29443baa32f5b598e70cc3f991940ff958ac22 100644 (file)
@@ -13,3 +13,4 @@ def configure(conf):
     if conf.env.ENABLE_S3COMPAT:
         conf.DEFINE('ENABLE_S3COMPAT', 1)
 
+    conf.CHECK_FUNCS_IN('ber_flush ldap_open', 'lber ldap', headers='lber.h ldap.h')
index 97cb8e1d0eea7f97a4713d212da5f9c91800595e..0e52830f366b549229ef901f9494d52f2ffe05a6 100644 (file)
@@ -128,7 +128,7 @@ PTHREADPOOL_SRC = ''
 
 AUTH_STATIC = ''
 
-SMBLDAP = ''
+SMBLDAP = 'lib/smbldap.c'
 
 SMBLDAPUTIL = ''
 
@@ -788,13 +788,13 @@ SMBD_SRC_SRV = '''smbd/files.c smbd/chgpasswd.c smbd/connection.c
                ../libcli/smb/smb2_create_blob.c
                ${MANGLE_SRC} ${VFS_DEFAULT_SRC}'''
 
-SMBD_SRC_BASE = '''${SMBD_SRC_SRV}
+SMBD_SRC_BASE = '''${LIBADS_SRC} ${SMBD_SRC_SRV}
                 ${RPC_SERVER_SRC} ${RPC_PARSE_SRC}
                 ${LOCKING_SRC} ${PRINTING_SRC}
                 ${PROFILE_SRC} ${PRINTBACKEND_SRC}
                 ${OPLOCK_SRC} ${NOTIFY_SRC} ${FNAME_UTIL_SRC}
                 ${LIBMSRPC_SRC}
-                ${LIBMSRPC_GEN_SRC} ${AVAHI_SRC} ${LIBADS_SRC}
+                ${LIBMSRPC_GEN_SRC} ${AVAHI_SRC}
                 ${KRBCLIENT_SRC} ${LIBADS_SERVER_SRC} ${REG_FULL_SRC}
                 ${POPT_LIB_SRC} ${SMBLDAP_SRC}
                 ${LIBNET_SRC}
@@ -826,7 +826,7 @@ SMBD_SRC = bld.EXPAND_VARIABLES('${SMBD_SRC_BASE}', vars=locals())
 
 LIB_SRC = bld.EXPAND_VARIABLES(LIB_SRC, vars=locals())
 
-SAMBA3_INCLUDES = '#source4/s3compat/compat #source4/dynconfig #source3 #source3/lib #source3/include #lib/replace #lib/talloc #source3/libaddns #source3/librpc #source3/build'
+SAMBA3_INCLUDES = '#source4/s3compat/compat #source4/dynconfig #source3 #source3/lib #source3/include #source3/libaddns #source3/librpc #source3/build'
 
 s3_vars = locals()
 
@@ -911,6 +911,7 @@ bld.SAMBA_SUBSYSTEM('s3compat_wrapper',
 
 bld.SAMBA_SUBSYSTEM('s3replace',
                     source='s3replace.c',
+                    autoproto='s3replace.h',
                     includes=SAMBA3_INCLUDES,
                     deps='talloc tevent tdb',
                     hide_symbols=True)
@@ -921,7 +922,7 @@ bld.SAMBA_SUBSYSTEM('s3dynconfig',
 
 bld.SAMBA_LIBRARY('s3compatcore',
                   source=[],
-                  deps='s3replace s3compat_wrapper s3dynconfig LIBSECURITY_COMMON LIBCRYPTO LIBSAMBA-UTIL s3_smbd',
+                  deps='s3replace s3compat_wrapper s3dynconfig LIBSECURITY_COMMON LIBCRYPTO LIBSAMBA-UTIL s3_smbd HEIMDAL_GSSAPI lber ldap',
                   hide_symbols=True)
 
 bld.SAMBA_SUBSYSTEM('s3compat',