[packages_10.03.2] samba3: merge r28303 - r31247
authorjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Tue, 10 Apr 2012 20:15:02 +0000 (20:15 +0000)
committerjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Tue, 10 Apr 2012 20:15:02 +0000 (20:15 +0000)
git-svn-id: svn://svn.openwrt.org/openwrt/branches/packages_10.03.2@31248 3c298f89-4303-0410-b956-a3cf2f4a3e73

20 files changed:
net/samba3/Config.in
net/samba3/Makefile
net/samba3/files/config-lfs.h
net/samba3/files/samba-nmbd.init [new file with mode: 0755]
net/samba3/files/samba.config
net/samba3/files/samba.init
net/samba3/files/smb.conf.template
net/samba3/patches/100-avm.patch
net/samba3/patches/110-compile_fixes.patch
net/samba3/patches/120-owrt_paths.patch
net/samba3/patches/130-owrt_smbpasswd.patch
net/samba3/patches/140-no_mmap.patch [deleted file]
net/samba3/patches/150-fix_ls.patch
net/samba3/patches/160-fix_log.patch
net/samba3/patches/170-no_rpc.patch
net/samba3/patches/180-fix_duplicate_define.patch [deleted file]
net/samba3/patches/200-fix-configure.patch [new file with mode: 0644]
net/samba3/patches/500-remove_avm_smaller.patch [new file with mode: 0644]
net/samba3/patches/510-remove-printing.patch [new file with mode: 0644]
net/samba3/patches/600-CVE-2012-1182.patch [new file with mode: 0644]

index c6b7e76..a71de4d 100644 (file)
@@ -1,4 +1,24 @@
-config SAMBA3_DEBUG 
+config SAMBA3_CONFIG_DEBUG 
        bool "Enable Logging for samba3"
        depends PACKAGE_samba3
        default n
+       help
+               Enables debugging support (will make binaries *much* bigger)
+               Also increases MAX_DEBUG_LEVEL to get more messages (also increases binary sizes!)
+
+config SAMBA3_CONFIG_PRINTING
+       bool "Enable shared printing support"
+       depends PACKAGE_samba3
+       select PACKAGE_cups
+       default n
+       help
+               Enable shared printing support.
+               Adds about 18kB for smbd, about 15kB for nmbd and about 18kB for smbpasswd
+
+config SAMBA3_CONFIG_SMALLER
+       bool "Make samba3 even smaller"
+       depends PACKAGE_samba3
+       default y
+       help
+               Removes support for ???
+               Saves about 18kB for smbd, about 16kB for nmbd and about 17kB for smbpasswd
index 1a10101..191d608 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2008-2011 OpenWrt.org
+# Copyright (C) 2008-2012 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -7,29 +7,60 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=samba3
-PKG_VERSION:=3.0.24
-PKG_RELEASE:=8
-PKG_MD5SUM:=89273f67a6d8067cbbecefaa13747153
+PKG_VERSION:=3.0.37
+PKG_RELEASE:=5
+
+PKG_MD5SUM:=11ed2bfef4090bd5736b194b43f67289
 
 PKG_SOURCE_URL:=ftp://ftp.samba.org/pub/samba/old-versions/
 PKG_SOURCE:=samba-$(PKG_VERSION).tar.gz
-PKG_BUILD_DIR:=$(BUILD_DIR)/samba-$(PKG_VERSION)/
+PKG_BUILD_DIR:=$(BUILD_DIR)/samba-$(PKG_VERSION)
+PKG_BUILD_PARALLEL:=1
 
 include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/nls.mk
 
-TARGET_CFLAGS+=$(if $(CONFIG_SAMBA3_DEBUG),-DSAMBA_DEBUG)
-
-define Package/samba3
+define Package/samba3/Default
   SECTION:=net
   CATEGORY:=Network
   SUBMENU:=Filesystem
-  TITLE:=samba3
-  DEPENDS:=+libpthread
   URL:=http://www.samba.org/
 endef
 
-define Package/samba3/Description
-  Samba3 - made small with patches taken from AVM GPL releases and freetz 
+define Package/samba3
+$(call Package/samba3/Default)
+  TITLE:=SMB server for file and printer sharing
+  DEPENDS:=+libpthread +libpopt $(ICONV_DEPENDS)
+endef
+
+define Package/samba3-nmbd
+$(call Package/samba3/Default)
+  TITLE:=NetBIOS name server
+  DEPENDS:=samba3
+endef
+
+define Package/samba3-mountcifs
+$(call Package/samba3/Default)
+  SECTION:=utils
+  CATEGORY:=Utilities
+  TITLE:=Mount utility for samba shares
+endef
+
+define Package/samba3/description
+SMB server for file and printer sharing
+Also contains a SMB password utility (smbpasswd)
+
+Made small with patches taken from AVM GPL releases and freetz 
+endef
+
+define Package/samba3-nmbd/description
+NetBIOS name server
+
+Made small with patches taken from AVM GPL releases and freetz 
+endef
+
+define Package/samba3-mountcifs/description
+An user space helper utility for mounting remote CIFS shares.
 endef
 
 define Package/samba3/conffiles
@@ -41,31 +72,44 @@ define Package/samba3/config
        source "$(SOURCE)/Config.in"
 endef
 
-define Build/Prepare/LFS
-endef
+TARGET_CFLAGS+=$(if $(CONFIG_SAMBA3_CONFIG_DEBUG),-DSAMBA_DEBUG,-DMAX_DEBUG_LEVEL=2)
+TARGET_CFLAGS+=$(if $(CONFIG_SAMBA3_CONFIG_SMALLER),-DAVM_SMALLER)
+TARGET_CFLAGS+=$(if $(CONFIG_SAMBA3_CONFIG_PRINTING),,-DAVM_NO_PRINTING)
+CONFIGURE_PATH:=source
+CONFIGURE_ARGS+= \
+       $(if $(CONFIG_SAMBA3_CONFIG_DEBUG),--enable-debug) \
+       $(if $(CONFIG_SAMBA3_CONFIG_PRINTING),,--enable-cups=no --enable-iprint=no) \
+       --without-krb5 \
+       --without-ads \
+       --without-ldap \
+       --enable-largefile \
+       --with-configdir=/etc/samba \
+       --with-libiconv=$(ICONV_PREFIX) \
+       --with-privatedir=/etc/samba
 
-define Build/Prepare
-$(call Build/Prepare/Default)
-endef
+# Make sure we tell the configure script that we support negative enum values and want to use setresuid
+CONFIGURE_VARS+= \
+       SMB_BUILD_CC_NEGATIVE_ENUM_VALUES=yes \
+       samba_cv_USE_SETEUID=no \
+       samba_cv_have_setresuid=yes \
+       samba_cv_USE_SETRESUID=yes \
+       samba_cv_HAVE_C99_VSNPRINTF=yes \
+       samba_cv_have_longlong=yes \
+       ac_cv_type_long_long=yes \
 
-define Build/Configure
-       [ -f "$(PKG_BUILD_DIR)/source/include/config.h.save" ] || \
-               $(CP) $(PKG_BUILD_DIR)/source/include/config.h \
-                       $(PKG_BUILD_DIR)/source/include/config.h.save
-       cat \
-               $(PKG_BUILD_DIR)/source/include/config.h.save \
-               ./files/config-lfs.h >> $(PKG_BUILD_DIR)/source/include/config.h
-       $(Build/Configure/Default)
-endef
+MAKE_PATH=source
+MAKE_FLAGS += \
+       $(if $(CONFIG_SAMBA3_CONFIG_PRINTING),,OWRT_NO_PRINTING=1) \
+       $(if $(CONFIG_SAMBA3_CONFIG_SMALLER),OWRT_SMALLER=1)
 
 define Build/Compile
-       CC="$(TARGET_CC)" \
-       CFLAGS="$(TARGET_CFLAGS)" \
-       CPPFLAGS="$(TARGET_CPPFLAGS)" \
-       LDFLAGS="$(TARGET_LDFLAGS)" \
-       $(MAKE) -C $(PKG_BUILD_DIR)/source \
-               $(TARGET_CONFIGURE_OPTS) \
-               all bin/smbpasswd
+       # Ugly fix for parallel building (without this some generated files will be missing upon clean build)
+       $(call Build/Compile/Default, proto_exists)
+       $(call Build/Compile/Default, \
+               $(if $(CONFIG_PACKAGE_samba3),bin/smbd bin/smbpasswd) \
+               $(if $(CONFIG_PACKAGE_samba3-nmbd),bin/nmbd) \
+               $(if $(CONFIG_PACKAGE_samba3-mountcifs),bin/mount.cifs bin/umount.cifs) \
+       )
 endef
 
 define Package/samba3/install
@@ -74,10 +118,24 @@ define Package/samba3/install
        $(INSTALL_DATA) ./files/samba.config $(1)/etc/config/samba
        $(INSTALL_DATA) ./files/smb.conf.template $(1)/etc/samba/
        touch $(1)/etc/samba/smbpasswd
-       $(INSTALL_DIR) $(1)/bin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/source/bin/smbpasswd $(1)/bin/
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/source/bin/smbd $(1)/bin/
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/source/bin/nmbd $(1)/bin/
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/source/bin/smbpasswd $(1)/usr/sbin/
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/source/bin/smbd $(1)/usr/sbin/
+endef
+
+define Package/samba3-nmbd/install
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) ./files/samba-nmbd.init $(1)/etc/init.d/samba-nmbd
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/source/bin/nmbd $(1)/usr/sbin/
+endef
+
+define Package/samba3-mountcifs/install
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/source/bin/mount.cifs $(1)/usr/sbin/
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/source/bin/umount.cifs $(1)/usr/sbin/
 endef
 
 $(eval $(call BuildPackage,samba3))
+$(eval $(call BuildPackage,samba3-nmbd))
+$(eval $(call BuildPackage,samba3-mountcifs))
index 128e8a5..e69de29 100644 (file)
@@ -1,56 +0,0 @@
-#undef HAVE_CREAT64
-#define HAVE_CREAT64 1
-
-#undef HAVE_FSEEKO64
-#define HAVE_FSEEKO64 1
-
-#undef HAVE_FSTAT64
-#define HAVE_FSTAT64 1
-
-#undef HAVE_FTELLO64
-#define HAVE_FTELLO64 1
-
-#undef HAVE_FTRUNCATE64
-#define HAVE_FTRUNCATE64 1
-
-#undef HAVE_LSEEK64
-#define HAVE_LSEEK64 1
-
-#undef HAVE_LSTAT64
-#define HAVE_LSTAT64 1
-
-#undef HAVE_OPEN64
-#define HAVE_OPEN64 1
-
-#undef HAVE_PREAD64
-#define HAVE_PREAD64 1
-
-#undef HAVE_PWRITE64
-#define HAVE_PWRITE64 1
-
-#undef HAVE_READDIR64
-#define HAVE_READDIR64 1
-
-#undef HAVE_STAT64
-#define HAVE_STAT64 1
-
-#undef HAVE_STRUCT_FLOCK64
-#define HAVE_STRUCT_FLOCK64 1
-
-#undef SIZEOF_LONG_LONG
-#define SIZEOF_LONG_LONG 8
-
-#undef SIZEOF_OFF_T
-#define SIZEOF_OFF_T 8
-
-#undef _FILE_OFFSET_BITS
-#define _FILE_OFFSET_BITS 64
-
-#undef _GNU_SOURCE
-#define _GNU_SOURCE 1
-
-#undef _LARGEFILE_SOURCE
-#define _LARGEFILE_SOURCE 1
-
-#undef _LARGEFILE64_SOURCE
-#define _LARGEFILE64_SOURCE 1
diff --git a/net/samba3/files/samba-nmbd.init b/net/samba3/files/samba-nmbd.init
new file mode 100755 (executable)
index 0000000..5c4428d
--- /dev/null
@@ -0,0 +1,12 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2011 OpenWrt.org
+
+START=61
+
+start() {
+       service_start /usr/sbin/nmbd -D
+}
+
+stop() {
+       service_stop /usr/sbin/nmbd
+}
index 3acff5d..908f536 100644 (file)
@@ -1,14 +1,29 @@
+# Base server settings
 config samba
-       option 'name'                   'openwrt'
-       option 'workgroup'              'openwrt'
-       option 'description'    'openwrt'
-       option 'homes'                  '1'
-               
+       ## Override if desired, defaults to hostname
+       #option 'name'                  'OpenWrt'
+       #option 'workgroup'             'OpenWrt'
+       #option 'description'           'Samba on OpenWrt'
+
+       ## Expose user home directories, defaults to off
+       option 'homes'                  '1'
+
+       ## Override character set, default is UTF-8
+       option 'charset'                'ISO-8859-1'
+
+       ## Override listen interfaces & addresses,
+       ## defaults to loopback and lan
+       #list 'interface'               'loopback'
+       #list 'interface'               'lan'
+       #list 'interface'               '10.0.0.0/255.255.0.0'
+       #list 'interface'               'eth0'
+
+# Declare a share on /tmp
 config sambashare
        option 'name'                   'tmp'
        option 'path'                   '/tmp'
        option 'read_only'              'no'
        option 'guest_ok'               'no'
-       option 'create_mask'    '0700'
+       option 'create_mask'            '0700'
        option 'dir_mask'               '0700'
        #option 'users'                 'abc'
index ad8f268..6d755ea 100755 (executable)
@@ -1,31 +1,66 @@
 #!/bin/sh /etc/rc.common
-# Copyright (C) 2008-2010 OpenWrt.org
+# Copyright (C) 2008-2011 OpenWrt.org
 
 START=60
 
 smb_header() {
-       local name
-       local workgroup
-       local description
+       local interface
+       config_get interface $1 interface "loopback lan"
+
+       # resolve interfaces
+       local interfaces=$(
+               include /lib/network
+               scan_interfaces
+
+               local net
+               for net in $interface; do
+                       local ifname
+                       config_get ifname "$net" ifname
+                       [ -n "$ifname" ] && {
+                               local ipaddr netmask
+                               config_get ipaddr  "$net" ipaddr
+                               config_get netmask "$net" netmask
+                               [ -n "$ipaddr" ] && echo -n "$ipaddr/${netmask:-255.255.255.255} "
+
+                               local ip6addr
+                               config_get ip6addr "$net" ip6addr
+                               [ -n "$ip6addr" ] && echo -n "$ip6addr "
+                       }
+
+                       echo -n "${ifname:-$net} "
+               done
+       )
+
+       local name workgroup description charset
+       local hostname="$(uci_get system.@system[0].hostname)"
+
+       config_get name        $1 name        "${hostname:-OpenWrt}"
+       config_get workgroup   $1 workgroup   "${hostname:-OpenWrt}"
+       config_get description $1 description "Samba on ${hostname:-OpenWrt}"
+       config_get charset     $1 charset     "UTF-8"
+
+       mkdir -p /var/etc
+       sed -e "s#|NAME|#$name#g" \
+           -e "s#|WORKGROUP|#$workgroup#g" \
+           -e "s#|DESCRIPTION|#$description#g" \
+           -e "s#|INTERFACES|#$interfaces#g" \
+           -e "s#|CHARSET|#$charset#g" \
+           /etc/samba/smb.conf.template > /var/etc/smb.conf
+
        local homes
+       config_get_bool homes $1 homes 0
+       [ $homes -gt 0 ] && {
+               cat <<EOT >> /var/etc/smb.conf
 
-       config_get name $1 name
-       config_get workgroup $1 workgroup
-       config_get description $1 description
-       config_get homes $1 homes
-
-       [ -z "$name" ] && name=openwrt
-       [ -z "$workgroup" ] && workgroup=openwrt
-       [ -z "$description" ] && description=openwrt
-
-       cp /etc/samba/smb.conf.template /tmp/smb.conf
-       [ -L /etc/samba/smb.conf ] || ln -nsf /tmp/smb.conf /etc/samba/smb.conf
-       sed -i "s/|NAME|/$name/g" /tmp/smb.conf
-       sed -i "s/|WORKGROUP|/$workgroup/g" /tmp/smb.conf
-       sed -i "s/|DESCRIPTION|/$description/g" /tmp/smb.conf
-       [ "$homes" == "1" ] && {
-               echo -e "\n[homes]\n\tcomment = Home Directories\n\tbrowseable = no\n\tread only = no\n\tcreate mode = 0750" >> /tmp/smb.conf
+[homes]
+       comment     = Home Directories
+       browsable   = no
+       read only   = no
+       create mode = 0750
+EOT
        }
+
+       [ -L /etc/samba/smb.conf ] || ln -nsf /var/etc/smb.conf /etc/samba/smb.conf
 }
 
 smb_add_share() {
@@ -47,23 +82,21 @@ smb_add_share() {
 
        [ -z "$name" -o -z "$path" ] && return
 
-       echo -e "\n[$name]\n\tpath = $path" >> /tmp/smb.conf
-       [ -n "$users" ] && echo -e "\tvalid users = $users" >> /tmp/smb.conf
-       [ -n "$read_only" ] && echo -e "\tread only = $read_only" >> /tmp/smb.conf
-       [ -n "$guest_ok" ] && echo -e "\tguest ok = $guest_ok" >> /tmp/smb.conf
-       [ -n "$create_mask" ] && echo -e "\tcreate mask = $create_mask" >> /tmp/smb.conf
-       [ -n "$dir_mask" ] && echo -e "\tdirectory mask = $dir_mask" >> /tmp/smb.conf
+       echo -e "\n[$name]\n\tpath = $path" >> /var/etc/smb.conf
+       [ -n "$users" ] && echo -e "\tvalid users = $users" >> /var/etc/smb.conf
+       [ -n "$read_only" ] && echo -e "\tread only = $read_only" >> /var/etc/smb.conf
+       [ -n "$guest_ok" ] && echo -e "\tguest ok = $guest_ok" >> /var/etc/smb.conf
+       [ -n "$create_mask" ] && echo -e "\tcreate mask = $create_mask" >> /var/etc/smb.conf
+       [ -n "$dir_mask" ] && echo -e "\tdirectory mask = $dir_mask" >> /var/etc/smb.conf
 }
 
 start() {
        config_load samba
        config_foreach smb_header samba
        config_foreach smb_add_share sambashare
-       smbd -D
-       nmbd -D
+       service_start /usr/sbin/smbd -D
 }
 
 stop() {
-       killall smbd
-       killall nmbd
+       service_stop /usr/sbin/smbd
 }
index d3a28df..0780a73 100644 (file)
@@ -7,10 +7,11 @@
        passdb backend = smbpasswd
        obey pam restrictions = yes
        socket options = TCP_NODELAY
-       unix charset = ISO-8859-1
+       unix charset = |CHARSET|
        preferred master = yes
        os level = 20
        security = share
        guest account = nobody
        invalid users = root
        smb passwd file = /etc/samba/smbpasswd
+       interfaces = |INTERFACES|
index 2db6e61..165991e 100644 (file)
@@ -1,56 +1,11 @@
-diff -urN samba-3.0.24.orig/source/auth/auth_compat.c samba-3.0.24/source/auth/auth_compat.c
---- samba-3.0.24.orig/source/auth/auth_compat.c        2006-04-20 04:29:20.000000000 +0200
-+++ samba-3.0.24/source/auth/auth_compat.c     2007-07-17 13:19:05.000000000 +0200
-@@ -92,18 +92,25 @@
- check if a username/password pair is ok via the auth subsystem.
- return True if the password is correct, False otherwise
- ****************************************************************************/
-+
- BOOL password_ok(char *smb_name, DATA_BLOB password_blob)
- {
-+ 
-+      DATA_BLOB null_password = data_blob(NULL, 0);
-+      BOOL encrypted = (global_encrypted_passwords_negotiated && (password_blob.length == 24 || password_blob.length > 46));
-+      
-+      if (encrypted) {
-+              /* 
-+               * The password could be either NTLM or plain LM.  Try NTLM first, 
-+               * but fall-through as required.
-+               * Vista sends NTLMv2 here - we need to try the client given workgroup.
-+               */
-+              if (get_session_workgroup()) {
-+                      if (NT_STATUS_IS_OK(pass_check_smb(smb_name, get_session_workgroup(), null_password, password_blob, null_password, encrypted))) {
-+                              return True;
-+                      }
-+              }
--      DATA_BLOB null_password = data_blob(NULL, 0);
--      BOOL encrypted = (global_encrypted_passwords_negotiated && password_blob.length == 24);
--      
--      if (encrypted) {
--              /* 
--               * The password could be either NTLM or plain LM.  Try NTLM first, 
--               * but fall-through as required.
--               * NTLMv2 makes no sense here.
--               */
-               if (NT_STATUS_IS_OK(pass_check_smb(smb_name, lp_workgroup(), null_password, password_blob, null_password, encrypted))) {
-                       return True;
-               }
-@@ -119,5 +126,3 @@
-       return False;
- }
--
--
-diff -urN samba-3.0.24.orig/source/auth/auth_util.c samba-3.0.24/source/auth/auth_util.c
---- samba-3.0.24.orig/source/auth/auth_util.c  2007-02-04 19:59:14.000000000 +0100
-+++ samba-3.0.24/source/auth/auth_util.c       2007-07-17 13:19:05.000000000 +0200
-@@ -2043,18 +2043,20 @@
+--- a/source/auth/auth_util.c
++++ b/source/auth/auth_util.c
+@@ -2284,18 +2284,20 @@ BOOL is_trusted_domain(const char* dom_n
                /* The only other possible result is that winbind is not up
                   and running. We need to update the trustdom_cache
                   ourselves */
 -              
-+#ifndef AVM_SMALLER           
++#ifndef AVM_SMALLER
                update_trustdom_cache();
 +#endif
        }
@@ -68,4929 +23,534 @@ diff -urN samba-3.0.24.orig/source/auth/auth_util.c samba-3.0.24/source/auth/aut
        return False;
  }
  
-
-diff -urN samba-3.0.24.orig/source/bin/dummy samba-3.0.24/source/bin/dummy
---- samba-3.0.24.orig/source/bin/dummy 1970-01-01 01:00:00.000000000 +0100
-+++ samba-3.0.24/source/bin/dummy      2007-07-17 13:19:05.000000000 +0200
-@@ -0,0 +1 @@
-+x
-diff -urN samba-3.0.24.orig/source/.dmallocrc samba-3.0.24/source/.dmallocrc
---- samba-3.0.24.orig/source/.dmallocrc        2005-02-25 18:59:36.000000000 +0100
-+++ samba-3.0.24/source/.dmallocrc     1970-01-01 01:00:00.000000000 +0100
-@@ -1,2 +0,0 @@
--samba allow-free-null, log-stats, log-non-free, log-trans, \
--        check-fence, check-heap, check-lists, error-abort
-\ No newline at end of file
-diff -urN samba-3.0.24.orig/source/include/config.h samba-3.0.24/source/include/config.h
---- samba-3.0.24.orig/source/include/config.h  1970-01-01 01:00:00.000000000 +0100
-+++ samba-3.0.24/source/include/config.h       2008-01-28 10:18:38.000000000 +0100
-@@ -0,0 +1,2229 @@
-+/* include/config.h.  Generated by configure.  */
-+/* include/config.h.in.  Generated from configure.in by autoheader.  */
-+
-+/* Whether the host os is aix */
-+/* #undef AIX */
-+
-+/* Whether the AIX send_file() API is available */
-+/* #undef AIX_SENDFILE_API */
-+
-+/* Does extattr API work */
-+/* #undef BROKEN_EXTATTR */
-+
-+/* Does getgrnam work correctly */
-+/* #undef BROKEN_GETGRNAM */
-+
-+/* Whether the nisplus include files are broken */
-+#define BROKEN_NISPLUS_INCLUDE_FILES 1
-+
-+/* Broken RedHat 7.2 system header files */
-+/* #undef BROKEN_REDHAT_7_SYSTEM_HEADERS */
-+
-+/* Does strndup work correctly */
-+/* #undef BROKEN_STRNDUP */
-+
-+/* Does strnlen work correctly */
-+/* #undef BROKEN_STRNLEN */
-+
-+/* Does this system use unicode compose characters */
-+/* #undef BROKEN_UNICODE_COMPOSE_CHARACTERS */
-+
-+/* Whether the compiler supports the LL prefix on long long integers */
-+#define COMPILER_SUPPORTS_LL 1
-+
-+/* Whether the host os is Darwin/MacOSX */
-+/* #undef DARWINOS */
-+
-+/* Default display charset name */
-+#define DEFAULT_DISPLAY_CHARSET "ASCII"
-+
-+/* Default dos charset name */
-+#define DEFAULT_DOS_CHARSET "CP850"
-+
-+/* Default unix charset name */
-+#define DEFAULT_UNIX_CHARSET "UTF-8"
-+
-+/* Define to check invariants around some common functions */
-+/* #undef DMALLOC_FUNC_CHECK */
-+
-+/* Define to turn on dmalloc debugging */
-+/* #undef ENABLE_DMALLOC */
-+
-+/* Whether the host os is FreeBSD */
-+/* #undef FREEBSD */
-+
-+/* Whether the FreeBSD sendfile() API is available */
-+/* #undef FREEBSD_SENDFILE_API */
-+
-+/* Whether we are running on 64bit linux */
-+/* #undef HAVE_64BIT_LINUX */
-+
-+/* Whether acl_get_perm_np() is available */
-+/* #undef HAVE_ACL_GET_PERM_NP */
-+
-+/* Whether the krb5_address struct has a addrtype property */
-+/* #undef HAVE_ADDRTYPE_IN_KRB5_ADDRESS */
-+
-+/* Whether the krb5_address struct has a addr_type property */
-+/* #undef HAVE_ADDR_TYPE_IN_KRB5_ADDRESS */
-+
-+/* Define to 1 if you have the <afs/afs.h> header file. */
-+/* #undef HAVE_AFS_AFS_H */
-+
-+/* Define to 1 if you have the <afs.h> header file. */
-+/* #undef HAVE_AFS_H */
-+
-+/* Whether 64 bit aio is available */
-+/* #undef HAVE_AIOCB64 */
-+
-+/* Have aio_cancel */
-+/* #undef HAVE_AIO_CANCEL */
-+
-+/* Have aio_cancel64 */
-+/* #undef HAVE_AIO_CANCEL64 */
-+
-+/* Have aio_error */
-+/* #undef HAVE_AIO_ERROR */
-+
-+/* Have aio_error64 */
-+/* #undef HAVE_AIO_ERROR64 */
-+
-+/* Have aio_fsync */
-+/* #undef HAVE_AIO_FSYNC */
-+
-+/* Have aio_fsync64 */
-+/* #undef HAVE_AIO_FSYNC64 */
-+
-+/* Define to 1 if you have the <aio.h> header file. */
-+/* AR7 #define HAVE_AIO_H 1 */
-+
-+/* Have aio_read */
-+/* #undef HAVE_AIO_READ */
-+
-+/* Have aio_read64 */
-+/* #undef HAVE_AIO_READ64 */
-+
-+/* Have aio_return */
-+/* #undef HAVE_AIO_RETURN */
-+
-+/* Have aio_return64 */
-+/* #undef HAVE_AIO_RETURN64 */
-+
-+/* Have aio_suspend */
-+/* #undef HAVE_AIO_SUSPEND */
-+
-+/* Have aio_suspend64 */
-+/* #undef HAVE_AIO_SUSPEND64 */
-+
-+/* Have aio_write */
-+/* #undef HAVE_AIO_WRITE */
-+
-+/* Have aio_write64 */
-+/* #undef HAVE_AIO_WRITE64 */
-+
-+/* Whether AIX ACLs are available */
-+/* #undef HAVE_AIX_ACLS */
-+
-+/* Define to 1 if you have the <alloca.h> header file. */
-+#define HAVE_ALLOCA_H 1
-+
-+/* Whether the AP_OPTS_USE_SUBKEY ap option is available */
-+/* #undef HAVE_AP_OPTS_USE_SUBKEY */
-+
-+/* Define to 1 if you have the <arpa/inet.h> header file. */
-+#define HAVE_ARPA_INET_H 1
-+
-+/* check for <asm/types.h> */
-+#define HAVE_ASM_TYPES_H 1
-+
-+/* Define to 1 if you have the `asprintf' function. */
-+#define HAVE_ASPRINTF 1
-+
-+/* Whether asprintf() is available */
-+#define HAVE_ASPRINTF_DECL 1
-+
-+/* Define to 1 if you have the `atexit' function. */
-+#define HAVE_ATEXIT 1
-+
-+/* Define to 1 if you have the `attr_get' function. */
-+/* #undef HAVE_ATTR_GET */
-+
-+/* Define to 1 if you have the `attr_getf' function. */
-+/* #undef HAVE_ATTR_GETF */
-+
-+/* Define to 1 if you have the `attr_list' function. */
-+/* #undef HAVE_ATTR_LIST */
-+
-+/* Define to 1 if you have the `attr_listf' function. */
-+/* #undef HAVE_ATTR_LISTF */
-+
-+/* Define to 1 if you have the `attr_remove' function. */
-+/* #undef HAVE_ATTR_REMOVE */
-+
-+/* Define to 1 if you have the `attr_removef' function. */
-+/* #undef HAVE_ATTR_REMOVEF */
-+
-+/* Define to 1 if you have the `attr_set' function. */
-+/* #undef HAVE_ATTR_SET */
-+
-+/* Define to 1 if you have the `attr_setf' function. */
-+/* #undef HAVE_ATTR_SETF */
-+
-+/* Define to 1 if you have the <attr/xattr.h> header file. */
-+/* #undef HAVE_ATTR_XATTR_H */
-+
-+/* Define to 1 if you have the `backtrace_symbols' function. */
-+/* AR7 #define HAVE_BACKTRACE_SYMBOLS 1 */
-+
-+/* Define to 1 if you have the `ber_scanf' function. */
-+/* #undef HAVE_BER_SCANF */
-+
-+/* What header to include for iconv() function: biconv.h */
-+/* #undef HAVE_BICONV */
-+
-+/* Define to 1 if you have the `bigcrypt' function. */
-+/* #undef HAVE_BIGCRYPT */
-+
-+/* Whether fcntl64 locks are broken */
-+/* #undef HAVE_BROKEN_FCNTL64_LOCKS */
-+
-+/* Whether getgroups is broken */
-+/* #undef HAVE_BROKEN_GETGROUPS */
-+
-+/* Whether readdir() is broken */
-+/* #undef HAVE_BROKEN_READDIR */
-+
-+/* Whether there is a C99 compliant vsnprintf */
-+#define HAVE_C99_VSNPRINTF 1
-+
-+/* Define to 1 if you have the <CFStringEncodingConverter.h> header file. */
-+/* #undef HAVE_CFSTRINGENCODINGCONVERTER_H */
-+
-+/* Define to 1 if you have the `chmod' function. */
-+#define HAVE_CHMOD 1
-+
-+/* Define to 1 if you have the `chown' function. */
-+#define HAVE_CHOWN 1
-+
-+/* Define to 1 if you have the `chroot' function. */
-+#define HAVE_CHROOT 1
-+
-+/* Define to 1 if you have the `chsize' function. */
-+/* #undef HAVE_CHSIZE */
-+
-+/* Define to 1 if you have the `closedir64' function. */
-+/* #undef HAVE_CLOSEDIR64 */
-+
-+/* Whether the compiler will optimize out function calls */
-+#define HAVE_COMPILER_WILL_OPTIMIZE_OUT_FNS 1
-+
-+/* Define to 1 if you have the <com_err.h> header file. */
-+/* #undef HAVE_COM_ERR_H */
-+
-+/* Whether the system has connect() */
-+#define HAVE_CONNECT 1
-+
-+/* Define to 1 if you have the `copy_Authenticator' function. */
-+/* #undef HAVE_COPY_AUTHENTICATOR */
-+
-+/* Define to 1 if you have the <CoreFoundation/CFStringEncodingConverter.h>
-+   header file. */
-+/* #undef HAVE_COREFOUNDATION_CFSTRINGENCODINGCONVERTER_H */
-+
-+/* Define to 1 if you have the `creat64' function. */
-+/* AR7 #define HAVE_CREAT64 1 */
-+
-+/* Whether the system has the crypt() function */
-+#define HAVE_CRYPT 1
-+
-+/* Define to 1 if you have the `crypt16' function. */
-+/* #undef HAVE_CRYPT16 */
-+
-+/* Define to 1 if you have the <ctype.h> header file. */
-+#define HAVE_CTYPE_H 1
-+
-+/* Whether we have CUPS */
-+/* #undef HAVE_CUPS */
-+
-+/* Define to 1 if you have the `des_set_key' function. */
-+/* #undef HAVE_DES_SET_KEY */
-+
-+/* Whether the 'dev64_t' type is available */
-+/* #undef HAVE_DEV64_T */
-+
-+/* Whether the major macro for dev_t is available */
-+#define HAVE_DEVICE_MAJOR_FN 1
-+
-+/* Whether the minor macro for dev_t is available */
-+#define HAVE_DEVICE_MINOR_FN 1
-+
-+/* Define to 1 if you have the `devnm' function. */
-+/* #undef HAVE_DEVNM */
-+
-+/* Define to 1 if you have the <devnm.h> header file. */
-+/* #undef HAVE_DEVNM_H */
-+
-+/* Whether dirent has a d_off member */
-+#define HAVE_DIRENT_D_OFF 1
-+
-+/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
-+   */
-+#define HAVE_DIRENT_H 1
-+
-+/* Define to 1 if you have the `dlclose' function. */
-+#define HAVE_DLCLOSE 1
-+
-+/* Define to 1 if you have the `dlerror' function. */
-+#define HAVE_DLERROR 1
-+
-+/* Define to 1 if you have the <dlfcn.h> header file. */
-+#define HAVE_DLFCN_H 1
-+
-+/* Define to 1 if you have the `dlopen' function. */
-+#define HAVE_DLOPEN 1
-+
-+/* Define to 1 if you have the `dlsym' function. */
-+#define HAVE_DLSYM 1
-+
-+/* Define to 1 if you have the `dlsym_prepend_underscore' function. */
-+/* #undef HAVE_DLSYM_PREPEND_UNDERSCORE */
-+
-+/* struct dqblk .dqb_fsoftlimit */
-+/* #undef HAVE_DQB_FSOFTLIMIT */
-+
-+/* Define to 1 if you have the `dup2' function. */
-+#define HAVE_DUP2 1
-+
-+/* Whether the ENCTYPE_ARCFOUR_HMAC_MD5 key type is available */
-+/* #undef HAVE_ENCTYPE_ARCFOUR_HMAC_MD5 */
-+
-+/* Define to 1 if you have the `endmntent' function. */
-+#define HAVE_ENDMNTENT 1
-+
-+/* Define to 1 if you have the `endnetgrent' function. */
-+/* AR7 #define HAVE_ENDNETGRENT 1 */
-+
-+/* Whether errno() is available */
-+#define HAVE_ERRNO_DECL 1
-+
-+/* Define to 1 if you have the <execinfo.h> header file. */
-+/* AR7 #define HAVE_EXECINFO_H 1 */
-+
-+
-+/* Define to 1 if you have the `execl' function. */
-+#define HAVE_EXECL 1
-+
-+/* Whether large file support can be enabled */
-+/* AR7 #define HAVE_EXPLICIT_LARGEFILE_SUPPORT 1 */
-+
-+/* Define to 1 if you have the `extattr_delete_fd' function. */
-+/* #undef HAVE_EXTATTR_DELETE_FD */
-+
-+/* Define to 1 if you have the `extattr_delete_file' function. */
-+/* #undef HAVE_EXTATTR_DELETE_FILE */
-+
-+/* Define to 1 if you have the `extattr_delete_link' function. */
-+/* #undef HAVE_EXTATTR_DELETE_LINK */
-+
-+/* Define to 1 if you have the `extattr_get_fd' function. */
-+/* #undef HAVE_EXTATTR_GET_FD */
-+
-+/* Define to 1 if you have the `extattr_get_file' function. */
-+/* #undef HAVE_EXTATTR_GET_FILE */
-+
-+/* Define to 1 if you have the `extattr_get_link' function. */
-+/* #undef HAVE_EXTATTR_GET_LINK */
-+
-+/* Define to 1 if you have the `extattr_list_fd' function. */
-+/* #undef HAVE_EXTATTR_LIST_FD */
-+
-+/* Define to 1 if you have the `extattr_list_file' function. */
-+/* #undef HAVE_EXTATTR_LIST_FILE */
-+
-+/* Define to 1 if you have the `extattr_list_link' function. */
-+/* #undef HAVE_EXTATTR_LIST_LINK */
-+
-+/* Define to 1 if you have the `extattr_set_fd' function. */
-+/* #undef HAVE_EXTATTR_SET_FD */
-+
-+/* Define to 1 if you have the `extattr_set_file' function. */
-+/* #undef HAVE_EXTATTR_SET_FILE */
-+
-+/* Define to 1 if you have the `extattr_set_link' function. */
-+/* #undef HAVE_EXTATTR_SET_LINK */
-+
-+/* Define to 1 if you have the `fchmod' function. */
-+#define HAVE_FCHMOD 1
-+
-+/* Define to 1 if you have the `fchown' function. */
-+#define HAVE_FCHOWN 1
-+
-+/* Define to 1 if you have the <fcntl.h> header file. */
-+#define HAVE_FCNTL_H 1
-+
-+/* Whether fcntl locking is available */
-+#define HAVE_FCNTL_LOCK 1
-+
-+/* Define to 1 if you have the `fcvt' function. */
-+#define HAVE_FCVT 1
-+
-+/* Define to 1 if you have the `fcvtl' function. */
-+/* #undef HAVE_FCVTL */
-+
-+/* Define to 1 if you have the `fgetxattr' function. */
-+/* AR7 #define HAVE_FGETXATTR 1 */
-+
-+/* Define to 1 if you have the `flistxattr' function. */
-+/* AR7 #define HAVE_FLISTXATTR 1 */
-+
-+/* Define to 1 if you have the `fopen64' function. */
-+/* AR7 #define HAVE_FOPEN64 1 */
-+
-+/* Define to 1 if you have the `fremovexattr' function. */
-+/* AR7 #define HAVE_FREMOVEXATTR 1 */
-+
-+/* Define to 1 if you have the `fseek64' function. */
-+/* #undef HAVE_FSEEK64 */
-+
-+/* Define to 1 if you have the `fseeko64' function. */
-+/* #define HAVE_FSEEKO64 1 */
-+
-+/* Define to 1 if you have the `fsetxattr' function. */
-+/* AR7 #define HAVE_FSETXATTR 1 */
-+
-+/* Define to 1 if you have the `fstat' function. */
-+#define HAVE_FSTAT 1
-+
-+/* Whether fstat64() is available */
-+/* AR7 #define HAVE_FSTAT64 1 */
-+
-+/* Define to 1 if you have the `fsync' function. */
-+#define HAVE_FSYNC 1
-+
-+/* Define to 1 if you have the `ftell64' function. */
-+/* #undef HAVE_FTELL64 */
-+
-+/* Define to 1 if you have the `ftello64' function. */
-+/* AR7 #define HAVE_FTELLO64 1 */
-+
-+/* Define to 1 if you have the `ftruncate' function. */
-+#define HAVE_FTRUNCATE 1
-+
-+/* Define to 1 if you have the `ftruncate64' function. */
-+/* AR7 #define HAVE_FTRUNCATE64 1 */
-+
-+/* Truncate extend */
-+#define HAVE_FTRUNCATE_EXTEND 1
-+
-+/* Whether there is a __FUNCTION__ macro */
-+#define HAVE_FUNCTION_MACRO 1
-+
-+/* Define to 1 if you have the `getauthuid' function. */
-+/* #undef HAVE_GETAUTHUID */
-+
-+/* Define to 1 if you have the `getcwd' function. */
-+#define HAVE_GETCWD 1
-+
-+/* Define to 1 if you have the `getdents' function. */
-+/* #undef HAVE_GETDENTS */
-+
-+/* Define to 1 if you have the `getdirentries' function. */
-+#define HAVE_GETDIRENTRIES 1
-+
-+/* Define to 1 if you have the `getgrent' function. */
-+#define HAVE_GETGRENT 1
-+
-+/* Define to 1 if you have the `getgrnam' function. */
-+#define HAVE_GETGRNAM 1
+--- a/source/include/local.h
++++ b/source/include/local.h
+@@ -49,7 +49,8 @@
+ #define MAX_DIRECTORY_HANDLES 2048
+ /* maximum number of file caches per smbd */
+-#define MAX_WRITE_CACHES 10
++/* #define MAX_WRITE_CACHES 10 */
++#define MAX_WRITE_CACHES 2 /* AVM */
+ /* define what facility to use for syslog */
+ #ifndef SYSLOG_FACILITY
+--- a/source/lib/iconv.c
++++ b/source/lib/iconv.c
+@@ -385,7 +385,10 @@ static size_t latin1_push(void *cd, cons
+       while (*inbytesleft >= 2 && *outbytesleft >= 1) {
+               (*outbuf)[0] = (*inbuf)[0];
+-              if ((*inbuf)[1]) ir_count++;
++              if ((*inbuf)[1]) {
++                      ir_count++;
++                      (*outbuf)[0] = '_'; // AVM
++              }
+               (*inbytesleft)  -= 2;
+               (*outbytesleft) -= 1;
+               (*inbuf)  += 2;
+--- a/source/lib/pidfile.c
++++ b/source/lib/pidfile.c
+@@ -87,6 +87,7 @@ void pidfile_create(const char *program_
+       pstring pidFile;
+       pid_t pid;
++#if 0 /* AVM */
+       /* Add a suffix to the program name if this is a process with a
+        * none default configuration file name. */
+       if (strcmp( CONFIGFILE, dyn_CONFIGFILE) == 0) {
+@@ -103,6 +104,9 @@ void pidfile_create(const char *program_
+               slprintf( name, sizeof( name)-1, "%s-%s", program_name,
+                         short_configfile );
+       }
++#else
++      strncpy( name, program_name, sizeof( name)-1);
++#endif
+       slprintf(pidFile, sizeof(pidFile)-1, "%s/%s.pid", lp_piddir(), name);
+--- a/source/lib/system.c
++++ b/source/lib/system.c
+@@ -1499,7 +1499,11 @@ int sys_pclose(int fd)
+ void *sys_dlopen(const char *name, int flags)
+ {
+ #if defined(HAVE_DLOPEN)
++#if 1 /* FRITZBOX */
++      return NULL;
++#else
+       return dlopen(name, flags);
++#endif
+ #else
+       return NULL;
+ #endif
+--- a/source/lib/util.c
++++ b/source/lib/util.c
+@@ -301,7 +301,11 @@ const char *tmpdir(void)
+       char *p;
+       if ((p = getenv("TMPDIR")))
+               return p;
++#if 0 /* AVM */
++      return "/var/tmp";
++#else
+       return "/tmp";
++#endif
+ }
+ /****************************************************************************
+--- a/source/libsmb/clifile.c
++++ b/source/libsmb/clifile.c
+@@ -21,6 +21,8 @@
+ #include "includes.h"
++#ifndef AVM_SMALLER
 +
-+/* Define to 1 if you have the `getgrouplist' function. */
-+/* #undef HAVE_GETGROUPLIST */
+ /****************************************************************************
+  Hard/Symlink a file (UNIX extensions).
+  Creates new name (sym)linked to oldname.
+@@ -71,6 +73,9 @@ static BOOL cli_link_internal(struct cli
+       return True;
+ }
++#endif /* AVM_SMALLER */
 +
-+/* Define to 1 if you have the `getmntent' function. */
-+#define HAVE_GETMNTENT 1
 +
-+/* Define to 1 if you have the `getnetgrent' function. */
-+#define HAVE_GETNETGRENT 1
+ /****************************************************************************
+  Map standard UNIX permissions onto wire representations.
+ ****************************************************************************/
+@@ -165,6 +170,9 @@ static mode_t unix_filetype_from_wire(ui
+       }
+ }
 +
-+/* Define to 1 if you have the `getprpwnam' function. */
-+/* #undef HAVE_GETPRPWNAM */
++#ifndef AVM_SMALLER
 +
-+/* Define to 1 if you have the `getpwanam' function. */
-+/* #undef HAVE_GETPWANAM */
+ /****************************************************************************
+  Do a POSIX getfacl (UNIX extensions).
+ ****************************************************************************/
+@@ -647,6 +655,7 @@ int cli_nt_delete_on_close(struct cli_st
+       return True;
+ }
++#endif /* AVM_SMALLER */
+ /****************************************************************************
+  Open a file - exposing the full horror of the NT API :-).
+@@ -718,6 +727,7 @@ int cli_nt_create(struct cli_state *cli,
+                               FILE_SHARE_READ|FILE_SHARE_WRITE, FILE_OPEN, 0x0, 0x0);
+ }
++#ifndef AVM_SMALLER
+ /****************************************************************************
+  Open a file
+  WARNING: if you open with O_WRONLY then getattrE won't work!
+@@ -796,6 +806,7 @@ int cli_open(struct cli_state *cli, cons
+       return SVAL(cli->inbuf,smb_vwv2);
+ }
++#endif /* AVM_SMALLER */
+ /****************************************************************************
+  Close a file.
+@@ -823,6 +834,7 @@ BOOL cli_close(struct cli_state *cli, in
+       return !cli_is_error(cli);
+ }
++#ifndef AVM_SMALLER
+ /****************************************************************************
+  send a lock with a specified locktype 
+@@ -1972,3 +1984,6 @@ int cli_posix_rmdir(struct cli_state *cl
+ {
+       return cli_posix_unlink_internal(cli, fname, True);
+ }
 +
-+/* Define to 1 if you have the `getrlimit' function. */
-+#define HAVE_GETRLIMIT 1
++#endif /* AVM_SMALLER */
 +
-+/* Define to 1 if you have the `getspnam' function. */
-+#define HAVE_GETSPNAM 1
-+
-+/* Whether gettimeofday() is available */
-+#define HAVE_GETTIMEOFDAY_TZ 1
-+
-+/* Define to 1 if you have the `getutmpx' function. */
-+#define HAVE_GETUTMPX 1
-+
-+/* Define to 1 if you have the `getxattr' function. */
-+/* AR7 #define HAVE_GETXATTR 1 */
-+
-+/* What header to include for iconv() function: giconv.h */
-+/* #undef HAVE_GICONV */
-+
-+/* Define to 1 if you have the `glob' function. */
-+#define HAVE_GLOB 1
-+
-+/* Define to 1 if you have the <glob.h> header file. */
-+#define HAVE_GLOB_H 1
-+
-+/* Define to 1 if you have the `grantpt' function. */
-+#define HAVE_GRANTPT 1
-+
-+/* Define to 1 if you have the <grp.h> header file. */
-+#define HAVE_GRP_H 1
-+
-+/* Whether GSSAPI is available */
-+/* #undef HAVE_GSSAPI */
-+
-+/* Define to 1 if you have the <gssapi/gssapi_generic.h> header file. */
-+/* #undef HAVE_GSSAPI_GSSAPI_GENERIC_H */
-+
-+/* Define to 1 if you have the <gssapi/gssapi.h> header file. */
-+/* #undef HAVE_GSSAPI_GSSAPI_H */
-+
-+/* Define to 1 if you have the <gssapi.h> header file. */
-+/* #undef HAVE_GSSAPI_H */
-+
-+/* Define to 1 if you have the `gss_display_status' function. */
-+/* #undef HAVE_GSS_DISPLAY_STATUS */
-+
-+/* Define to 1 if you have the <history.h> header file. */
-+/* #undef HAVE_HISTORY_H */
-+
-+/* Whether HPUX ACLs are available */
-+/* #undef HAVE_HPUX_ACLS */
-+
-+/* What header to include for iconv() function: iconv.h */
-+/* AR7 #define HAVE_ICONV 1 */
-+
-+/* Whether iface AIX is available */
-+/* #undef HAVE_IFACE_AIX */
-+
-+/* Whether iface ifconf is available */
-+#define HAVE_IFACE_IFCONF 1
-+
-+/* Whether iface ifreq is available */
-+/* #undef HAVE_IFACE_IFREQ */
-+
-+/* Whether the compiler supports immediate structures */
-+#define HAVE_IMMEDIATE_STRUCTURES 1
-+
-+/* Define to 1 if you have the `initgroups' function. */
-+#define HAVE_INITGROUPS 1
-+
-+/* Define to 1 if you have the `innetgr' function. */
-+/* AR7 #define HAVE_INNETGR 1 */
-+
-+/* Whether the 'ino64_t' type is available */
-+/* #undef HAVE_INO64_T */
-+
-+/* Whether int16 typedef is included by rpc/rpc.h */
-+/* #undef HAVE_INT16_FROM_RPC_RPC_H */
-+
-+/* Whether int32 typedef is included by rpc/rpc.h */
-+/* #undef HAVE_INT32_FROM_RPC_RPC_H */
-+
-+/* Define to 1 if you have the <inttypes.h> header file. */
-+#define HAVE_INTTYPES_H 1
-+
-+/* Whether IRIX ACLs are available */
-+/* #undef HAVE_IRIX_ACLS */
-+
-+/* Whether IRIX specific capabilities are available */
-+/* #undef HAVE_IRIX_SPECIFIC_CAPABILITIES */
-+
-+/* Whether kernel notifies changes */
-+#define HAVE_KERNEL_CHANGE_NOTIFY 1
-+
-+/* Whether IRIX kernel oplock type definitions are available */
-+/* #undef HAVE_KERNEL_OPLOCKS_IRIX */
-+
-+/* Whether to use linux kernel oplocks */
-+#define HAVE_KERNEL_OPLOCKS_LINUX 1
-+
-+/* Whether the kernel supports share modes */
-+#define HAVE_KERNEL_SHARE_MODES 1
-+
-+/* Whether to have KRB5 support */
-+/* #undef HAVE_KRB5 */
-+
-+/* Define to 1 if you have the `krb5_auth_con_setkey' function. */
-+/* #undef HAVE_KRB5_AUTH_CON_SETKEY */
-+
-+/* Define to 1 if you have the `krb5_auth_con_setuseruserkey' function. */
-+/* #undef HAVE_KRB5_AUTH_CON_SETUSERUSERKEY */
-+
-+/* Define to 1 if you have the `krb5_c_enctype_compare' function. */
-+/* #undef HAVE_KRB5_C_ENCTYPE_COMPARE */
-+
-+/* Whether the type krb5_encrypt_block exists */
-+/* #undef HAVE_KRB5_ENCRYPT_BLOCK */
-+
-+/* Define to 1 if you have the `krb5_encrypt_data' function. */
-+/* #undef HAVE_KRB5_ENCRYPT_DATA */
-+
-+/* Define to 1 if you have the `krb5_enctypes_compatible_keys' function. */
-+/* #undef HAVE_KRB5_ENCTYPES_COMPATIBLE_KEYS */
-+
-+/* Define to 1 if you have the `krb5_free_data_contents' function. */
-+/* #undef HAVE_KRB5_FREE_DATA_CONTENTS */
-+
-+/* Define to 1 if you have the `krb5_free_keytab_entry_contents' function. */
-+/* #undef HAVE_KRB5_FREE_KEYTAB_ENTRY_CONTENTS */
-+
-+/* Define to 1 if you have the `krb5_free_ktypes' function. */
-+/* #undef HAVE_KRB5_FREE_KTYPES */
-+
-+/* Define to 1 if you have the `krb5_free_unparsed_name' function. */
-+/* #undef HAVE_KRB5_FREE_UNPARSED_NAME */
-+
-+/* Define to 1 if you have the `krb5_get_default_in_tkt_etypes' function. */
-+/* #undef HAVE_KRB5_GET_DEFAULT_IN_TKT_ETYPES */
-+
-+/* Define to 1 if you have the `krb5_get_permitted_enctypes' function. */
-+/* #undef HAVE_KRB5_GET_PERMITTED_ENCTYPES */
-+
-+/* Define to 1 if you have the `krb5_get_pw_salt' function. */
-+/* #undef HAVE_KRB5_GET_PW_SALT */
-+
-+/* Define to 1 if you have the <krb5.h> header file. */
-+/* #undef HAVE_KRB5_H */
-+
-+/* Whether the krb5_creds struct has a keyblock property */
-+/* #undef HAVE_KRB5_KEYBLOCK_IN_CREDS */
-+
-+/* Whether the krb5_keyblock struct has a keyvalue property */
-+/* #undef HAVE_KRB5_KEYBLOCK_KEYVALUE */
-+
-+/* Whether krb5_keytab_entry has key member */
-+/* #undef HAVE_KRB5_KEYTAB_ENTRY_KEY */
-+
-+/* Whether krb5_keytab_entry has keyblock member */
-+/* #undef HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK */
-+
-+/* Define to 1 if you have the `krb5_krbhst_get_addrinfo' function. */
-+/* #undef HAVE_KRB5_KRBHST_GET_ADDRINFO */
-+
-+/* Define to 1 if you have the `krb5_kt_compare' function. */
-+/* #undef HAVE_KRB5_KT_COMPARE */
-+
-+/* Define to 1 if you have the `krb5_kt_free_entry' function. */
-+/* #undef HAVE_KRB5_KT_FREE_ENTRY */
-+
-+/* Define to 1 if you have the `krb5_locate_kdc' function. */
-+/* #undef HAVE_KRB5_LOCATE_KDC */
-+
-+/* Define to 1 if you have the `krb5_mk_req_extended' function. */
-+/* #undef HAVE_KRB5_MK_REQ_EXTENDED */
-+
-+/* Define to 1 if you have the `krb5_principal2salt' function. */
-+/* #undef HAVE_KRB5_PRINCIPAL2SALT */
-+
-+/* Define to 1 if you have the `krb5_principal_get_comp_string' function. */
-+/* #undef HAVE_KRB5_PRINCIPAL_GET_COMP_STRING */
-+
-+/* Whether krb5_princ_component is available */
-+/* #undef HAVE_KRB5_PRINC_COMPONENT */
-+
-+/* Whether the krb5_creds struct has a session property */
-+/* #undef HAVE_KRB5_SESSION_IN_CREDS */
-+
-+/* Define to 1 if you have the `krb5_set_default_in_tkt_etypes' function. */
-+/* #undef HAVE_KRB5_SET_DEFAULT_IN_TKT_ETYPES */
-+
-+/* Define to 1 if you have the `krb5_set_default_tgs_ktypes' function. */
-+/* #undef HAVE_KRB5_SET_DEFAULT_TGS_KTYPES */
-+
-+/* Define to 1 if you have the `krb5_set_real_time' function. */
-+/* #undef HAVE_KRB5_SET_REAL_TIME */
-+
-+/* Define to 1 if you have the `krb5_string_to_key' function. */
-+/* #undef HAVE_KRB5_STRING_TO_KEY */
-+
-+/* Define to 1 if you have the `krb5_string_to_key_salt' function. */
-+/* #undef HAVE_KRB5_STRING_TO_KEY_SALT */
-+
-+/* Whether the krb5_ticket struct has a enc_part2 property */
-+/* #undef HAVE_KRB5_TKT_ENC_PART2 */
-+
-+/* Define to 1 if you have the `krb5_use_enctype' function. */
-+/* #undef HAVE_KRB5_USE_ENCTYPE */
-+
-+/* Whether the KV5M_KEYTAB option is available */
-+/* #undef HAVE_KV5M_KEYTAB */
-+
-+/* Define to 1 if you have the <langinfo.h> header file. */
-+#define HAVE_LANGINFO_H 1
-+
-+/* Define to 1 if you have the <lastlog.h> header file. */
-+#define HAVE_LASTLOG_H 1
-+
-+/* Define to 1 if you have the <lber.h> header file. */
-+/* #undef HAVE_LBER_H */
-+
-+/* Whether ldap is available */
-+/* #undef HAVE_LDAP */
-+
-+/* Define to 1 if you have the `ldap_domain2hostlist' function. */
-+/* #undef HAVE_LDAP_DOMAIN2HOSTLIST */
-+
-+/* Define to 1 if you have the <ldap.h> header file. */
-+/* #undef HAVE_LDAP_H */
-+
-+/* Define to 1 if you have the `ldap_init' function. */
-+/* #undef HAVE_LDAP_INIT */
-+
-+/* Define to 1 if you have the `ldap_initialize' function. */
-+/* #undef HAVE_LDAP_INITIALIZE */
-+
-+/* Define to 1 if you have the `ldap_set_rebind_proc' function. */
-+/* #undef HAVE_LDAP_SET_REBIND_PROC */
-+
-+/* Define to 1 if you have the `lgetxattr' function. */
-+/* AR7 #define HAVE_LGETXATTR 1 */
-+
-+/* Define to 1 if you have the `asn1' library (-lasn1). */
-+/* #undef HAVE_LIBASN1 */
-+
-+/* Define to 1 if you have the `com_err' library (-lcom_err). */
-+/* #undef HAVE_LIBCOM_ERR */
-+
-+/* Define to 1 if you have the `crypto' library (-lcrypto). */
-+/* #undef HAVE_LIBCRYPTO */
-+
-+/* Define to 1 if you have the `dl' library (-ldl). */
-+/* #undef HAVE_LIBDL */
-+
-+/* Define to 1 if you have the `exc' library (-lexc). */
-+/* #undef HAVE_LIBEXC */
-+
-+/* Define to 1 if you have the <libexc.h> header file. */
-+/* #undef HAVE_LIBEXC_H */
-+
-+/* Define to 1 if you have the `gen' library (-lgen). */
-+/* #undef HAVE_LIBGEN */
-+
-+/* Define to 1 if you have the `gssapi' library (-lgssapi). */
-+/* #undef HAVE_LIBGSSAPI */
-+
-+/* Define to 1 if you have the `gssapi_krb5' library (-lgssapi_krb5). */
-+/* #undef HAVE_LIBGSSAPI_KRB5 */
-+
-+/* Define to 1 if you have the `inet' library (-linet). */
-+/* #undef HAVE_LIBINET */
-+
-+/* Define to 1 if you have the `k5crypto' library (-lk5crypto). */
-+/* #undef HAVE_LIBK5CRYPTO */
-+
-+/* Define to 1 if you have the `krb5' library (-lkrb5). */
-+/* #undef HAVE_LIBKRB5 */
-+
-+/* Define to 1 if you have the `lber' library (-llber). */
-+/* #undef HAVE_LIBLBER */
-+
-+/* Define to 1 if you have the `ldap' library (-lldap). */
-+/* #undef HAVE_LIBLDAP */
-+
-+/* Define to 1 if you have the `nsl' library (-lnsl). */
-+/* #undef HAVE_LIBNSL */
-+
-+/* Define to 1 if you have the `nsl_s' library (-lnsl_s). */
-+/* #undef HAVE_LIBNSL_S */
-+
-+/* Whether libpam is available */
-+#define HAVE_LIBPAM 1
-+
-+/* Whether the system has readline */
-+/* AR7 #define HAVE_LIBREADLINE 1 */
-+
-+/* Define to 1 if you have the `resolv' library (-lresolv). */
-+#define HAVE_LIBRESOLV 1
-+
-+/* Define to 1 if you have the `roken' library (-lroken). */
-+/* #undef HAVE_LIBROKEN */
-+
-+/* Define to 1 if you have the `sec' library (-lsec). */
-+/* #undef HAVE_LIBSEC */
-+
-+/* Define to 1 if you have the `security' library (-lsecurity). */
-+/* #undef HAVE_LIBSECURITY */
-+
-+/* Define to 1 if you have the `sendfile' library (-lsendfile). */
-+/* #undef HAVE_LIBSENDFILE */
-+
-+/* Define to 1 if you have the `socket' library (-lsocket). */
-+/* #undef HAVE_LIBSOCKET */
-+
-+/* Define to 1 if you have the <limits.h> header file. */
-+#define HAVE_LIMITS_H 1
-+
-+/* Define to 1 if you have the `link' function. */
-+#define HAVE_LINK 1
-+
-+/* Whether Linux xfs quota support is available */
-+/* AR7 #define HAVE_LINUX_XFS_QUOTAS 1 */
-+
-+/* Define to 1 if you have the `listxattr' function. */
-+/* AR7 #define HAVE_LISTXATTR 1 */
-+
-+/* Define to 1 if you have the `llistxattr' function. */
-+/* AR7 #define HAVE_LLISTXATTR 1 */
-+
-+/* Define to 1 if you have the `llseek' function. */
-+#define HAVE_LLSEEK 1
-+
-+/* Define to 1 if you have the <locale.h> header file. */
-+#define HAVE_LOCALE_H 1
-+
-+/* Whether the host supports long long's */
-+#define HAVE_LONGLONG 1
-+
-+/* Define to 1 if you have the `lremovexattr' function. */
-+/* AR7 #define HAVE_LREMOVEXATTR 1 */
-+
-+/* Define to 1 if you have the `lseek64' function. */
-+/* AR7 #define HAVE_LSEEK64 1 */
-+
-+/* Define to 1 if you have the `lsetxattr' function. */
-+/* AR7 #define HAVE_LSETXATTR 1 */
-+
-+/* Define to 1 if you have the `lstat64' function. */
-+/* AR7 #define HAVE_LSTAT64 1 */
-+
-+/* Whether the macro for makedev is available */
-+#define HAVE_MAKEDEV 1
-+
-+/* Define to 1 if you have the `memmove' function. */
-+#define HAVE_MEMMOVE 1
-+
-+/* Define to 1 if you have the <memory.h> header file. */
-+#define HAVE_MEMORY_H 1
-+
-+/* Whether memset() is available */
-+#define HAVE_MEMSET 1
-+
-+/* Define to 1 if you have the `mknod' function. */
-+#define HAVE_MKNOD 1
-+
-+/* Define to 1 if you have the `mknod64' function. */
-+/* #undef HAVE_MKNOD64 */
-+
-+/* Define to 1 if you have the `mktime' function. */
-+#define HAVE_MKTIME 1
-+
-+/* Whether mmap works */
-+#define HAVE_MMAP 1
-+
-+/* Define to 1 if you have the <mntent.h> header file. */
-+#define HAVE_MNTENT_H 1
-+
-+/* Define to 1 if you have the `nanosleep' function. */
-+#define HAVE_NANOSLEEP 1
-+
-+/* Whether to use native iconv */
-+/* AR7 #define HAVE_NATIVE_ICONV 1 */
-+
-+/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
-+/* #undef HAVE_NDIR_H */
-+
-+/* Define to 1 if you have the <netinet/in_ip.h> header file. */
-+/* #undef HAVE_NETINET_IN_IP_H */
-+
-+/* Define to 1 if you have the <netinet/in_systm.h> header file. */
-+#define HAVE_NETINET_IN_SYSTM_H 1
-+
-+/* Define to 1 if you have the <netinet/ip.h> header file. */
-+#define HAVE_NETINET_IP_H 1
-+
-+/* Define to 1 if you have the <netinet/tcp.h> header file. */
-+#define HAVE_NETINET_TCP_H 1
-+
-+/* Define to 1 if you have the <net/if.h> header file. */
-+#define HAVE_NET_IF_H 1
-+
-+/* Do we have rl_completion_matches? */
-+/* AR7 #define HAVE_NEW_LIBREADLINE 1 */
-+
-+/* Define to 1 if you have the `nl_langinfo' function. */
-+#define HAVE_NL_LANGINFO 1
-+
-+/* Whether no ACLs support is available */
-+#define HAVE_NO_ACLS 1
-+
-+/* Whether no asynchronous io support is available */
-+#define HAVE_NO_AIO 1
-+
-+/* Define to 1 if you have the <nsswitch.h> header file. */
-+/* #undef HAVE_NSSWITCH_H */
-+
-+/* Define to 1 if you have the <nss_common.h> header file. */
-+/* #undef HAVE_NSS_COMMON_H */
-+
-+/* Define to 1 if you have the <nss.h> header file. */
-+/* AR7 #define HAVE_NSS_H 1 */
-+
-+/* Define to 1 if you have the <ns_api.h> header file. */
-+/* #undef HAVE_NS_API_H */
-+
-+/* Whether off64_t is available */
-+/* #undef HAVE_OFF64_T */
-+
-+/* Define to 1 if you have the `open64' function. */
-+/* AR7 #define HAVE_OPEN64 1 */
-+
-+/* Define to 1 if you have the `opendir64' function. */
-+/* #undef HAVE_OPENDIR64 */
-+
-+/* Defined if struct passwd has pw_age field */
-+/* #undef HAVE_PASSWD_PW_AGE */
-+
-+/* Defined if struct passwd has pw_comment field */
-+/* #undef HAVE_PASSWD_PW_COMMENT */
-+
-+/* Define to 1 if you have the `pathconf' function. */
-+#define HAVE_PATHCONF 1
-+
-+/* Define to 1 if you have the `pipe' function. */
-+#define HAVE_PIPE 1
-+
-+/* Define to 1 if you have the `poll' function. */
-+#define HAVE_POLL 1
-+
-+/* Define to 1 if you have the <poll.h> header file. */
-+#define HAVE_POLL_H 1
-+
-+/* Whether POSIX ACLs are available */
-+/* #undef HAVE_POSIX_ACLS */
-+
-+/* Whether prctl is available */
-+#define HAVE_PRCTL 1
-+
-+/* Define to 1 if you have the `pread' function. */
-+#define HAVE_PREAD 1
-+
-+/* Define to 1 if you have the `pread64' function. */
-+/* AR7 #define HAVE_PREAD64 1 */
-+
-+/* Define to 1 if you have the `putprpwnam' function. */
-+/* #undef HAVE_PUTPRPWNAM */
-+
-+/* Define to 1 if you have the `pututline' function. */
-+#define HAVE_PUTUTLINE 1
-+
-+/* Define to 1 if you have the `pututxline' function. */
-+#define HAVE_PUTUTXLINE 1
-+
-+/* Define to 1 if you have the `pwrite' function. */
-+#define HAVE_PWRITE 1
-+
-+/* Define to 1 if you have the `pwrite64' function. */
-+/* AR7 #define HAVE_PWRITE64 1 */
-+
-+/* Whether CRAY int quotactl (char *spec, int request, char *arg); is
-+   available */
-+/* #undef HAVE_QUOTACTL_3 */
-+
-+/* Whether long quotactl(int cmd, char *special, qid_t id, caddr_t addr) is
-+   available */
-+/* #undef HAVE_QUOTACTL_4A */
-+
-+/* Whether int quotactl(const char *path, int cmd, int id, char *addr) is
-+   available */
-+/* #undef HAVE_QUOTACTL_4B */
-+
-+/* Whether Linux quota support is available */
-+/* AR7 #define HAVE_QUOTACTL_LINUX 1 */
-+
-+/* Define to 1 if you have the `rand' function. */
-+#define HAVE_RAND 1
-+
-+/* Define to 1 if you have the `random' function. */
-+#define HAVE_RANDOM 1
-+
-+/* Define to 1 if you have the `rdchk' function. */
-+/* #undef HAVE_RDCHK */
-+
-+/* Define to 1 if you have the `readdir64' function. */
-+/* AR7 #define HAVE_READDIR64 1 */
-+
-+/* Define to 1 if you have the <readline.h> header file. */
-+/* #undef HAVE_READLINE_H */
-+
-+/* Define to 1 if you have the <readline/history.h> header file. */
-+#define HAVE_READLINE_HISTORY_H 1
-+
-+/* Define to 1 if you have the <readline/readline.h> header file. */
-+#define HAVE_READLINE_READLINE_H 1
-+
-+/* Define to 1 if you have the `readlink' function. */
-+#define HAVE_READLINK 1
-+
-+/* Define to 1 if you have the `realpath' function. */
-+#define HAVE_REALPATH 1
-+
-+/* Define to 1 if you have the `removexattr' function. */
-+/* AR7 #define HAVE_REMOVEXATTR 1 */
-+
-+/* Define to 1 if you have the `rename' function. */
-+#define HAVE_RENAME 1
-+
-+/* Define to 1 if you have the `rewinddir64' function. */
-+/* #undef HAVE_REWINDDIR64 */
-+
-+/* Define to 1 if you have the `roken_getaddrinfo_hostspec' function. */
-+/* #undef HAVE_ROKEN_GETADDRINFO_HOSTSPEC */
-+
-+/* Whether current user is root */
-+/* #undef HAVE_ROOT */
-+
-+/* Define to 1 if you have the <rpcsvc/nis.h> header file. */
-+#define HAVE_RPCSVC_NIS_H 1
-+
-+/* Define to 1 if you have the <rpcsvc/ypclnt.h> header file. */
-+#define HAVE_RPCSVC_YPCLNT_H 1
-+
-+/* Define to 1 if you have the <rpcsvc/yp_prot.h> header file. */
-+#define HAVE_RPCSVC_YP_PROT_H 1
-+
-+/* Whether there is a conflicting AUTH_ERROR define in rpc/rpc.h */
-+/* #undef HAVE_RPC_AUTH_ERROR_CONFLICT */
-+
-+/* Define to 1 if you have the <rpc/nettype.h> header file. */
-+/* #undef HAVE_RPC_NETTYPE_H */
-+
-+/* Define to 1 if you have the <rpc/rpc.h> header file. */
-+#define HAVE_RPC_RPC_H 1
-+
-+/* Whether mkstemp is secure */
-+#define HAVE_SECURE_MKSTEMP 1
-+
-+/* Define to 1 if you have the <security/pam_appl.h> header file. */
-+#define HAVE_SECURITY_PAM_APPL_H 1
-+
-+/* Define to 1 if you have the <security/pam_modules.h> header file. */
-+#define HAVE_SECURITY_PAM_MODULES_H 1
-+
-+/* Define to 1 if you have the <security/_pam_macros.h> header file. */
-+#define HAVE_SECURITY__PAM_MACROS_H 1
-+
-+/* Define to 1 if you have the `seekdir64' function. */
-+/* #undef HAVE_SEEKDIR64 */
-+
-+/* Define to 1 if you have the `select' function. */
-+#define HAVE_SELECT 1
-+
-+/* Whether sendfile() is available */
-+/* #undef HAVE_SENDFILE */
-+
-+/* Whether sendfile64() is available */
-+/* AR7 #define HAVE_SENDFILE64 1 */
-+
-+/* Whether sendfilev() is available */
-+/* #undef HAVE_SENDFILEV */
-+
-+/* Whether sendfilev64() is available */
-+/* #undef HAVE_SENDFILEV64 */
-+
-+/* Define to 1 if you have the `setbuffer' function. */
-+#define HAVE_SETBUFFER 1
-+
-+/* Define to 1 if you have the `setenv' function. */
-+#define HAVE_SETENV 1
-+
-+/* Define to 1 if you have the `setgidx' function. */
-+/* #undef HAVE_SETGIDX */
-+
-+/* Define to 1 if you have the `setgroups' function. */
-+#define HAVE_SETGROUPS 1
-+
-+/* Define to 1 if you have the `setlinebuf' function. */
-+#define HAVE_SETLINEBUF 1
-+
-+/* Define to 1 if you have the `setlocale' function. */
-+#define HAVE_SETLOCALE 1
-+
-+/* Define to 1 if you have the `setluid' function. */
-+/* #undef HAVE_SETLUID */
-+
-+/* Define to 1 if you have the `setmntent' function. */
-+#define HAVE_SETMNTENT 1
-+
-+/* Define to 1 if you have the `setnetgrent' function. */
-+#define HAVE_SETNETGRENT 1
-+
-+/* Define to 1 if you have the `setpgid' function. */
-+#define HAVE_SETPGID 1
-+
-+/* Define to 1 if you have the `setpriv' function. */
-+/* #undef HAVE_SETPRIV */
-+
-+/* Whether the system has setresgid */
-+#define HAVE_SETRESGID 1
-+
-+/* Whether setresgid() is available */
-+#define HAVE_SETRESGID_DECL 1
-+
-+/* Whether the system has setresuid */
-+#define HAVE_SETRESUID 1
-+
-+/* Whether setresuid() is available */
-+#define HAVE_SETRESUID_DECL 1
-+
-+/* Define to 1 if you have the `setsid' function. */
-+#define HAVE_SETSID 1
-+
-+/* Define to 1 if you have the `setuidx' function. */
-+/* #undef HAVE_SETUIDX */
-+
-+/* Define to 1 if you have the `setxattr' function. */
-+/* AR7 #define HAVE_SETXATTR 1 */
-+
-+/* Define to 1 if you have the `set_auth_parameters' function. */
-+/* #undef HAVE_SET_AUTH_PARAMETERS */
-+
-+/* Define to 1 if you have the <shadow.h> header file. */
-+#define HAVE_SHADOW_H 1
-+
-+/* Define to 1 if you have the `shmget' function. */
-+#define HAVE_SHMGET 1
-+
-+/* Define to 1 if you have the `shm_open' function. */
-+/* #undef HAVE_SHM_OPEN */
-+
-+/* Define to 1 if you have the `sigaction' function. */
-+#define HAVE_SIGACTION 1
-+
-+/* Define to 1 if you have the `sigblock' function. */
-+#define HAVE_SIGBLOCK 1
-+
-+/* Define to 1 if you have the `sigprocmask' function. */
-+#define HAVE_SIGPROCMASK 1
-+
-+/* Define to 1 if you have the `sigset' function. */
-+#define HAVE_SIGSET 1
-+
-+/* Whether we have the atomic_t variable type */
-+#define HAVE_SIG_ATOMIC_T_TYPE 1
-+
-+/* Define to 1 if you have the `snprintf' function. */
-+#define HAVE_SNPRINTF 1
-+
-+/* Whether snprintf() is available */
-+#define HAVE_SNPRINTF_DECL 1
-+
-+/* Whether we have the variable type socklen_t */
-+#define HAVE_SOCKLEN_T_TYPE 1
-+
-+/* Whether the sockaddr_in struct has a sin_len property */
-+/* #undef HAVE_SOCK_SIN_LEN */
-+
-+/* Whether solaris ACLs are available */
-+/* #undef HAVE_SOLARIS_ACLS */
-+
-+/* Define to 1 if you have the `srand' function. */
-+#define HAVE_SRAND 1
-+
-+/* Define to 1 if you have the `srandom' function. */
-+#define HAVE_SRANDOM 1
-+
-+/* Whether stat64() is available */
-+/* AR7 #define HAVE_STAT64 1 */
-+
-+/* whether struct stat has sub-second timestamps */
-+/* AR7 #define HAVE_STAT_HIRES_TIMESTAMPS 1 */
-+
-+/* whether struct stat contains st_atim */
-+#define HAVE_STAT_ST_ATIM 1
-+
-+/* Whether the stat struct has a st_blksize property */
-+#define HAVE_STAT_ST_BLKSIZE 1
-+
-+/* Whether the stat struct has a st_block property */
-+#define HAVE_STAT_ST_BLOCKS 1
-+
-+/* whether struct stat contains st_ctim */
-+#define HAVE_STAT_ST_CTIM 1
-+
-+/* whether struct stat contains st_mtim */
-+#define HAVE_STAT_ST_MTIM 1
-+
-+/* Define to 1 if you have the <stdarg.h> header file. */
-+#define HAVE_STDARG_H 1
-+
-+/* Define to 1 if you have the <stdint.h> header file. */
-+#define HAVE_STDINT_H 1
-+
-+/* Define to 1 if you have the <stdlib.h> header file. */
-+#define HAVE_STDLIB_H 1
-+
-+/* Define to 1 if you have the `strcasecmp' function. */
-+#define HAVE_STRCASECMP 1
-+
-+/* Define to 1 if you have the `strchr' function. */
-+#define HAVE_STRCHR 1
-+
-+/* Define to 1 if you have the `strdup' function. */
-+#define HAVE_STRDUP 1
-+
-+/* Define to 1 if you have the `strerror' function. */
-+#define HAVE_STRERROR 1
-+
-+/* Define to 1 if you have the `strftime' function. */
-+#define HAVE_STRFTIME 1
-+
-+/* Define to 1 if you have the <strings.h> header file. */
-+#define HAVE_STRINGS_H 1
-+
-+/* Define to 1 if you have the <string.h> header file. */
-+#define HAVE_STRING_H 1
-+
-+/* Define to 1 if you have the `strlcat' function. */
-+/* #undef HAVE_STRLCAT */
-+
-+/* Define to 1 if you have the `strlcpy' function. */
-+/* #undef HAVE_STRLCPY */
-+
-+/* Define to 1 if you have the `strndup' function. */
-+#define HAVE_STRNDUP 1
-+
-+/* Define to 1 if you have the `strnlen' function. */
-+#define HAVE_STRNLEN 1
-+
-+/* Define to 1 if you have the <stropts.h> header file. */
-+/* AR7 #define HAVE_STROPTS_H 1 */
-+
-+/* Define to 1 if you have the `strpbrk' function. */
-+#define HAVE_STRPBRK 1
-+
-+/* Define to 1 if you have the `strtoul' function. */
-+#define HAVE_STRTOUL 1
-+
-+/* Whether the 'DIR64' abstract data type is available */
-+/* #undef HAVE_STRUCT_DIR64 */
-+
-+/* Whether the 'dirent64' struct is available */
-+/* AR7 #define HAVE_STRUCT_DIRENT64 1 */
-+
-+/* Whether the flock64 struct is available */
-+/* AR7 #define HAVE_STRUCT_FLOCK64 1 */
-+
-+/* Define to 1 if `method_attrlist' is member of `struct secmethod_table'. */
-+/* #undef HAVE_STRUCT_SECMETHOD_TABLE_METHOD_ATTRLIST */
-+
-+/* Define to 1 if `method_version' is member of `struct secmethod_table'. */
-+/* #undef HAVE_STRUCT_SECMETHOD_TABLE_METHOD_VERSION */
-+
-+/* Define to 1 if `st_rdev' is member of `struct stat'. */
-+#define HAVE_STRUCT_STAT_ST_RDEV 1
-+
-+/* Whether we have struct timespec */
-+#define HAVE_STRUCT_TIMESPEC 1
-+
-+/* Define to 1 if your `struct stat' has `st_rdev'. Deprecated, use
-+   `HAVE_STRUCT_STAT_ST_RDEV' instead. */
-+#define HAVE_ST_RDEV 1
-+
-+/* Define to 1 if you have the `symlink' function. */
-+#define HAVE_SYMLINK 1
-+
-+/* Define to 1 if you have the `syscall' function. */
-+#define HAVE_SYSCALL 1
-+
-+/* Define to 1 if you have the <syscall.h> header file. */
-+#define HAVE_SYSCALL_H 1
-+
-+/* Define to 1 if you have the `sysconf' function. */
-+#define HAVE_SYSCONF 1
-+
-+/* Define to 1 if you have the `syslog' function. */
-+#define HAVE_SYSLOG 1
-+
-+/* Define to 1 if you have the <syslog.h> header file. */
-+#define HAVE_SYSLOG_H 1
-+
-+/* Define to 1 if you have the <sys/acl.h> header file. */
-+/* #undef HAVE_SYS_ACL_H */
-+
-+/* Define to 1 if you have the <sys/attributes.h> header file. */
-+/* #undef HAVE_SYS_ATTRIBUTES_H */
-+
-+/* Define to 1 if you have the <sys/capability.h> header file. */
-+/* #undef HAVE_SYS_CAPABILITY_H */
-+
-+/* Define to 1 if you have the <sys/cdefs.h> header file. */
-+#define HAVE_SYS_CDEFS_H 1
-+
-+/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
-+   */
-+/* #undef HAVE_SYS_DIR_H */
-+
-+/* Define to 1 if you have the <sys/dustat.h> header file. */
-+/* #undef HAVE_SYS_DUSTAT_H */
-+
-+/* Define to 1 if you have the <sys/extattr.h> header file. */
-+/* #undef HAVE_SYS_EXTATTR_H */
-+
-+/* Define to 1 if you have the <sys/fcntl.h> header file. */
-+#define HAVE_SYS_FCNTL_H 1
-+
-+/* Define to 1 if you have the <sys/filio.h> header file. */
-+/* #undef HAVE_SYS_FILIO_H */
-+
-+/* Define to 1 if you have the <sys/filsys.h> header file. */
-+/* #undef HAVE_SYS_FILSYS_H */
-+
-+/* Define to 1 if you have the <sys/fs/s5param.h> header file. */
-+/* #undef HAVE_SYS_FS_S5PARAM_H */
-+
-+/* Define to 1 if you have the <sys/fs/vx_quota.h> header file. */
-+/* #undef HAVE_SYS_FS_VX_QUOTA_H */
-+
-+/* Define to 1 if you have the <sys/id.h> header file. */
-+/* #undef HAVE_SYS_ID_H */
-+
-+/* Define to 1 if you have the <sys/ioctl.h> header file. */
-+#define HAVE_SYS_IOCTL_H 1
-+
-+/* Define to 1 if you have the <sys/ipc.h> header file. */
-+#define HAVE_SYS_IPC_H 1
-+
-+/* Define to 1 if you have the <sys/mman.h> header file. */
-+#define HAVE_SYS_MMAN_H 1
-+
-+/* Define to 1 if you have the <sys/mode.h> header file. */
-+/* #undef HAVE_SYS_MODE_H */
-+
-+/* Define to 1 if you have the <sys/mount.h> header file. */
-+#define HAVE_SYS_MOUNT_H 1
-+
-+/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
-+   */
-+/* #undef HAVE_SYS_NDIR_H */
-+
-+/* Define to 1 if you have the <sys/param.h> header file. */
-+#define HAVE_SYS_PARAM_H 1
-+
-+/* Define to 1 if you have the <sys/prctl.h> header file. */
-+#define HAVE_SYS_PRCTL_H 1
-+
-+/* Define to 1 if you have the <sys/priv.h> header file. */
-+/* #undef HAVE_SYS_PRIV_H */
-+
-+/* Whether the new lib/sysquotas.c interface can be used */
-+/* AR7 #define HAVE_SYS_QUOTAS 1 */
-+
-+/* Define to 1 if you have the <sys/quota.h> header file. */
-+/* AR7 #define HAVE_SYS_QUOTA_H 1 */
-+
-+/* Define to 1 if you have the <sys/resource.h> header file. */
-+#define HAVE_SYS_RESOURCE_H 1
-+
-+/* Define to 1 if you have the <sys/security.h> header file. */
-+/* #undef HAVE_SYS_SECURITY_H */
-+
-+/* Define to 1 if you have the <sys/select.h> header file. */
-+#define HAVE_SYS_SELECT_H 1
-+
-+/* Define to 1 if you have the <sys/shm.h> header file. */
-+#define HAVE_SYS_SHM_H 1
-+
-+/* Define to 1 if you have the <sys/socket.h> header file. */
-+#define HAVE_SYS_SOCKET_H 1
-+
-+/* Define to 1 if you have the <sys/sockio.h> header file. */
-+/* #undef HAVE_SYS_SOCKIO_H */
-+
-+/* Define to 1 if you have the <sys/statfs.h> header file. */
-+#define HAVE_SYS_STATFS_H 1
-+
-+/* Define to 1 if you have the <sys/statvfs.h> header file. */
-+#define HAVE_SYS_STATVFS_H 1
-+
-+/* Define to 1 if you have the <sys/stat.h> header file. */
-+#define HAVE_SYS_STAT_H 1
-+
-+/* Define to 1 if you have the <sys/syscall.h> header file. */
-+#define HAVE_SYS_SYSCALL_H 1
-+
-+/* Define to 1 if you have the <sys/syslog.h> header file. */
-+#define HAVE_SYS_SYSLOG_H 1
-+
-+/* Define to 1 if you have the <sys/sysmacros.h> header file. */
-+#define HAVE_SYS_SYSMACROS_H 1
-+
-+/* Define to 1 if you have the <sys/termio.h> header file. */
-+/* #undef HAVE_SYS_TERMIO_H */
-+
-+/* Define to 1 if you have the <sys/time.h> header file. */
-+#define HAVE_SYS_TIME_H 1
-+
-+/* Define to 1 if you have the <sys/types.h> header file. */
-+#define HAVE_SYS_TYPES_H 1
-+
-+/* Define to 1 if you have the <sys/uio.h> header file. */
-+#define HAVE_SYS_UIO_H 1
-+
-+/* Define to 1 if you have the <sys/unistd.h> header file. */
-+#define HAVE_SYS_UNISTD_H 1
-+
-+/* Define to 1 if you have the <sys/un.h> header file. */
-+#define HAVE_SYS_UN_H 1
-+
-+/* Define to 1 if you have the <sys/vfs.h> header file. */
-+#define HAVE_SYS_VFS_H 1
-+
-+/* Define to 1 if you have the <sys/wait.h> header file. */
-+#define HAVE_SYS_WAIT_H 1
-+
-+/* Define to 1 if you have the <sys/xattr.h> header file. */
-+/* AR7 #define HAVE_SYS_XATTR_H 1 */
-+
-+/* Define to 1 if you have the `telldir64' function. */
-+/* #undef HAVE_TELLDIR64 */
-+
-+/* Define to 1 if you have the <termios.h> header file. */
-+#define HAVE_TERMIOS_H 1
-+
-+/* Define to 1 if you have the <termio.h> header file. */
-+#define HAVE_TERMIO_H 1
-+
-+/* Define to 1 if you have the `timegm' function. */
-+/* AR7 #define HAVE_TIMEGM 1 */
-+
-+/* Whether Tru64 ACLs are available */
-+/* #undef HAVE_TRU64_ACLS */
-+
-+/* Whether crypt needs truncated salt */
-+/* #undef HAVE_TRUNCATED_SALT */
-+
-+/* Whether uint16 typedef is included by rpc/rpc.h */
-+/* #undef HAVE_UINT16_FROM_RPC_RPC_H */
-+
-+/* Whether uint32 typedef is included by rpc/rpc.h */
-+/* #undef HAVE_UINT32_FROM_RPC_RPC_H */
-+
-+/* Define to 1 if you have the <unistd.h> header file. */
-+#define HAVE_UNISTD_H 1
-+
-+/* If we need to build with unixscoket support */
-+#define HAVE_UNIXSOCKET 1
-+
-+/* Whether UnixWare ACLs are available */
-+/* #undef HAVE_UNIXWARE_ACLS */
-+
-+/* Whether the 'unsigned char' type is available */
-+/* #undef HAVE_UNSIGNED_CHAR */
-+
-+/* Define to 1 if you have the `updwtmp' function. */
-+#define HAVE_UPDWTMP 1
-+
-+/* Define to 1 if you have the `updwtmpx' function. */
-+#define HAVE_UPDWTMPX 1
-+
-+/* Define to 1 if you have the `usleep' function. */
-+#define HAVE_USLEEP 1
-+
-+/* Whether struct utimbuf is available */
-+#define HAVE_UTIMBUF 1
-+
-+/* Define to 1 if you have the `utime' function. */
-+#define HAVE_UTIME 1
-+
-+/* Define to 1 if you have the `utimes' function. */
-+#define HAVE_UTIMES 1
-+
-+/* Define to 1 if you have the <utime.h> header file. */
-+#define HAVE_UTIME_H 1
-+
-+/* Define to 1 if you have the <utmpx.h> header file. */
-+/* #define HAVE_UTMPX_H 1 */
-+
-+/* Define to 1 if you have the <utmp.h> header file. */
-+#define HAVE_UTMP_H 1
-+
-+/* Whether the utmp struct has a property ut_addr */
-+#define HAVE_UT_UT_ADDR 1
-+
-+/* Whether the utmp struct has a property ut_exit */
-+#define HAVE_UT_UT_EXIT 1
-+
-+/* Whether the utmp struct has a property ut_host */
-+#define HAVE_UT_UT_HOST 1
-+
-+/* Whether the utmp struct has a property ut_id */
-+#define HAVE_UT_UT_ID 1
-+
-+/* Whether the utmp struct has a property ut_name */
-+#define HAVE_UT_UT_NAME 1
-+
-+/* Whether the utmp struct has a property ut_pid */
-+#define HAVE_UT_UT_PID 1
-+
-+/* Whether the utmp struct has a property ut_time */
-+#define HAVE_UT_UT_TIME 1
-+
-+/* Whether the utmp struct has a property ut_tv */
-+#define HAVE_UT_UT_TV 1
-+
-+/* Whether the utmp struct has a property ut_type */
-+#define HAVE_UT_UT_TYPE 1
-+
-+/* Whether the utmp struct has a property ut_user */
-+#define HAVE_UT_UT_USER 1
-+
-+/* Whether the utmpx struct has a property ut_syslen */
-+/* #undef HAVE_UX_UT_SYSLEN */
-+
-+/* Define to 1 if you have the <valgrind.h> header file. */
-+/* #undef HAVE_VALGRIND_H */
-+
-+/* Define to 1 if you have the <valgrind/memcheck.h> header file. */
-+/* #undef HAVE_VALGRIND_MEMCHECK_H */
-+
-+/* Define to 1 if you have the <valgrind/valgrind.h> header file. */
-+/* #undef HAVE_VALGRIND_VALGRIND_H */
-+
-+/* Define to 1 if you have the `vasprintf' function. */
-+#define HAVE_VASPRINTF 1
-+
-+/* Whether vasprintf() is available */
-+#define HAVE_VASPRINTF_DECL 1
-+
-+/* Whether va_copy() is available */
-+#define HAVE_VA_COPY 1
-+
-+/* Whether the C compiler understands volatile */
-+#define HAVE_VOLATILE 1
-+
-+/* Define to 1 if you have the `vsnprintf' function. */
-+#define HAVE_VSNPRINTF 1
-+
-+/* Whether vsnprintf() is available */
-+#define HAVE_VSNPRINTF_DECL 1
-+
-+/* Define to 1 if you have the `vsyslog' function. */
-+#define HAVE_VSYSLOG 1
-+
-+/* Define to 1 if you have the `waitpid' function. */
-+#define HAVE_WAITPID 1
-+
-+/* Define if you have working AF_LOCAL sockets */
-+#define HAVE_WORKING_AF_LOCAL 1
-+
-+/* Whether the WRFILE:-keytab is supported */
-+/* #undef HAVE_WRFILE_KEYTAB */
-+
-+/* Whether xfs quota support is available */
-+/* AR7 #define HAVE_XFS_QUOTAS 1 */
-+
-+/* Define to 1 if you have the `yp_get_default_domain' function. */
-+#define HAVE_YP_GET_DEFAULT_DOMAIN 1
-+
-+/* Define to 1 if you have the `_acl' function. */
-+/* #undef HAVE__ACL */
-+
-+/* Define to 1 if you have the `_chdir' function. */
-+/* #undef HAVE__CHDIR */
-+
-+/* Define to 1 if you have the `_close' function. */
-+/* #undef HAVE__CLOSE */
-+
-+/* Define to 1 if you have the `_closedir' function. */
-+/* #undef HAVE__CLOSEDIR */
-+
-+/* Define to 1 if you have the `_dup' function. */
-+/* #undef HAVE__DUP */
-+
-+/* Define to 1 if you have the `_dup2' function. */
-+/* #undef HAVE__DUP2 */
-+
-+/* Define to 1 if you have the `_et_list' function. */
-+/* #undef HAVE__ET_LIST */
-+
-+/* Define to 1 if you have the `_facl' function. */
-+/* #undef HAVE__FACL */
-+
-+/* Define to 1 if you have the `_fchdir' function. */
-+/* #undef HAVE__FCHDIR */
-+
-+/* Define to 1 if you have the `_fcntl' function. */
-+/* #undef HAVE__FCNTL */
-+
-+/* Define to 1 if you have the `_fork' function. */
-+/* #undef HAVE__FORK */
-+
-+/* Define to 1 if you have the `_fstat' function. */
-+/* #undef HAVE__FSTAT */
-+
-+/* Define to 1 if you have the `_fstat64' function. */
-+/* #undef HAVE__FSTAT64 */
-+
-+/* Define to 1 if you have the `_getcwd' function. */
-+/* #undef HAVE__GETCWD */
-+
-+/* Define to 1 if you have the `_getdents' function. */
-+/* #undef HAVE__GETDENTS */
-+
-+/* Define to 1 if you have the `_llseek' function. */
-+/* #undef HAVE__LLSEEK */
-+
-+/* Define to 1 if you have the `_lseek' function. */
-+/* #undef HAVE__LSEEK */
-+
-+/* Define to 1 if you have the `_lstat' function. */
-+/* #undef HAVE__LSTAT */
-+
-+/* Define to 1 if you have the `_lstat64' function. */
-+/* #undef HAVE__LSTAT64 */
-+
-+/* Define to 1 if you have the `_open' function. */
-+/* #undef HAVE__OPEN */
-+
-+/* Define to 1 if you have the `_open64' function. */
-+/* #undef HAVE__OPEN64 */
-+
-+/* Define to 1 if you have the `_opendir' function. */
-+/* #undef HAVE__OPENDIR */
-+
-+/* Define to 1 if you have the `_pread' function. */
-+/* #undef HAVE__PREAD */
-+
-+/* Define to 1 if you have the `_pread64' function. */
-+/* #undef HAVE__PREAD64 */
-+
-+/* Define to 1 if you have the `_pwrite' function. */
-+/* #undef HAVE__PWRITE */
-+
-+/* Define to 1 if you have the `_pwrite64' function. */
-+/* #undef HAVE__PWRITE64 */
-+
-+/* Define to 1 if you have the `_read' function. */
-+/* #undef HAVE__READ */
-+
-+/* Define to 1 if you have the `_readdir' function. */
-+/* #undef HAVE__READDIR */
-+
-+/* Define to 1 if you have the `_readdir64' function. */
-+/* #undef HAVE__READDIR64 */
-+
-+/* Define to 1 if you have the `_seekdir' function. */
-+/* #undef HAVE__SEEKDIR */
-+
-+/* Define to 1 if you have the `_stat' function. */
-+/* #undef HAVE__STAT */
-+
-+/* Define to 1 if you have the `_stat64' function. */
-+/* #undef HAVE__STAT64 */
-+
-+/* Define to 1 if you have the `_telldir' function. */
-+/* #undef HAVE__TELLDIR */
-+
-+/* Define to 1 if you have the `_write' function. */
-+/* #undef HAVE__WRITE */
-+
-+/* Define to 1 if you have the `__acl' function. */
-+/* #undef HAVE___ACL */
-+
-+/* Define to 1 if you have the `__chdir' function. */
-+/* #undef HAVE___CHDIR */
-+
-+/* Define to 1 if you have the `__close' function. */
-+#define HAVE___CLOSE 1
-+
-+/* Define to 1 if you have the `__closedir' function. */
-+/* #undef HAVE___CLOSEDIR */
-+
-+/* Define to 1 if you have the `__dup' function. */
-+/* #undef HAVE___DUP */
-+
-+/* Define to 1 if you have the `__dup2' function. */
-+#define HAVE___DUP2 1
-+
-+/* Define to 1 if you have the `__facl' function. */
-+/* #undef HAVE___FACL */
-+
-+/* Define to 1 if you have the `__fchdir' function. */
-+/* #undef HAVE___FCHDIR */
-+
-+/* Define to 1 if you have the `__fcntl' function. */
-+#define HAVE___FCNTL 1
-+
-+/* Define to 1 if you have the `__fork' function. */
-+#define HAVE___FORK 1
-+
-+/* Define to 1 if you have the `__fstat' function. */
-+#define HAVE___FSTAT 1
-+
-+/* Define to 1 if you have the `__fstat64' function. */
-+/* #undef HAVE___FSTAT64 */
-+
-+/* Define to 1 if you have the `__fxstat' function. */
-+#define HAVE___FXSTAT 1
-+
-+/* Define to 1 if you have the `__getcwd' function. */
-+/* #undef HAVE___GETCWD */
-+
-+/* Define to 1 if you have the `__getdents' function. */
-+/* #undef HAVE___GETDENTS */
-+
-+/* Define to 1 if you have the `__llseek' function. */
-+/* #undef HAVE___LLSEEK */
-+
-+/* Define to 1 if you have the `__lseek' function. */
-+#define HAVE___LSEEK 1
-+
-+/* Define to 1 if you have the `__lstat' function. */
-+#define HAVE___LSTAT 1
-+
-+/* Define to 1 if you have the `__lstat64' function. */
-+/* #undef HAVE___LSTAT64 */
-+
-+/* Define to 1 if you have the `__lxstat' function. */
-+#define HAVE___LXSTAT 1
-+
-+/* Define to 1 if you have the `__open' function. */
-+#define HAVE___OPEN 1
-+
-+/* Define to 1 if you have the `__open64' function. */
-+/* AR7 #define HAVE___OPEN64 1 */
-+
-+/* Define to 1 if you have the `__opendir' function. */
-+/* #undef HAVE___OPENDIR */
-+
-+/* Define to 1 if you have the `__pread' function. */
-+/* #undef HAVE___PREAD */
-+
-+/* Define to 1 if you have the `__pread64' function. */
-+/* AR7 #define HAVE___PREAD64 1 */
-+
-+/* Define to 1 if you have the `__pwrite' function. */
-+/* #undef HAVE___PWRITE */
-+
-+/* Define to 1 if you have the `__pwrite64' function. */
-+/* AR7 #define HAVE___PWRITE64 1 */
-+
-+/* Define to 1 if you have the `__read' function. */
-+#define HAVE___READ 1
-+
-+/* Define to 1 if you have the `__readdir' function. */
-+/* #undef HAVE___READDIR */
-+
-+/* Define to 1 if you have the `__readdir64' function. */
-+/* #undef HAVE___READDIR64 */
-+
-+/* Define to 1 if you have the `__seekdir' function. */
-+/* #undef HAVE___SEEKDIR */
-+
-+/* Define to 1 if you have the `__stat' function. */
-+#define HAVE___STAT 1
-+
-+/* Define to 1 if you have the `__stat64' function. */
-+/* #undef HAVE___STAT64 */
-+
-+/* Define to 1 if you have the `__sys_llseek' function. */
-+/* #undef HAVE___SYS_LLSEEK */
-+
-+/* Define to 1 if you have the `__telldir' function. */
-+/* #undef HAVE___TELLDIR */
-+
-+/* Whether __va_copy() is available */
-+/* #undef HAVE___VA_COPY */
-+
-+/* Define to 1 if you have the `__write' function. */
-+#define HAVE___WRITE 1
-+
-+/* Define to 1 if you have the `__xstat' function. */
-+#define HAVE___XSTAT 1
-+
-+/* Whether the host os is HPUX */
-+/* #undef HPUX */
-+
-+/* Whether the hpux sendfile() API is available */
-+/* #undef HPUX_SENDFILE_API */
-+
-+/* Whether to use intel spinlocks */
-+/* #undef INTEL_SPINLOCKS */
-+
-+/* Whether the host os is irix */
-+/* #undef IRIX */
-+
-+/* Whether the host os is irix6 */
-+/* #undef IRIX6 */
-+
-+/* Whether krb5_princ_realm returns krb5_realm or krb5_data */
-+/* #undef KRB5_PRINC_REALM_RETURNS_REALM */
-+
-+/* Number of arguments to ldap_set_rebind_proc */
-+/* #undef LDAP_SET_REBIND_PROC_ARGS */
-+
-+/* Whether the host os is linux */
-+#define LINUX 1
-+
-+/* Whether (linux) sendfile() is broken */
-+/* #undef LINUX_BROKEN_SENDFILE_API */
-+
-+/* Whether linux sendfile() API is available */
-+#define LINUX_SENDFILE_API 1
-+
-+/* Whether to use mips spinlocks */
-+/* #undef MIPS_SPINLOCKS */
-+
-+/* Whether MMAP is broken */
-+/* #undef MMAP_BLACKLIST */
-+
-+/* Whether the host os is NeXT v2 */
-+/* #undef NEXT2 */
-+
-+/* Define to 1 if your C compiler doesn't accept -c and -o together. */
-+/* #undef NO_MINUS_C_MINUS_O */
-+
-+/* Whether the host os is osf1 */
-+/* #undef OSF1 */
-+
-+/* Define to the address where bug reports for this package should be sent. */
-+#define PACKAGE_BUGREPORT ""
-+
-+/* Define to the full name of this package. */
-+#define PACKAGE_NAME ""
-+
-+/* Define to the full name and version of this package. */
-+#define PACKAGE_STRING ""
-+
-+/* Define to the one symbol short name of this package. */
-+#define PACKAGE_TARNAME ""
-+
-+/* Define to the version of this package. */
-+#define PACKAGE_VERSION ""
-+
-+/* Does a POSIX ACL need a mask element */
-+/* #undef POSIX_ACL_NEEDS_MASK */
-+
-+/* Whether to use powerpc spinlocks */
-+/* #undef POWERPC_SPINLOCKS */
-+
-+/* Whether pututline returns pointer */
-+#define PUTUTLINE_RETURNS_UTMP 1
-+
-+/* Whether the host os is qnx */
-+/* #undef QNX */
-+
-+/* Whether the realpath function allows NULL */
-+#define REALPATH_TAKES_NULL 1
-+
-+/* Whether the host os is reliantunix */
-+/* #undef RELIANTUNIX */
-+
-+/* Whether getpass should be replaced */
-+#define REPLACE_GETPASS 1
-+
-+/* Whether inet_ntoa should be replaced */
-+/* #undef REPLACE_INET_NTOA */
-+
-+/* Define as the return type of signal handlers (`int' or `void'). */
-+#define RETSIGTYPE void
-+
-+/* Whether the host os is sco unix */
-+/* #undef SCO */
-+
-+/* Whether seekdir returns void */
-+#define SEEKDIR_RETURNS_VOID 1
-+
-+/* The size of the 'ino_t' type */
-+/* AR7 #define SIZEOF_INO_T 8 */
-+#define SIZEOF_INO_T 4 /* AR7 */
-+
-+/* The size of a `int', as computed by sizeof. */
-+#define SIZEOF_INT 4
-+
-+/* The size of a `long', as computed by sizeof. */
-+#define SIZEOF_LONG 4
-+
-+/* The size of the 'off_t' type */
-+/* AR7 #define SIZEOF_OFF_T 8 */
-+#define SIZEOF_OFF_T 4 /* AR7 */
-+
-+/* The size of a `short', as computed by sizeof. */
-+#define SIZEOF_SHORT 2
-+
-+/* Use socket wrapper library */
-+/* #undef SOCKET_WRAPPER */
-+
-+/* Whether the solaris sendfile() API is available */
-+/* #undef SOLARIS_SENDFILE_API */
-+
-+/* Whether to use sparc spinlocks */
-+/* #undef SPARC_SPINLOCKS */
-+
-+/* Whether statfs requires two arguments and struct statfs has bsize property
-+   */
-+/* #undef STAT_STATFS2_BSIZE */
-+
-+/* Whether statfs requires 2 arguments and struct statfs has fsize */
-+/* #undef STAT_STATFS2_FSIZE */
-+
-+/* Whether statfs requires 2 arguments and struct fs_data is available */
-+/* #undef STAT_STATFS2_FS_DATA */
-+
-+/* Whether statfs requires 3 arguments */
-+/* #undef STAT_STATFS3_OSF1 */
-+
-+/* Whether statfs requires 4 arguments */
-+/* #undef STAT_STATFS4 */
-+
-+/* Whether statvfs() is available */
-+#define STAT_STATVFS 1 /* AR7 */
-+
-+/* Whether statvfs64() is available */
-+/* AR7 #define STAT_STATVFS64 1 */
-+
-+/* The size of a block */
-+#define STAT_ST_BLOCKSIZE 512
-+
-+/* Define to 1 if you have the ANSI C header files. */
-+#define STDC_HEADERS 1
-+
-+/* String list of builtin modules */
-+#define STRING_STATIC_MODULES " pdb_smbpasswd pdb_tdbsam pdb_guest rpc_lsa rpc_reg rpc_lsa_ds rpc_wks rpc_svcctl rpc_net rpc_dfs rpc_srv rpc_spoolss rpc_eventlog rpc_samr idmap_tdb auth_rhosts auth_sam auth_unix auth_winbind auth_server auth_domain auth_builtin"
-+
-+/* Whether the host os is sunos4 */
-+/* #undef SUNOS4 */
-+
-+/* Whether the host os is solaris */
-+/* #undef SUNOS5 */
-+
-+/* Whether sysconf(_SC_NGROUPS_MAX) is available */
-+#define SYSCONF_SC_NGROUPS_MAX 1
-+
-+/* Whether sysconf(_SC_NPROC_ONLN) is available */
-+/* #undef SYSCONF_SC_NPROC_ONLN */
-+
-+/* Whether this is a system V system */
-+/* #undef SYSV */
-+
-+/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
-+#define TIME_WITH_SYS_TIME 1
-+
-+/* Whether the host os is unixware */
-+/* #undef UNIXWARE */
-+
-+/* Whether to use both of HPUX' crypt calls */
-+/* #undef USE_BOTH_CRYPT_CALLS */
-+
-+/* Whether seteuid() is available */
-+/* #undef USE_SETEUID */
-+
-+/* Whether setresuid() is available */
-+#define USE_SETRESUID 1
-+
-+/* Whether setreuid() is available */
-+/* #undef USE_SETREUID */
-+
-+/* Whether setuidx() is available */
-+/* #undef USE_SETUIDX */
-+
-+/* Whether to use spin locks instead of fcntl locks */
-+/* #undef USE_SPINLOCKS */
-+
-+/* Whether to include Active Directory support */
-+/* #undef WITH_ADS */
-+
-+/* Whether to include AFS clear-text auth support */
-+/* #undef WITH_AFS */
-+
-+/* Using asynchronous io */
-+/* #undef WITH_AIO */
-+
-+/* Whether to include automount support */
-+/* #undef WITH_AUTOMOUNT */
-+
-+/* Whether to include DFS support */
-+/* #undef WITH_DFS */
-+
-+/* Whether to include AFS fake-kaserver support */
-+/* #undef WITH_FAKE_KASERVER */
-+
-+/* Whether to include 2.2 compatible LDAP SAM configuration */
-+/* #undef WITH_LDAP_SAMCONFIG */
-+
-+/* Whether to include nisplus_home support */
-+/* #undef WITH_NISPLUS_HOME */
-+
-+/* Whether to include PAM support */
-+/* #undef WITH_PAM */
-+
-+/* Whether to use profiling */
-+/* #undef WITH_PROFILE */
-+
-+/* Whether to use disk quota support */
-+/* AR7 #define WITH_QUOTAS 1 */
-+
-+/* Whether to include sendfile() support */
-+#define WITH_SENDFILE 1
-+
-+/* Whether to build smbmount */
-+/* #undef WITH_SMBMOUNT */
-+
-+/* Whether to include smbwrapper support */
-+/* #undef WITH_SMBWRAPPER */
-+
-+/* Whether to include experimental syslog support */
-+/* #undef WITH_SYSLOG */
-+
-+/* Whether to include experimental utmp accounting */
-+#define WITH_UTMP 1
-+
-+/* Whether to build winbind */
-+#define WITH_WINBIND 1
-+
-+/* Define to 1 if your processor stores words with the most significant byte
-+   first (like Motorola and SPARC, unlike Intel and VAX). */
-+/* #undef WORDS_BIGENDIAN */
-+
-+/* Required alignment */
-+/* #undef _ALIGNMENT_REQUIRED */
-+
-+/* File offset bits */
-+#ifdef WITH_LFS
-+#define _FILE_OFFSET_BITS 64 /* Large File Support */
-+#endif
-+
-+/* Whether to use GNU libc extensions */
-+#define _GNU_SOURCE 1
-+
-+/* Whether to use HPUX extensions */
-+/* #undef _HPUX_SOURCE */
-+
-+/* Whether to enable large file support */
-+/* AR7 #define _LARGEFILE64_SOURCE 1 */
-+
-+/* Whether to enable large file support */
-+/* #undef _LARGE_FILES */
-+
-+/* Maximum alignment */
-+/* #undef _MAX_ALIGNMENT */
-+
-+/* Whether to enable POSIX support */
-+/* #undef _POSIX_C_SOURCE */
-+
-+/* Whether to use POSIX compatible functions */
-+/* #undef _POSIX_SOURCE */
-+
-+/* Whether to enable System V compatibility */
-+/* #undef _SYSV */
-+
-+/* Define to 1 if type `char' is unsigned and you are not using gcc.  */
-+#ifndef __CHAR_UNSIGNED__
-+/* # undef __CHAR_UNSIGNED__ */
-+#endif
-+
-+/* Whether to build auth_builtin as shared module */
-+/* #undef auth_builtin_init */
-+
-+/* Whether to build auth_domain as shared module */
-+/* #undef auth_domain_init */
-+
-+/* Whether to build auth_rhosts as shared module */
-+/* #undef auth_rhosts_init */
-+
-+/* Whether to build auth_sam as shared module */
-+/* #undef auth_sam_init */
-+
-+/* Whether to build auth_server as shared module */
-+/* #undef auth_server_init */
-+
-+/* Whether to build auth_unix as shared module */
-+/* #undef auth_unix_init */
-+
-+/* Whether to build auth_winbind as shared module */
-+/* #undef auth_winbind_init */
-+
-+/* Whether to build charset_CP437 as shared module */
-+#define charset_CP437_init init_module
-+
-+/* Whether to build charset_CP850 as shared module */
-+#define charset_CP850_init init_module
-+
-+/* Whether to build charset_macosxfs as shared module */
-+/* #undef charset_macosxfs_init */
-+
-+/* Whether to build charset_weird as shared module */
-+/* #undef charset_weird_init */
-+
-+/* Define to empty if `const' does not conform to ANSI C. */
-+/* #undef const */
-+
-+/* Define to `int' if <sys/types.h> doesn't define. */
-+/* #undef gid_t */
-+
-+/* Whether to build idmap_ad as shared module */
-+/* #undef idmap_ad_init */
-+
-+/* Whether to build idmap_ldap as shared module */
-+/* #undef idmap_ldap_init */
-+
-+/* Whether to build idmap_rid as shared module */
-+/* #undef idmap_rid_init */
-+
-+/* Whether to build idmap_tdb as shared module */
-+/* #undef idmap_tdb_init */
-+
-+/* Define to `__inline__' or `__inline' if that's what the C compiler
-+   calls it, or to nothing if 'inline' is not supported under any name.  */
-+#ifndef __cplusplus
-+/* #undef inline */
-+#endif
-+
-+/* Define to `unsigned' if <sys/types.h> does not define. */
-+/* #undef ino_t */
-+
-+/* Define to `off_t' if <sys/types.h> does not define. */
-+/* #undef loff_t */
-+
-+/* Define to `int' if <sys/types.h> does not define. */
-+/* #undef mode_t */
-+
-+/* Define to `long' if <sys/types.h> does not define. */
-+/* #undef off_t */
-+
-+/* Define to `loff_t' if <sys/types.h> does not define. */
-+#define offset_t loff_t
-+
-+/* Whether to build pdb_guest as shared module */
-+/* #undef pdb_guest_init */
-+
-+/* Whether to build pdb_ldap as shared module */
-+/* #undef pdb_ldap_init */
-+
-+/* Whether to build pdb_mysql as shared module */
-+/* #undef pdb_mysql_init */
-+
-+/* Whether to build pdb_pgsql as shared module */
-+/* #undef pdb_pgsql_init */
-+
-+/* Whether to build pdb_smbpasswd as shared module */
-+/* #undef pdb_smbpasswd_init */
-+
-+/* Whether to build pdb_tdbsam as shared module */
-+/* #undef pdb_tdbsam_init */
-+
-+/* Whether to build pdb_xml as shared module */
-+/* #undef pdb_xml_init */
-+
-+/* Define to `int' if <sys/types.h> does not define. */
-+/* #undef pid_t */
-+
-+/* Whether to build rpc_dfs as shared module */
-+/* #undef rpc_dfs_init */
-+
-+/* Whether to build rpc_echo as shared module */
-+/* #undef rpc_echo_init */
-+
-+/* Whether to build rpc_eventlog as shared module */
-+/* #undef rpc_eventlog_init */
-+
-+/* Whether to build rpc_lsa_ds as shared module */
-+/* #undef rpc_lsa_ds_init */
-+
-+/* Whether to build rpc_lsa as shared module */
-+/* #undef rpc_lsa_init */
-+
-+/* Whether to build rpc_net as shared module */
-+/* #undef rpc_net_init */
-+
-+/* Whether to build rpc_reg as shared module */
-+/* #undef rpc_reg_init */
-+
-+/* Whether to build rpc_samr as shared module */
-+/* #undef rpc_samr_init */
-+
-+/* Whether to build rpc_spoolss as shared module */
-+/* #undef rpc_spoolss_init */
-+
-+/* Whether to build rpc_srv as shared module */
-+/* #undef rpc_srv_init */
-+
-+/* Whether to build rpc_svcctl as shared module */
-+/* #undef rpc_svcctl_init */
-+
-+/* Whether to build rpc_wks as shared module */
-+/* #undef rpc_wks_init */
-+
-+/* Define to `unsigned' if <sys/types.h> does not define. */
-+/* #undef size_t */
-+
-+/* Define to `int' if <sys/types.h> does not define. */
-+/* #undef ssize_t */
-+
-+/* Static init functions */
-+/* AR7  #define static_init_auth { auth_rhosts_init(); auth_sam_init(); auth_unix_init(); auth_winbind_init(); auth_server_init(); auth_domain_init(); auth_builtin_init();} */
-+#define static_init_auth { auth_sam_init(); auth_builtin_init();}
-+
-+/* Static init functions */
-+#define static_init_charset {}
-+
-+/* Static init functions */
-+#define static_init_idmap { idmap_tdb_init();}
-+
-+/* Static init functions */
-+#define static_init_pdb { pdb_smbpasswd_init(); pdb_tdbsam_init(); /* pdb_guest_init(); */}
-+
-+/* Static init functions */
-+/* AR7 #define static_init_rpc { rpc_lsa_init(); rpc_reg_init(); rpc_lsa_ds_init(); rpc_wks_init(); rpc_svcctl_init(); rpc_net_init(); rpc_dfs_init(); rpc_srv_init(); rpc_spoolss_init(); rpc_eventlog_init(); rpc_samr_init();} */
-+#define static_init_rpc { rpc_lsa_init(); /* rpc_reg_init();*/ rpc_lsa_ds_init(); rpc_wks_init(); /* rpc_svcctl_init(); */ rpc_net_init(); rpc_dfs_init(); /* rpc_srv_init(); */ /* rpc_eventlog_init(); */ /* rpc_samr_init(); */}
-+
-+/* Static init functions */
-+#define static_init_vfs {}
-+
-+/* Define to `int' if <sys/types.h> doesn't define. */
-+/* #undef uid_t */
-+
-+/* Whether to build vfs_afsacl as shared module */
-+/* #undef vfs_afsacl_init */
-+
-+/* Whether to build vfs_audit as shared module */
-+#define vfs_audit_init init_module
-+
-+/* Whether to build vfs_cap as shared module */
-+#define vfs_cap_init init_module
-+
-+/* Whether to build vfs_catia as shared module */
-+/* #undef vfs_catia_init */
-+
-+/* Whether to build vfs_default_quota as shared module */
-+#define vfs_default_quota_init init_module
-+
-+/* Whether to build vfs_expand_msdfs as shared module */
-+#define vfs_expand_msdfs_init init_module
-+
-+/* Whether to build vfs_extd_audit as shared module */
-+#define vfs_extd_audit_init init_module
-+
-+/* Whether to build vfs_fake_perms as shared module */
-+#define vfs_fake_perms_init init_module
-+
-+/* Whether to build vfs_full_audit as shared module */
-+#define vfs_full_audit_init init_module
-+
-+/* Whether to build vfs_netatalk as shared module */
-+#define vfs_netatalk_init init_module
-+
-+/* Whether to build vfs_readonly as shared module */
-+#define vfs_readonly_init init_module
-+
-+/* Whether to build vfs_recycle as shared module */
-+#define vfs_recycle_init init_module
-+
-+/* Whether to build vfs_shadow_copy as shared module */
-+#define vfs_shadow_copy_init init_module
-+
-+/* Define to `unsigned short' if <sys/types.h> does not define. */
-+/* #undef wchar_t */
-diff -urN samba-3.0.24.orig/source/include/debug.h samba-3.0.24/source/include/debug.h
---- samba-3.0.24.orig/source/include/debug.h   2006-04-20 04:29:39.000000000 +0200
-+++ samba-3.0.24/source/include/debug.h        2007-08-07 09:38:18.000000000 +0200
-@@ -162,6 +162,26 @@
-  * will remove the extra conditional test.
-  */
-+#if 1 /* AR7 */
-+
-+#define DEBUGLVL( level ) (0)
-+#define DEBUGLVLC( dbgc_class, level ) (0)
-+#ifndef SAMBA_DEBUG
-+#define DEBUG( level, body ) (0)
-+#define Log(x) (0)
-+#else
-+void _fDebug(char *fmt, ...);
-+#define DEBUG( level, body ) _fDebug  body
-+#define Log(x) _fLog x
-+void _fLog(char *fmt, ...);
-+#endif
-+
-+#define DEBUGC( dbgc_class, level, body ) (0)
-+#define DEBUGADD( level, body ) (0)
-+#define DEBUGADDC( dbgc_class, level, body ) (0)
-+
-+#else
-+
- #define DEBUGLVL( level ) \
-   ( ((level) <= MAX_DEBUG_LEVEL) && \
-      ((DEBUGLEVEL_CLASS[ DBGC_CLASS ] >= (level))||  \
-@@ -208,8 +228,13 @@
-             DEBUGLEVEL_CLASS[ DBGC_ALL   ] >= (level))  ) \
-        && (dbgtext body) )
-+#endif /* AR7 */
-+
-+
- /* Print a separator to the debug log. */
- #define DEBUGSEP(level)\
-       DEBUG((level),("===============================================================\n"))
-+
-+
- #endif
-diff -urN samba-3.0.24.orig/source/include/local.h samba-3.0.24/source/include/local.h
---- samba-3.0.24.orig/source/include/local.h   2006-04-20 04:29:39.000000000 +0200
-+++ samba-3.0.24/source/include/local.h        2007-07-17 13:19:05.000000000 +0200
-@@ -16,7 +16,8 @@
-    only important messages. This gives *much* smaller binaries
- */
- #ifndef MAX_DEBUG_LEVEL
--#define MAX_DEBUG_LEVEL 1000
-+/* AR7 #define MAX_DEBUG_LEVEL 1000 */
-+#define MAX_DEBUG_LEVEL 0
- #endif
- /* This defines the section name in the configuration file that will contain */
-@@ -49,7 +50,8 @@
- #define MAX_DIRECTORY_HANDLES 2048
- /* maximum number of file caches per smbd */
--#define MAX_WRITE_CACHES 10
-+/* #define MAX_WRITE_CACHES 10 */
-+#define MAX_WRITE_CACHES 2 /* AVM */
- /* define what facility to use for syslog */
- #ifndef SYSLOG_FACILITY
-diff -urN samba-3.0.24.orig/source/include/smb.h samba-3.0.24/source/include/smb.h
---- samba-3.0.24.orig/source/include/smb.h     2007-02-04 19:59:23.000000000 +0100
-+++ samba-3.0.24/source/include/smb.h  2007-08-07 09:38:18.000000000 +0200
-@@ -1436,6 +1436,7 @@
- #define FLAGS2_LONG_PATH_COMPONENTS    0x0001
- #define FLAGS2_EXTENDED_ATTRIBUTES     0x0002
- #define FLAGS2_SMB_SECURITY_SIGNATURES 0x0004
-+#define FLAGS2_UNKNOWN_BIT4            0x0010
- #define FLAGS2_IS_LONG_NAME            0x0040
- #define FLAGS2_EXTENDED_SECURITY       0x0800 
- #define FLAGS2_DFS_PATHNAMES           0x1000
-@@ -1499,7 +1500,8 @@
- /* Remote architectures we know about. */
- enum remote_arch_types {RA_UNKNOWN, RA_WFWG, RA_OS2, RA_WIN95, RA_WINNT,
--                      RA_WIN2K, RA_WINXP, RA_WIN2K3, RA_SAMBA, RA_CIFSFS};
-+                      RA_WIN2K, RA_WINXP, RA_WIN2K3, RA_VISTA,
-+                      RA_SAMBA, RA_CIFSFS};
- /* case handling */
- enum case_handling {CASE_LOWER,CASE_UPPER};
-diff -urN samba-3.0.24.orig/source/include/smb_macros.h samba-3.0.24/source/include/smb_macros.h
---- samba-3.0.24.orig/source/include/smb_macros.h      2006-04-20 04:29:39.000000000 +0200
-+++ samba-3.0.24/source/include/smb_macros.h   2007-08-07 09:38:18.000000000 +0200
-@@ -310,7 +310,6 @@
- #if defined(PARANOID_MALLOC_CHECKER)
- #define PRS_ALLOC_MEM(ps, type, count) (type *)prs_alloc_mem_((ps),sizeof(type),(count))
--#define PRS_ALLOC_MEM_VOID(ps, size) prs_alloc_mem_((ps),(size),1)
- /* Get medieval on our ass about malloc.... */
-@@ -354,7 +353,6 @@
- #define __location__ __FILE__ ":" __LINESTR__
- #define PRS_ALLOC_MEM(ps, type, count) (type *)prs_alloc_mem((ps),sizeof(type),(count))
--#define PRS_ALLOC_MEM_VOID(ps, size) prs_alloc_mem((ps),(size),1)
- /* Regular malloc code. */
-diff -urN samba-3.0.24.orig/source/lib/dummysmbd.c samba-3.0.24/source/lib/dummysmbd.c
---- samba-3.0.24.orig/source/lib/dummysmbd.c   2006-04-20 04:29:23.000000000 +0200
-+++ samba-3.0.24/source/lib/dummysmbd.c        2007-08-07 09:38:18.000000000 +0200
-@@ -38,3 +38,9 @@
- {
-       return False;
- }
-+
-+NTSTATUS can_delete_directory(struct connection_struct *conn,
-+                                const char *dirname)
-+{
-+      return NT_STATUS_OK;
-+}
-diff -urN samba-3.0.24.orig/source/lib/fsusage.c samba-3.0.24/source/lib/fsusage.c
---- samba-3.0.24.orig/source/lib/fsusage.c     2005-02-25 18:59:32.000000000 +0100
-+++ samba-3.0.24/source/lib/fsusage.c  2007-07-17 13:19:05.000000000 +0200
-@@ -51,6 +51,8 @@
- #define CONVERT_BLOCKS(B) adjust_blocks ((SMB_BIG_UINT)(B), (SMB_BIG_UINT)fsd.f_fsize, (SMB_BIG_UINT)512)
-       struct statfs fsd;
-+
-+// #error STAT_STATFS3_OSF1
-       if (statfs (path, &fsd, sizeof (struct statfs)) != 0)
-               return -1;
- #endif /* STAT_STATFS3_OSF1 */
-@@ -59,6 +61,7 @@
- #define CONVERT_BLOCKS(B) adjust_blocks ((SMB_BIG_UINT)(B), (SMB_BIG_UINT)1024, (SMB_BIG_UINT)512)    
-       struct fs_data fsd;
-       
-+// #error STAT_STATFS2_FS_DATA
-       if (statfs (path, &fsd) != 1)
-               return -1;
-       
-@@ -70,6 +73,7 @@
- #define CONVERT_BLOCKS(B) adjust_blocks ((SMB_BIG_UINT)(B), (SMB_BIG_UINT)fsd.f_bsize, (SMB_BIG_UINT)512)
-       struct statfs fsd;
-       
-+// #error STAT_STATFS2_FS_BSIZE
-       if (statfs (path, &fsd) < 0)
-               return -1;
-       
-@@ -93,6 +97,7 @@
-       
-       struct statfs fsd;
-       
-+// #error STAT_STATFS2_FSIZE
-       if (statfs (path, &fsd) < 0)
-               return -1;
- #endif /* STAT_STATFS2_FSIZE */
-@@ -114,6 +119,7 @@
-       
-       struct statfs fsd;
-+// #error STAT_STATFS4
-       if (statfs (path, &fsd, sizeof fsd, 0) < 0)
-               return -1;
-       /* Empirically, the block counts on most SVR3 and SVR3-derived
-@@ -127,9 +133,11 @@
-       adjust_blocks ((SMB_BIG_UINT)(B), fsd.f_frsize ? (SMB_BIG_UINT)fsd.f_frsize : (SMB_BIG_UINT)fsd.f_bsize, (SMB_BIG_UINT)512)
- #ifdef STAT_STATVFS64
-+// #error STAT_STATVFS64
-       struct statvfs64 fsd;
-       if (statvfs64(path, &fsd) < 0) return -1;
- #else
-+// #error STAT_STATVFS
-       struct statvfs fsd;
-       if (statvfs(path, &fsd) < 0) return -1;
- #endif
-@@ -139,6 +147,7 @@
- #endif /* STAT_STATVFS */
- #ifndef CONVERT_BLOCKS
-+#error no STAT_STATxxx defined - we have no dfree code!
-       /* we don't have any dfree code! */
-       return -1;
- #else
-diff -urN samba-3.0.24.orig/source/lib/iconv.c samba-3.0.24/source/lib/iconv.c
---- samba-3.0.24.orig/source/lib/iconv.c       2007-02-04 19:59:17.000000000 +0100
-+++ samba-3.0.24/source/lib/iconv.c    2007-07-17 13:19:05.000000000 +0200
-@@ -388,7 +388,10 @@
-       while (*inbytesleft >= 2 && *outbytesleft >= 1) {
-               (*outbuf)[0] = (*inbuf)[0];
--              if ((*inbuf)[1]) ir_count++;
-+              if ((*inbuf)[1]) {
-+                      ir_count++;
-+                      (*outbuf)[0] = '_'; // AR7
-+              }
-               (*inbytesleft)  -= 2;
-               (*outbytesleft) -= 1;
-               (*inbuf)  += 2;
-diff -urN samba-3.0.24.orig/source/lib/pidfile.c samba-3.0.24/source/lib/pidfile.c
---- samba-3.0.24.orig/source/lib/pidfile.c     2007-02-04 19:59:17.000000000 +0100
-+++ samba-3.0.24/source/lib/pidfile.c  2007-07-17 13:19:05.000000000 +0200
-@@ -82,19 +82,22 @@
- {
-       int     fd;
-       char    buf[20];
--      char    *short_configfile;
-       pstring name;
-       pstring pidFile;
-       pid_t pid;
-+#if 0 /* AVM */
-       /* Add a suffix to the program name if this is a process with a
-        * none default configuration file name. */
-       if (strcmp( CONFIGFILE, dyn_CONFIGFILE) == 0) {
-               strncpy( name, program_name, sizeof( name)-1);
-       } else {
--              short_configfile = strrchr( dyn_CONFIGFILE, '/');
-+              char    *short_configfile = strrchr( dyn_CONFIGFILE, '/');
-               slprintf( name, sizeof( name)-1, "%s-%s", program_name, short_configfile+1);
-       }
-+#else
-+      strncpy( name, program_name, sizeof( name)-1);
-+#endif
-       slprintf(pidFile, sizeof(pidFile)-1, "%s/%s.pid", lp_piddir(), name);
-diff -urN samba-3.0.24.orig/source/lib/smbrun.c samba-3.0.24/source/lib/smbrun.c
---- samba-3.0.24.orig/source/lib/smbrun.c      2006-04-20 04:29:23.000000000 +0200
-+++ samba-3.0.24/source/lib/smbrun.c   2007-08-07 09:38:18.000000000 +0200
-@@ -55,7 +55,7 @@
- outfd (or discard it if outfd is NULL).
- ****************************************************************************/
--int smbrun(const char *cmd, int *outfd)
-+static int smbrun_internal(const char *cmd, int *outfd, BOOL sanitize)
- {
-       pid_t pid;
-       uid_t uid = current_user.ut.uid;
-@@ -173,13 +173,36 @@
-       }
- #endif
--      execl("/bin/sh","sh","-c",cmd,NULL);  
-+      {
-+              const char *newcmd = sanitize ? escape_shell_string(cmd) : cmd;
-+              if (!newcmd) {
-+                      exit(82);
-+              }
-+              execl("/bin/sh","sh","-c",newcmd,NULL);  
-+      }
-       
-       /* not reached */
--      exit(82);
-+      exit(83);
-       return 1;
- }
-+/****************************************************************************
-+ Use only in known safe shell calls (printing).
-+****************************************************************************/
-+
-+int smbrun_no_sanitize(const char *cmd, int *outfd)
-+{
-+      return smbrun_internal(cmd, outfd, False);
-+}
-+
-+/****************************************************************************
-+ By default this now sanitizes shell expansion.
-+****************************************************************************/
-+
-+int smbrun(const char *cmd, int *outfd)
-+{
-+      return smbrun_internal(cmd, outfd, True);
-+}
- /****************************************************************************
- run a command being careful about uid/gid handling and putting the output in
-@@ -302,7 +325,7 @@
- #endif
-       execl("/bin/sh", "sh", "-c", cmd, NULL);  
--      
-+
-       /* not reached */
-       exit(82);
-       return 1;
-diff -urN samba-3.0.24.orig/source/lib/util.c samba-3.0.24/source/lib/util.c
---- samba-3.0.24.orig/source/lib/util.c        2007-02-04 19:59:17.000000000 +0100
-+++ samba-3.0.24/source/lib/util.c     2007-08-07 09:38:18.000000000 +0200
-@@ -300,7 +300,11 @@
-       char *p;
-       if ((p = getenv("TMPDIR")))
-               return p;
-+#if 1 /* AR7 */
-+      return "/var/tmp";
-+#else
-       return "/tmp";
-+#endif
- }
- /****************************************************************************
-@@ -2182,6 +2186,9 @@
-       case RA_WIN2K3:
-               fstrcpy(remote_arch, "Win2K3");
-               break;
-+      case RA_VISTA:
-+              fstrcpy(remote_arch, "Vista");
-+              break;
-       case RA_SAMBA:
-               fstrcpy(remote_arch,"Samba");
-               break;
-diff -urN samba-3.0.24.orig/source/lib/util_sec.c samba-3.0.24/source/lib/util_sec.c
---- samba-3.0.24.orig/source/lib/util_sec.c    2007-02-04 19:59:17.000000000 +0100
-+++ samba-3.0.24/source/lib/util_sec.c 2007-08-07 09:38:18.000000000 +0200
-@@ -286,28 +286,6 @@
- }
- /****************************************************************************
-- Lightweight become root - no group change.
--****************************************************************************/
--
--void become_root_uid_only(void)
--{
--      save_re_uid();
--      set_effective_uid(0);
--}
--
--/****************************************************************************
-- Lightweight unbecome root - no group change. Expects we are root already,
-- saves errno across call boundary.
--****************************************************************************/
--
--void unbecome_root_uid_only(void)
--{
--      int saved_errno = errno;
--      restore_re_uid_fromroot();
--      errno = saved_errno;
--}
--
--/****************************************************************************
-  save the real and effective gid for later restoration. Used by the 
-  getgroups code
- ****************************************************************************/
-diff -urN samba-3.0.24.orig/source/lib/util_str.c samba-3.0.24/source/lib/util_str.c
---- samba-3.0.24.orig/source/lib/util_str.c    2007-02-04 19:59:17.000000000 +0100
-+++ samba-3.0.24/source/lib/util_str.c 2007-08-07 09:38:18.000000000 +0200
-@@ -680,14 +680,14 @@
-       for(i = 0; i < len; i++) {
-               int val = (src[i] & 0xff);
--              if (isupper_ascii(val) || islower_ascii(val) || isdigit(val) || strchr_m(other_safe_chars, val))
-+              if (isupper_ascii(val) || islower_ascii(val) || isdigit(val) || strchr_m(other_safe_chars, val)) {
-                       dest[i] = src[i];
--              else
-+              } else {
-                       dest[i] = '_';
-+              }
-       }
-       dest[i] = '\0';
--
-       return dest;
- }
-@@ -2426,3 +2426,165 @@
-       return True;
- }
-+
-+/*******************************************************************
-+ Add a shell escape character '\' to any character not in a known list
-+ of characters. UNIX charset format.
-+*******************************************************************/
-+
-+#define INCLUDE_LIST "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_/ \t.,"
-+#define INSIDE_DQUOTE_LIST "$`\n\"\\"
-+
-+char *escape_shell_string(const char *src)
-+{
-+      size_t srclen = strlen(src);
-+      char *ret = SMB_MALLOC((srclen * 2) + 1);
-+      char *dest = ret;
-+      BOOL in_s_quote = False;
-+      BOOL in_d_quote = False;
-+      BOOL next_escaped = False;
-+
-+      if (!ret) {
-+              return NULL;
-+      }
-+
-+      while (*src) {
-+              size_t c_size = next_mb_char_size(src);
-+
-+              if (c_size == (size_t)-1) {
-+                      SAFE_FREE(ret);
-+                      return NULL;
-+              }
-+
-+              if (c_size > 1) {
-+                      memcpy(dest, src, c_size);
-+                      src += c_size;
-+                      dest += c_size;
-+                      next_escaped = False;
-+                      continue;
-+              }
-+
-+              /*
-+               * Deal with backslash escaped state.
-+               * This only lasts for one character.
-+               */
-+
-+              if (next_escaped) {
-+                      *dest++ = *src++;
-+                      next_escaped = False;
-+                      continue;
-+              }
-+
-+              /*
-+               * Deal with single quote state. The
-+               * only thing we care about is exiting
-+               * this state.
-+               */
-+
-+              if (in_s_quote) {
-+                      if (*src == '\'') {
-+                              in_s_quote = False;
-+                      }
-+                      *dest++ = *src++;
-+                      continue;
-+              }
-+
-+              /* 
-+               * Deal with double quote state. The most
-+               * complex state. We must cope with \, meaning
-+               * possibly escape next char (depending what it
-+               * is), ", meaning exit this state, and possibly
-+               * add an \ escape to any unprotected character
-+               * (listed in INSIDE_DQUOTE_LIST).
-+               */
-+
-+              if (in_d_quote) {
-+                      if (*src == '\\') {
-+                              /* 
-+                               * Next character might be escaped.
-+                               * We have to peek. Inside double
-+                               * quotes only INSIDE_DQUOTE_LIST
-+                               * characters are escaped by a \.
-+                               */
-+
-+                              char nextchar;
-+
-+                              c_size = next_mb_char_size(&src[1]);
-+                              if (c_size == (size_t)-1) {
-+                                      SAFE_FREE(ret);
-+                                      return NULL;
-+                              }
-+                              if (c_size > 1) {
-+                                      /*
-+                                       * Don't escape the next char.
-+                                       * Just copy the \.
-+                                       */
-+                                      *dest++ = *src++;
-+                                      continue;
-+                              }
-+
-+                              nextchar = src[1];
-+
-+                              if (nextchar && strchr(INSIDE_DQUOTE_LIST, (int)nextchar)) {
-+                                      next_escaped = True;
-+                              }
-+                              *dest++ = *src++;
-+                              continue;
-+                      }
-+
-+                      if (*src == '\"') {
-+                              /* Exit double quote state. */
-+                              in_d_quote = False;
-+                              *dest++ = *src++;
-+                              continue;
-+                      }
-+
-+                      /*
-+                       * We know the character isn't \ or ",
-+                       * so escape it if it's any of the other
-+                       * possible unprotected characters.
-+                       */
-+
-+                      if (strchr(INSIDE_DQUOTE_LIST, (int)*src)) {
-+                              *dest++ = '\\';
-+                      }
-+                      *dest++ = *src++;
-+                      continue;
-+              }
-+
-+              /* 
-+               * From here to the end of the loop we're
-+               * not in the single or double quote state.
-+               */
-+
-+              if (*src == '\\') {
-+                      /* Next character must be escaped. */
-+                      next_escaped = True;
-+                      *dest++ = *src++;
-+                      continue;
-+              }
-+
-+              if (*src == '\'') {
-+                      /* Go into single quote state. */
-+                      in_s_quote = True;
-+                      *dest++ = *src++;
-+                      continue;
-+              }
-+
-+              if (*src == '\"') {
-+                      /* Go into double quote state. */
-+                      in_d_quote = True;
-+                      *dest++ = *src++;
-+                      continue;
-+              }
-+
-+              /* Check if we need to escape the character. */
-+
-+              if (!strchr(INCLUDE_LIST, (int)*src)) {
-+                      *dest++ = '\\';
-+              }
-+              *dest++ = *src++;
-+      }
-+      *dest++ = '\0';
-+      return ret;
-+}
-diff -urN samba-3.0.24.orig/source/libads/authdata.c samba-3.0.24/source/libads/authdata.c
---- samba-3.0.24.orig/source/libads/authdata.c 2006-02-23 17:29:34.000000000 +0100
-+++ samba-3.0.24/source/libads/authdata.c      2007-08-07 09:38:18.000000000 +0200
-@@ -120,10 +120,14 @@
-               return False;
-       if (UNMARSHALLING(ps)) {
--              array->krb_sid_and_attrs = PRS_ALLOC_MEM(ps, KRB_SID_AND_ATTRS, num);
--              if (!array->krb_sid_and_attrs) {
--                      DEBUG(3, ("No memory available\n"));
--                      return False;
-+              if (num) {
-+                      array->krb_sid_and_attrs = PRS_ALLOC_MEM(ps, KRB_SID_AND_ATTRS, num);
-+                      if (!array->krb_sid_and_attrs) {
-+                              DEBUG(3, ("No memory available\n"));
-+                              return False;
-+                      }
-+              } else {
-+                      array->krb_sid_and_attrs = NULL;
-               }
-       }
-@@ -184,10 +188,14 @@
-               return False;
-       if (UNMARSHALLING(ps)) {
--              array->group_membership = PRS_ALLOC_MEM(ps, GROUP_MEMBERSHIP, num);
--              if (!array->group_membership) {
--                      DEBUG(3, ("No memory available\n"));
--                      return False;
-+              if (num) {
-+                      array->group_membership = PRS_ALLOC_MEM(ps, GROUP_MEMBERSHIP, num);
-+                      if (!array->group_membership) {
-+                              DEBUG(3, ("No memory available\n"));
-+                              return False;
-+                      }
-+              } else {
-+                      array->group_membership = NULL;
-               }
-       }
-@@ -456,10 +464,14 @@
-               return False;
-       if (UNMARSHALLING(ps) && length) {
--              data->signature.buffer = PRS_ALLOC_MEM(ps, uint8, siglen);
--              if (!data->signature.buffer) {
--                      DEBUG(3, ("No memory available\n"));
--                      return False;
-+              if (siglen) {
-+                      data->signature.buffer = PRS_ALLOC_MEM(ps, uint8, siglen);
-+                      if (!data->signature.buffer) {
-+                              DEBUG(3, ("No memory available\n"));
-+                              return False;
-+                      }
-+              } else {
-+                      data->signature.buffer = NULL;
-               }
-       }
---- samba-3.0.24/source/libsmb/clifile.c.orig  2009-12-21 07:53:20.000000000 +0100
-+++ samba-3.0.24/source/libsmb/clifile.c       2009-12-21 07:51:10.000000000 +0100
-@@ -21,6 +21,8 @@
- #include "includes.h"
-+#ifndef AVM_SMALLER
-+
- /****************************************************************************
-  Hard/Symlink a file (UNIX extensions).
-  Creates new name (sym)linked to oldname.
-@@ -71,6 +73,8 @@
-       return True;
- }
-+#endif /* AVM_SMALLER */
-+
- /****************************************************************************
-  Map standard UNIX permissions onto wire representations.
- ****************************************************************************/
-@@ -165,6 +169,8 @@
-       }
- }
-+#ifndef AVM_SMALLER
-+
- /****************************************************************************
-  Do a POSIX getfacl (UNIX extensions).
- ****************************************************************************/
-@@ -785,6 +791,8 @@
-       return SVAL(cli->inbuf,smb_vwv2);
- }
-+#endif /* AVM_SMALLER */
-+
- /****************************************************************************
-  Close a file.
- ****************************************************************************/
-@@ -813,6 +821,8 @@
-+#ifndef AVM_SMALLER
-+
- /****************************************************************************
-  send a lock with a specified locktype 
-  this is used for testing LOCKING_ANDX_CANCEL_LOCK
-@@ -1760,3 +1770,6 @@
-       return cli_get_ea_list(cli, setup, param, 6, ctx, pnum_eas, pea_list);
- }
-+
-+#endif /* AVM_SMALLER */
-+
-diff -urN samba-3.0.24.orig/source/libsmb/namequery.c samba-3.0.24/source/libsmb/namequery.c
---- samba-3.0.24.orig/source/libsmb/namequery.c        2007-02-04 19:59:20.000000000 +0100
-+++ samba-3.0.24/source/libsmb/namequery.c     2007-07-17 13:19:05.000000000 +0200
-@@ -1024,6 +1024,7 @@
- static BOOL resolve_ads(const char *name, int name_type,
-                          struct ip_service **return_iplist, int *return_count)
- {
-+#ifdef HAVE_ADS
-       int                     i, j;
-       NTSTATUS                status;
-       TALLOC_CTX              *ctx;
-@@ -1100,6 +1101,9 @@
-               
-       talloc_destroy(ctx);
-       return True;
-+#else         /* HAVE_ADS */
-+      return False;
-+#endif
- }
- /*******************************************************************
-diff -urN samba-3.0.24.orig/source/libsmb/namequery_dc.c samba-3.0.24/source/libsmb/namequery_dc.c
---- samba-3.0.24.orig/source/libsmb/namequery_dc.c     2006-04-20 04:29:25.000000000 +0200
-+++ samba-3.0.24/source/libsmb/namequery_dc.c  2007-07-17 13:19:05.000000000 +0200
-@@ -31,6 +31,9 @@
-  
- static BOOL ads_dc_name(const char *domain, const char *realm, struct in_addr *dc_ip, fstring srv_name)
- {
-+#if 1 /* AR7 */
-+      return False;
-+#else 
-       ADS_STRUCT *ads;
-       if (!realm && strequal(domain, lp_workgroup()))
-@@ -63,6 +66,7 @@
-                srv_name, inet_ntoa(*dc_ip)));
-       
-       return True;
-+#endif /* AR7 */
- }
- /****************************************************************************
-diff -urN samba-3.0.24.orig/source/locking/locking.c samba-3.0.24/source/locking/locking.c
---- samba-3.0.24.orig/source/locking/locking.c 2007-02-04 19:59:23.000000000 +0100
-+++ samba-3.0.24/source/locking/locking.c      2007-08-07 09:38:18.000000000 +0200
-@@ -1166,6 +1166,11 @@
-               return NT_STATUS_ACCESS_DENIED;
-       }
-+      /* Don't allow delete on close for non-empty directories. */
-+      if (fsp->is_directory) {
-+              return can_delete_directory(fsp->conn, fsp->fsp_name);
-+      }
-+
-       return NT_STATUS_OK;
- }
-diff -urN samba-3.0.24.orig/source/Makefile samba-3.0.24/source/Makefile
---- samba-3.0.24.orig/source/Makefile  1970-01-01 01:00:00.000000000 +0100
-+++ samba-3.0.24/source/Makefile       2008-02-28 11:21:14.000000000 +0100
-@@ -0,0 +1,1719 @@
-+#########################################################################
-+# Makefile.in for Samba - rewritten for autoconf support
-+# Copyright Andrew Tridgell 1992-1998
-+# Copyright (C) 2001 by Martin Pool <mbp@samba.org>
-+# Copyright Andrew Bartlett 2002
-+# Copyright (C) 2003 Jim McDonough <jmcd@us.ibm.com>
-+# Copyright (C) 2002-2003 Jelmer Vernooij <jelmer@samba.org>
-+###########################################################################
-+
-+SOURCEROOT=$(shell pwd)/../../../..
-+SHAREDLIBS=$(SOURCEROOT)/sharedlibs
-+
-+include ${SHAREDLIBS}/ar7def.mk
-+
-+# AR7
-+# prefix=/usr/local/samba
-+prefix=/var/samba
-+exec_prefix=${prefix}
-+
-+# AR7
-+# LIBS= -lcrypt -lresolv -lnsl -ldl
-+LIBS= -lcrypt -ldl -lpthread
-+# AR7
-+# CC=gcc
-+CC=${TARGET}-gcc
-+RANLIB = ${TARGET}-ranlib
-+AR = ${TARGET}-ar
-+
-+SHLD=${CC} ${CFLAGS}
-+# AR7
-+# CFLAGS= -O -D_SAMBA_BUILD_
-+CFLAGS= -Os -D_SAMBA_BUILD_ -DAVM_NO_PRINTING
-+CFLAGS+= -DAVM_NO_POPT
-+CFLAGS+= -DAVM_SMALLER
-+
-+# uncomment this to get debugs
-+# CFLAGS += -DSAMBA_DEBUG
-+
-+# AR7
-+# CPPFLAGS= -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE
-+CPPFLAGS= -D_GNU_SOURCE
-+EXEEXT=
-+LDFLAGS=
-+AR=ar
-+LDSHFLAGS=-shared -Wl,-Bsymbolic 
-+WINBIND_NSS_LDSHFLAGS=-shared -Wl,-Bsymbolic 
-+AWK=gawk
-+DYNEXP=-Wl,--export-dynamic
-+PYTHON=
-+PERL=/usr/bin/perl
-+
-+ifeq ($(WITH_LFS),yes)
-+CFLAGS+= -DWITH_LFS
-+CPPFLAGS+= -DWITH_LFS
-+endif
-+
-+TERMLDFLAGS=
-+# AR7 
-+# TERMLIBS=-lreadline -lncurses
-+TERMLIBS=
-+PRINT_LIBS=
-+AUTH_LIBS=-lcrypt 
-+ACL_LIBS=
-+PASSDB_LIBS=
-+IDMAP_LIBS=
-+KRB5LIBS=
-+LDAP_LIBS=
-+
-+INSTALLCMD=/usr/bin/install -c
-+INSTALLCLIENTCMD_SH=$(INSTALLCMD)
-+INSTALLCLIENTCMD_A=:
-+
-+
-+srcdir=`pwd`
-+builddir=`pwd`
-+SHELL=/bin/sh
-+DESTDIR=/
-+
-+# XXX: Perhaps this should be /bin/sh instead -- apparently autoconf
-+# will search for a POSIX-compliant shell, and that might not be
-+# /bin/sh on some platforms.  I guess it's not a big problem -- mbp
-+
-+# See the autoconf manual "Installation Directory Variables" for a
-+# discussion of the subtle use of these variables.
-+
-+# AR7
-+# BASEDIR= /usr/local/samba
-+BASEDIR= /var/samba
-+BINDIR = ${exec_prefix}/bin
-+# sbindir is mapped to bindir when compiling SAMBA in 2.0.x compatibility mode.
-+SBINDIR = ${exec_prefix}/sbin
-+LIBDIR = ${prefix}/lib
-+VFSLIBDIR = $(LIBDIR)/vfs
-+PDBLIBDIR = $(LIBDIR)/pdb
-+RPCLIBDIR = $(LIBDIR)/rpc
-+IDMAPLIBDIR = $(LIBDIR)/idmap
-+CHARSETLIBDIR = $(LIBDIR)/charset
-+AUTHLIBDIR = $(LIBDIR)/auth
-+CONFIGDIR = ${LIBDIR}
-+VARDIR = ${prefix}/var
-+MANDIR = ${prefix}/man
-+DATADIR = ${prefix}/share
-+
-+# The permissions to give the executables
-+INSTALLPERMS = 0755
-+
-+# set these to where to find various files
-+# These can be overridden by command line switches (see smbd(8))
-+# or in smb.conf (see smb.conf(5))
-+LOGFILEBASE = ${VARDIR}
-+CONFIGFILE = $(CONFIGDIR)/smb.conf
-+LMHOSTSFILE = $(CONFIGDIR)/lmhosts
-+
-+# This is where smbpasswd et al go
-+PRIVATEDIR = ${prefix}/private
-+
-+SMB_PASSWD_FILE = $(PRIVATEDIR)/smbpasswd
-+PRIVATE_DIR = $(PRIVATEDIR)
-+
-+# This is where SWAT images and help files go
-+SWATDIR = ${prefix}/swat
-+
-+# the directory where lock files go
-+LOCKDIR = ${VARDIR}/locks
-+
-+# the directory where pid files go
-+PIDDIR = ${VARDIR}/locks
-+
-+LIBSMBCLIENT=bin/libsmbclient.a bin/libsmbclient.so
-+LIBSMBCLIENT_MAJOR=0
-+LIBSMBCLIENT_MINOR=1
-+
-+LIBSMBSHAREMODES=bin/libsmbsharemodes.a bin/libsmbsharemodes.so
-+LIBSMBSHAREMODES_MAJOR=0
-+LIBSMBSHAREMODES_MINOR=1
-+
-+
-+FLAGS1 = $(CFLAGS) -I./popt -Iinclude -I$(srcdir)/include -I$(srcdir)/ubiqx  -I. $(CPPFLAGS) -I$(srcdir) -I$(srcdir)/tdb
-+FLAGS2 = 
-+FLAGS3 = 
-+FLAGS4 = 
-+FLAGS5 = $(FLAGS1) $(FLAGS2) $(FLAGS3) $(FLAGS4)
-+FLAGS  = $(ISA) $(FLAGS5) 
-+
-+PASSWD_FLAGS = -DSMB_PASSWD_FILE=\"$(SMB_PASSWD_FILE)\" -DPRIVATE_DIR=\"$(PRIVATE_DIR)\"
-+PATH_FLAGS1 = -DCONFIGFILE=\"$(CONFIGFILE)\"  -DSBINDIR=\"$(SBINDIR)\"
-+PATH_FLAGS2 = $(PATH_FLAGS1) -DBINDIR=\"$(BINDIR)\" -DDRIVERFILE=\"$(DRIVERFILE)\" 
-+PATH_FLAGS3 = $(PATH_FLAGS2) -DLMHOSTSFILE=\"$(LMHOSTSFILE)\" 
-+PATH_FLAGS4 = $(PATH_FLAGS3) -DSWATDIR=\"$(SWATDIR)\"  -DLOCKDIR=\"$(LOCKDIR)\" -DPIDDIR=\"$(PIDDIR)\"
-+PATH_FLAGS5 = $(PATH_FLAGS4) -DLIBDIR=\"$(LIBDIR)\" \
-+            -DLOGFILEBASE=\"$(LOGFILEBASE)\" -DSHLIBEXT=\"so\"
-+PATH_FLAGS6 = $(PATH_FLAGS5) -DCONFIGDIR=\"$(CONFIGDIR)\"
-+PATH_FLAGS = $(PATH_FLAGS6) $(PASSWD_FLAGS)
-+
-+# Note that all executable programs now provide for an optional executable suffix.
-+
-+SBIN_PROGS = bin/smbd bin/nmbd bin/swat  bin/winbindd$(EXEEXT)
-+
-+BIN_PROGS1 = bin/smbclient bin/net bin/smbspool \
-+      bin/testparm bin/smbstatus 
-+BIN_PROGS2 = bin/smbcontrol bin/smbtree bin/tdbbackup \
-+      bin/nmblookup bin/pdbedit bin/tdbdump \
-+      bin/tdbtool
-+BIN_PROGS3 = bin/smbpasswd bin/rpcclient bin/smbcacls \
-+      bin/profiles bin/ntlm_auth \
-+      bin/smbcquotas
-+
-+TORTURE_PROGS = bin/smbtorture bin/msgtest \
-+      bin/masktest bin/locktest \
-+      bin/locktest2 bin/nsstest bin/vfstest
-+
-+BIN_PROGS = $(BIN_PROGS1) $(BIN_PROGS2) $(BIN_PROGS3)  bin/wbinfo$(EXEEXT)
-+
-+EVERYTHING_PROGS = bin/debug2html bin/smbfilter bin/talloctort \
-+      bin/log2pcap
-+
-+SHLIBS =  nsswitch/libnss_winbind.so nsswitch/libnss_wins.so libsmbclient libsmbsharemodes
-+
-+SCRIPTS = $(srcdir)/script/smbtar $(builddir)/script/findsmb
-+
-+VFS_MODULES =  bin/recycle.so bin/audit.so bin/extd_audit.so bin/full_audit.so bin/netatalk.so bin/fake_perms.so bin/default_quota.so bin/readonly.so bin/cap.so bin/expand_msdfs.so bin/shadow_copy.so
-+PDB_MODULES = 
-+RPC_MODULES = 
-+IDMAP_MODULES = 
-+CHARSET_MODULES =  bin/CP850.so bin/CP437.so
-+AUTH_MODULES = 
-+MODULES = $(VFS_MODULES) $(PDB_MODULES) $(RPC_MODULES) $(IDMAP_MODULES) $(CHARSET_MODULES) $(AUTH_MODULES)
-+
-+######################################################################
-+# object file lists
-+######################################################################
-+
-+TDBBASE_OBJ = tdb/tdb.o tdb/spinlock.o
-+
-+TDB_OBJ = $(TDBBASE_OBJ) tdb/tdbutil.o tdb/tdbback.o
-+
-+SMBLDAP_OBJ =  
-+
-+VERSION_OBJ = lib/version.o
-+
-+DOSERR_OBJ = libsmb/doserr.o
-+
-+SNPRINTF_OBJ = lib/snprintf.o
-+
-+WBCOMMON_OBJ = nsswitch/wb_common.o
-+
-+AFS_OBJ = lib/afs.o
-+
-+AFS_SETTOKEN_OBJ = lib/afs_settoken.o
-+
-+SERVER_MUTEX_OBJ = lib/server_mutex.o
-+
-+ERRORMAP_OBJ = libsmb/errormap.o
-+
-+PASSCHANGE_OBJ = libsmb/passchange.o
-+
-+SOCKET_WRAPPER_OBJ = lib/socket_wrapper.o
-+
-+RPC_PARSE_OBJ0 = rpc_parse/parse_prs.o rpc_parse/parse_misc.o
-+
-+LIB_OBJ = $(VERSION_OBJ) lib/charcnv.o lib/debug.o lib/fault.o \
-+          lib/getsmbpass.o lib/interface.o lib/md4.o \
-+          lib/interfaces.o lib/pidfile.o lib/replace.o lib/replace1.o \
-+          lib/signal.o lib/system.o lib/sendfile.o lib/time.o \
-+        lib/ufc.o lib/genrand.o lib/username.o \
-+        lib/util_pw.o lib/access.o lib/smbrun.o \
-+        lib/bitmap.o lib/crc32.o $(SNPRINTF_OBJ) lib/dprintf.o \
-+        lib/xfile.o lib/wins_srv.o \
-+        lib/util_str.o lib/clobber.o lib/util_sid.o lib/util_uuid.o \
-+        lib/util_unistr.o lib/util_file.o lib/data_blob.o \
-+        lib/util.o lib/util_sock.o lib/sock_exec.o lib/util_sec.o \
-+        lib/talloc.o lib/substitute.o lib/fsusage.o \
-+        lib/ms_fnmatch.o lib/select.o lib/messages.o \
-+        lib/tallocmsg.o lib/dmallocmsg.o libsmb/smb_signing.o \
-+        lib/md5.o lib/hmacmd5.o lib/iconv.o \
-+        nsswitch/wb_client.o $(WBCOMMON_OBJ) \
-+        lib/pam_errors.o intl/lang_tdb.o lib/account_pol.o \
-+        lib/adt_tree.o lib/gencache.o $(TDB_OBJ) \
-+        lib/module.o lib/ldap_escape.o  \
-+        lib/privileges.o lib/secdesc.o lib/secace.o lib/secacl.o \
-+      lib/arc4.o lib/sharesec.o lib/events.o lib/util_nscd.o
-+
-+LIB_NONSMBD_OBJ = $(LIB_OBJ) lib/dummysmbd.o lib/dummyroot.o
-+
-+READLINE_OBJ = lib/readline.o
-+
-+# Also depends on  $(SECRETS_OBJ) $(LIBSAMBA_OBJ)
-+# Be sure to include them into your application
-+
-+POPT_LIB_OBJ = lib/popt_common.o 
-+
-+UBIQX_OBJ = ubiqx/ubi_BinTree.o ubiqx/ubi_Cache.o ubiqx/ubi_SplayTree.o \
-+            ubiqx/ubi_dLinkList.o ubiqx/ubi_sLinkList.o 
-+
-+PARAM_OBJ = dynconfig.o param/loadparm.o param/params.o
-+
-+KRBCLIENT_OBJ = libads/kerberos.o libads/ads_status.o 
-+
-+LIBADS_OBJ = libads/ldap.o libads/ldap_printer.o libads/sasl.o \
-+           libads/krb5_setpw.o libads/ldap_user.o \
-+           libads/ads_struct.o libads/kerberos_keytab.o \
-+             libads/disp_sec.o libads/ads_utils.o libads/ldap_utils.o \
-+           libads/authdata.o
-+
-+LIBADS_SERVER_OBJ = libads/util.o libads/kerberos_verify.o
-+
-+SECRETS_OBJ = passdb/secrets.o passdb/machine_sid.o 
-+
-+LIBNMB_OBJ = libsmb/unexpected.o libsmb/namecache.o libsmb/nmblib.o \
-+           libsmb/namequery.o libsmb/conncache.o 
-+
-+LIBSAMBA_OBJ = libsmb/nterr.o libsmb/smbdes.o libsmb/smbencrypt.o libsmb/ntlm_check.o \
-+      libsmb/ntlmssp.o libsmb/ntlmssp_parse.o libsmb/ntlmssp_sign.o
-+
-+LIBSMB_OBJ = \
-+              libsmb/clientgen.o \
-+              libsmb/cliconnect.o \
-+              libsmb/clirap.o \
-+              libsmb/clistr.o \
-+              libsmb/clitrans.o \
-+              libsmb/clifile.o \
-+           lib/util_seaccess.o \
-+              libsmb/clikrb5.o \
-+              libsmb/clispnego.o \
-+              libsmb/asn1.o \
-+              libsmb/clierror.o \
-+             libsmb/smberr.o libsmb/credentials.o libsmb/pwd_cache.o \
-+           libsmb/clioplock.o $(ERRORMAP_OBJ) \
-+           $(DOSERR_OBJ) \
-+           $(RPC_PARSE_OBJ1) $(LIBSAMBA_OBJ) $(LIBNMB_OBJ) 
-+
-+# LIBSMB_OBJ = \
-+#             libsmb/clientgen.o \
-+#              libsmb/cliconnect.o \
-+#             libsmb/clifile.o \
-+#          libsmb/clikrb5.o libsmb/clispnego.o libsmb/asn1.o \
-+#          libsmb/clirap.o libsmb/clierror.o libsmb/climessage.o \
-+#          libsmb/clireadwrite.o libsmb/clilist.o libsmb/cliprint.o \
-+#          libsmb/clitrans.o libsmb/clisecdesc.o libsmb/clidgram.o \
-+#          libsmb/clistr.o lib/util_seaccess.o \
-+#          libsmb/cliquota.o libsmb/clifsinfo.o libsmb/clidfs.o \
-+#             libsmb/smberr.o libsmb/credentials.o libsmb/pwd_cache.o \
-+#          libsmb/clioplock.o $(ERRORMAP_OBJ) libsmb/clirap2.o \
-+#          $(DOSERR_OBJ) \
-+#          $(RPC_PARSE_OBJ1) $(LIBSAMBA_OBJ) $(LIBNMB_OBJ) 
-+
-+
-+LIBMSRPC_OBJ = rpc_client/cli_lsarpc.o rpc_client/cli_samr.o \
-+             rpc_client/cli_netlogon.o rpc_client/cli_srvsvc.o \
-+             rpc_client/cli_wkssvc.o rpc_client/cli_dfs.o \
-+             rpc_client/cli_reg.o $(RPC_CLIENT_OBJ) \
-+             rpc_client/cli_spoolss.o rpc_client/cli_spoolss_notify.o  \
-+             rpc_client/cli_ds.o rpc_client/cli_echo.o \
-+             rpc_client/cli_shutdown.o rpc_client/cli_svcctl.o
-+
-+REGOBJS_OBJ = registry/reg_objects.o
-+
-+REGISTRY_OBJ = registry/reg_frontend.o registry/reg_cachehook.o \
-+               registry/reg_db.o registry/reg_eventlog.o registry/reg_shares.o \
-+               registry/reg_util.o registry/reg_dynamic.o
-+
-+RPC_LSA_OBJ = \
-+
-+# rpc_server/srv_lsa.o rpc_server/srv_lsa_nt.o
-+
-+RPC_NETLOG_OBJ = \
-+
-+# rpc_server/srv_netlog.o rpc_server/srv_netlog_nt.o
-+
-+RPC_SAMR_OBJ = \
-+               rpc_server/srv_samr_util.o
-+
-+# rpc_server/srv_samr.o
-+#  rpc_server/srv_samr_nt.o
-+
-+REGFIO_OBJ = registry/regfio.o
-+
-+RPC_REG_OBJ =  \
-+
-+# rpc_server/srv_reg.o rpc_server/srv_reg_nt.o $(REGFIO_OBJ)
-+
-+RPC_LSA_DS_OBJ = \
-+
-+#   rpc_server/srv_lsa_ds.o rpc_server/srv_lsa_ds_nt.o
-+
-+RPC_SVC_OBJ = \
-+      rpc_server/srv_srvsvc.o \
-+      rpc_server/srv_srvsvc_nt.o
-+
-+
-+
-+RPC_WKS_OBJ = \
-+      rpc_server/srv_wkssvc.o rpc_server/srv_wkssvc_nt.o
-+
-+RPC_SVCCTL_OBJ = \
-+
-+# rpc_server/srv_svcctl.o rpc_server/srv_svcctl_nt.o \
-+#                  services/svc_spoolss.o services/svc_rcinit.o services/services_db.o
-+
-+RPC_DFS_OBJ =  \
-+
-+# rpc_server/srv_dfs.o rpc_server/srv_dfs_nt.o
-+
-+RPC_SPOOLSS_OBJ = \
-+
-+# rpc_server/srv_spoolss.o rpc_server/srv_spoolss_nt.o 
-+
-+RPC_EVENTLOG_OBJ = \
-+
-+# rpc_server/srv_eventlog.o rpc_server/srv_eventlog_nt.o
-+
-+RPC_PIPE_OBJ = \
-+              rpc_server/srv_pipe_hnd.o \
-+             rpc_server/srv_pipe.o \
-+              rpc_server/srv_lsa_hnd.o
-+
-+#              rpc_server/srv_util.o
-+
-+
-+RPC_ECHO_OBJ = rpc_server/srv_echo.o rpc_server/srv_echo_nt.o
-+
-+RPC_SERVER_OBJ =  $(RPC_LSA_OBJ) $(RPC_REG_OBJ) $(RPC_LSA_DS_OBJ) $(RPC_WKS_OBJ) $(RPC_SVCCTL_OBJ) $(RPC_NETLOG_OBJ) $(RPC_DFS_OBJ) $(RPC_SVC_OBJ) $(RPC_EVENTLOG_OBJ) $(RPC_SAMR_OBJ) $(RPC_PIPE_OBJ)
-+
-+# this includes only the low level parse code, not stuff
-+# that requires knowledge of security contexts
-+RPC_PARSE_OBJ1 = $(RPC_PARSE_OBJ0) rpc_parse/parse_sec.o
-+
-+RPC_PARSE_OBJ = \
-+              rpc_parse/parse_rpc.o \
-+      rpc_parse/parse_lsa.o \
-+      rpc_parse/parse_net.o \
-+                rpc_parse/parse_wks.o rpc_parse/parse_ds.o \
-+              rpc_parse/parse_spoolss.o \
-+              rpc_parse/parse_dfs.o \
-+              rpc_parse/parse_echo.o rpc_parse/parse_shutdown.o \
-+      rpc_parse/parse_buffer.o $(REGOBJS_OBJ) \
-+      rpc_parse/parse_srv.o
-+
-+# rpc_parse/parse_eventlog.o \
-+# rpc_parse/parse_svcctl.o \
-+# rpc_parse/parse_reg.o 
-+# rpc_parse/parse_samr.o 
-+
-+
-+RPC_CLIENT_OBJ = rpc_client/cli_pipe.o
-+
-+LOCKING_OBJ = locking/locking.o locking/brlock.o locking/posix.o
-+
-+PASSDB_GET_SET_OBJ = passdb/pdb_get_set.o
-+
-+PASSDB_OBJ = $(PASSDB_GET_SET_OBJ) passdb/passdb.o passdb/pdb_interface.o \
-+              passdb/pdb_compat.o \
-+              passdb/lookup_sid.o \
-+              passdb/login_cache.o  passdb/pdb_smbpasswd.o passdb/pdb_tdb.o \
-+              lib/system_smbd.o \
-+              passdb/lookup_sid.o passdb/util_builtin.o \
-+              passdb/util_wellknown.o passdb/util_unixsids.o
-+
-+XML_OBJ = passdb/pdb_xml.o
-+MYSQL_OBJ = passdb/pdb_mysql.o
-+PGSQL_OBJ = passdb/pdb_pgsql.o
-+DEVEL_HELP_WEIRD_OBJ = modules/weird.o
-+CP850_OBJ = modules/CP850.o
-+CP437_OBJ = modules/CP437.o
-+CHARSET_MACOSXFS_OBJ = modules/charset_macosxfs.o
-+
-+GROUPDB_OBJ = groupdb/mapping.o
-+
-+PROFILE_OBJ = profile/profile.o
-+PROFILES_OBJ = utils/profiles.o
-+
-+OPLOCK_OBJ = smbd/oplock.o smbd/oplock_irix.o smbd/oplock_linux.o
-+
-+NOTIFY_OBJ = smbd/notify.o smbd/notify_hash.o smbd/notify_kernel.o
-+
-+VFS_AUDIT_OBJ = modules/vfs_audit.o
-+VFS_EXTD_AUDIT_OBJ = modules/vfs_extd_audit.o
-+VFS_FULL_AUDIT_OBJ = modules/vfs_full_audit.o
-+VFS_FAKE_PERMS_OBJ = modules/vfs_fake_perms.o
-+VFS_RECYCLE_OBJ = modules/vfs_recycle.o
-+VFS_NETATALK_OBJ = modules/vfs_netatalk.o
-+VFS_DEFAULT_QUOTA_OBJ = modules/vfs_default_quota.o
-+VFS_READONLY_OBJ = modules/vfs_readonly.o modules/getdate.o
-+VFS_CAP_OBJ = modules/vfs_cap.o
-+VFS_EXPAND_MSDFS_OBJ = modules/vfs_expand_msdfs.o
-+VFS_SHADOW_COPY_OBJ = modules/vfs_shadow_copy.o
-+VFS_AFSACL_OBJ = modules/vfs_afsacl.o
-+VFS_CATIA_OBJ = modules/vfs_catia.o
-+
-+PLAINTEXT_AUTH_OBJ = auth/pampass.o auth/pass_check.o
-+
-+SLCACHE_OBJ = libsmb/samlogon_cache.o
-+
-+DCUTIL_OBJ  = libsmb/namequery_dc.o 
-+
-+# libsmb/trustdom_cache.o
-+# libsmb/trusts_util.o
-+
-+AUTH_BUILTIN_OBJ = auth/auth_builtin.o
-+AUTH_DOMAIN_OBJ = auth/auth_domain.o
-+AUTH_SAM_OBJ = auth/auth_sam.o
-+AUTH_RHOSTS_OBJ = auth/auth_rhosts.o
-+AUTH_SERVER_OBJ = auth/auth_server.o
-+AUTH_UNIX_OBJ = auth/auth_unix.o
-+AUTH_WINBIND_OBJ = auth/auth_winbind.o
-+
-+AUTH_OBJ = auth/auth.o  $(AUTH_SAM_OBJ) $(AUTH_BUILTIN_OBJ) auth/auth_util.o auth/auth_compat.o \
-+         auth/auth_ntlmssp.o \
-+         $(PLAINTEXT_AUTH_OBJ) $(SLCACHE_OBJ) $(DCUTIL_OBJ)
-+
-+# AUTH_OBJ = auth/auth.o  $(AUTH_RHOSTS_OBJ) $(AUTH_SAM_OBJ) $(AUTH_UNIX_OBJ) $(AUTH_WINBIND_OBJ) $(AUTH_SERVER_OBJ) $(AUTH_DOMAIN_OBJ) $(AUTH_BUILTIN_OBJ) auth/auth_util.o auth/auth_compat.o \
-+#        auth/auth_ntlmssp.o \
-+#        $(PLAINTEXT_AUTH_OBJ) $(SLCACHE_OBJ) $(DCUTIL_OBJ)
-+
-+MANGLE_OBJ = smbd/mangle.o smbd/mangle_hash.o smbd/mangle_map.o smbd/mangle_hash2.o
-+
-+SMBD_OBJ_MAIN = smbd/server.o
-+
-+BUILDOPT_OBJ = smbd/build_options.o
-+
-+SMBD_OBJ_SRV = smbd/files.o smbd/chgpasswd.o smbd/connection.o \
-+             smbd/utmp.o smbd/session.o \
-+               smbd/dfree.o smbd/dir.o smbd/password.o smbd/conn.o smbd/fileio.o \
-+               smbd/message.o smbd/nttrans.o \
-+               smbd/reply.o smbd/sesssetup.o smbd/trans2.o smbd/uid.o \
-+             smbd/dosmode.o smbd/filename.o smbd/open.o smbd/close.o \
-+             smbd/blocking.o smbd/sec_ctx.o smbd/srvstr.o \
-+             smbd/vfs.o smbd/vfs-wrap.o smbd/statcache.o \
-+               smbd/posix_acls.o lib/sysacls.o $(SERVER_MUTEX_OBJ) \
-+             smbd/process.o smbd/service.o smbd/error.o \
-+              smbd/fake_file.o \
-+             smbd/msdfs.o \
-+              smbd/aio.o \
-+             $(MANGLE_OBJ) \
-+              smbd/negprot.o \
-+ smbd/ipc.o \
-+ smbd/lanman.o \
-+ smbd/change_trust_pw.o \
-+ smbd/pipes.o \
-+ smbd/share_access.o \
-+ smbd/statvfs.o \
-+ smbd/map_username.o
-+
-+
-+SMBD_OBJ_BASE = $(PARAM_OBJ) $(SMBD_OBJ_SRV) $(LIBSMB_OBJ) \
-+              $(RPC_SERVER_OBJ) $(RPC_PARSE_OBJ) $(SECRETS_OBJ) \
-+              $(LOCKING_OBJ) $(PASSDB_OBJ) $(PROFILE_OBJ) \
-+              $(LIB_OBJ) $(OPLOCK_OBJ) \
-+              $(NOTIFY_OBJ) $(GROUPDB_OBJ) $(AUTH_OBJ) \
-+              libads/ads_status.o
-+
-+#             $(REGISTRY_OBJ)
-+#             $(LIBMSRPC_OBJ)
-+
-+PRINTING_OBJ = printing/pcap.o printing/print_svid.o printing/print_aix.o \
-+               printing/print_cups.o printing/print_generic.o \
-+               printing/lpq_parse.o printing/load.o
-+
-+PRINTBASE_OBJ = printing/notify.o printing/printing_db.o
-+
-+PRINTBACKEND_OBJ = printing/printing.o printing/nt_printing.o $(PRINTBASE_OBJ)
-+
-+# SMBD_OBJ = $(SMBD_OBJ_BASE) $(SMBD_OBJ_MAIN)
-+
-+
-+NMBD_OBJ1 = nmbd/asyncdns.o nmbd/nmbd.o nmbd/nmbd_become_dmb.o \
-+            nmbd/nmbd_become_lmb.o nmbd/nmbd_browserdb.o \
-+            nmbd/nmbd_browsesync.o nmbd/nmbd_elections.o \
-+            nmbd/nmbd_incomingdgrams.o nmbd/nmbd_incomingrequests.o \
-+            nmbd/nmbd_lmhosts.o nmbd/nmbd_logonnames.o nmbd/nmbd_mynames.o \
-+            nmbd/nmbd_namelistdb.o nmbd/nmbd_namequery.o \
-+            nmbd/nmbd_nameregister.o nmbd/nmbd_namerelease.o \
-+            nmbd/nmbd_nodestatus.o nmbd/nmbd_packets.o \
-+            nmbd/nmbd_processlogon.o nmbd/nmbd_responserecordsdb.o \
-+            nmbd/nmbd_sendannounce.o nmbd/nmbd_serverlistdb.o \
-+            nmbd/nmbd_subnetdb.o nmbd/nmbd_winsproxy.o nmbd/nmbd_winsserver.o \
-+            nmbd/nmbd_workgroupdb.o nmbd/nmbd_synclists.o
-+
-+NMBD_OBJ = $(NMBD_OBJ1) $(PARAM_OBJ) $(LIBSMB_OBJ) \
-+           $(KRBCLIENT_OBJ) $(PROFILE_OBJ) $(LIB_NONSMBD_OBJ) \
-+           $(SECRETS_OBJ) $(POPT_LIB_OBJ)
-+
-+WREPL_OBJ1 =
-+
-+WREPL_OBJ = $(WREPL_OBJ1)  $(PARAM_OBJ) $(UBIQX_OBJ) \
-+          $(PROFILE_OBJ) $(LIB_NONSMBD_OBJ) $(POPT_LIB_OBJ) $(SECRETS_OBJ) \
-+          $(LIBSAMBA_OBJ)
-+
-+SWAT_OBJ1 = web/cgi.o web/diagnose.o web/startstop.o web/statuspage.o \
-+           web/swat.o web/neg_lang.o 
-+
-+SWAT_OBJ = $(SWAT_OBJ1) $(PARAM_OBJ) $(PRINTING_OBJ) $(LIBSMB_OBJ) \
-+         $(LOCKING_OBJ) $(PASSDB_OBJ) $(SECRETS_OBJ) $(KRBCLIENT_OBJ) \
-+         $(LIB_NONSMBD_OBJ) $(GROUPDB_OBJ) $(PLAINTEXT_AUTH_OBJ) \
-+         $(POPT_LIB_OBJ) $(SMBLDAP_OBJ) $(RPC_PARSE_OBJ) $(LIBMSRPC_OBJ) \
-+           $(PASSCHANGE_OBJ)
-+
-+SMBSH_OBJ = smbwrapper/smbsh.o smbwrapper/shared.o \
-+            $(PARAM_OBJ) $(LIB_NONSMBD_OBJ)
-+
-+STATUS_OBJ = utils/status.o $(LOCKING_OBJ) $(PARAM_OBJ) \
-+             $(PROFILE_OBJ) $(LIB_NONSMBD_OBJ) $(POPT_LIB_OBJ) \
-+           $(SECRETS_OBJ) $(LIBSAMBA_OBJ) $(ERRORMAP_OBJ) 
-+             
-+
-+SMBCONTROL_OBJ = utils/smbcontrol.o $(LOCKING_OBJ) $(PARAM_OBJ) \
-+      $(PROFILE_OBJ) $(LIB_NONSMBD_OBJ) $(POPT_LIB_OBJ) \
-+      $(SECRETS_OBJ) $(LIBSAMBA_OBJ) \
-+      $(PRINTBASE_OBJ) $(ERRORMAP_OBJ)
-+
-+SMBTREE_OBJ = utils/smbtree.o $(PARAM_OBJ) \
-+             $(PROFILE_OBJ) $(LIB_NONSMBD_OBJ) $(LIBSMB_OBJ) \
-+           $(KRBCLIENT_OBJ) $(POPT_LIB_OBJ) $(SECRETS_OBJ) 
-+
-+TESTPARM_OBJ = utils/testparm.o \
-+               $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) $(POPT_LIB_OBJ) \
-+             $(SECRETS_OBJ) $(LIBSAMBA_OBJ)
-+
-+SMBPASSWD_OBJ = utils/smbpasswd.o $(PASSCHANGE_OBJ) $(PARAM_OBJ) $(SECRETS_OBJ) \
-+              $(LIBSMB_OBJ) $(PASSDB_OBJ) $(GROUPDB_OBJ)\
-+                $(LIB_NONSMBD_OBJ) $(KRBCLIENT_OBJ) \
-+              $(SMBLDAP_OBJ) $(RPC_PARSE_OBJ) $(LIBMSRPC_OBJ)
-+
-+PDBEDIT_OBJ = utils/pdbedit.o $(PARAM_OBJ) $(PASSDB_OBJ) $(LIBSAMBA_OBJ) \
-+              $(LIB_NONSMBD_OBJ) $(GROUPDB_OBJ) $(SECRETS_OBJ) \
-+              $(POPT_LIB_OBJ) $(SMBLDAP_OBJ) libsmb/asn1.o
-+
-+SMBGET_OBJ = utils/smbget.o $(POPT_LIB_OBJ) $(LIBSMBCLIENT_OBJ)
-+
-+RPCCLIENT_OBJ1 = rpcclient/rpcclient.o rpcclient/cmd_lsarpc.o \
-+               rpcclient/cmd_samr.o rpcclient/cmd_spoolss.o \
-+               rpcclient/cmd_netlogon.o rpcclient/cmd_srvsvc.o \
-+               rpcclient/cmd_dfs.o rpcclient/cmd_reg.o \
-+               rpcclient/cmd_ds.o \
-+               rpcclient/cmd_echo.o rpcclient/cmd_shutdown.o
-+
-+RPCCLIENT_OBJ = $(RPCCLIENT_OBJ1) \
-+             $(PARAM_OBJ) $(LIBSMB_OBJ) $(LIB_NONSMBD_OBJ) \
-+             $(RPC_PARSE_OBJ) $(PASSDB_OBJ) $(LIBMSRPC_OBJ) \
-+             $(READLINE_OBJ) $(GROUPDB_OBJ) $(KRBCLIENT_OBJ) \
-+           $(LIBADS_OBJ) $(SECRETS_OBJ) $(POPT_LIB_OBJ) \
-+           $(SMBLDAP_OBJ) $(DCUTIL_OBJ)
-+
-+PAM_WINBIND_PICOBJ = nsswitch/pam_winbind.po \
-+      nsswitch/wb_common.po lib/replace1.po \
-+      lib/snprintf.po
-+
-+SMBW_OBJ1 = smbwrapper/smbw.o \
-+              smbwrapper/smbw_dir.o smbwrapper/smbw_stat.o \
-+              smbwrapper/realcalls.o smbwrapper/shared.o \
-+              smbwrapper/smbw_cache.o
-+
-+SMBW_OBJ = $(SMBW_OBJ1) $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) $(PARAM_OBJ) \
-+                $(LIB_NONSMBD_OBJ)
-+
-+SMBWRAPPER_OBJ1 = smbwrapper/wrapped.o
-+
-+SMBWRAPPER_OBJ = $(SMBW_OBJ) $(SMBWRAPPER_OBJ1)
-+
-+LIBSMBCLIENT_OBJ = libsmb/libsmbclient.o libsmb/libsmb_compat.o \
-+                 libsmb/libsmb_cache.o \
-+                 $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) \
-+                 $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) \
-+                 $(LIBMSRPC_OBJ) $(RPC_PARSE_OBJ) \
-+                 $(SECRETS_OBJ) $(PASSDB_OBJ) $(SMBLDAP_OBJ) $(GROUPDB_OBJ)
-+
-+LIBSMBSHAREMODES_OBJ = libsmb/smb_share_modes.o tdb/tdb.o tdb/spinlock.o
-+# This shared library is intended for linking with unit test programs
-+# to test Samba internals.  It's called libbigballofmud.so to
-+# discourage casual usage.
-+
-+LIBBIGBALLOFMUD_MAJOR = 0
-+
-+LIBBIGBALLOFMUD_OBJ = $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) $(UBIQX_OBJ) $(SECRETS_OBJ) \
-+      $(LIBSMB_OBJ) $(LIBMSRPC_OBJ) $(RPC_PARSE_OBJ) $(PASSDB_OBJ) \
-+      $(GROUPDB_OBJ) $(KRBCLIENT_OBJ) $(SMBLDAP_OBJ)
-+
-+LIBBIGBALLOFMUD_PICOBJS = $(LIBBIGBALLOFMUD_OBJ:.o=.po)
-+
-+CLIENT_OBJ1 = client/client.o client/clitar.o 
-+
-+CLIENT_OBJ = $(CLIENT_OBJ1) $(PARAM_OBJ) $(LIBSMB_OBJ) \
-+           $(LIB_NONSMBD_OBJ) $(KRBCLIENT_OBJ) \
-+             $(READLINE_OBJ) $(POPT_LIB_OBJ) $(SECRETS_OBJ)
-+
-+NET_OBJ1 = utils/net.o utils/net_ads.o utils/net_help.o \
-+         utils/net_rap.o utils/net_rpc.o utils/net_rpc_samsync.o \
-+         utils/net_rpc_join.o utils/net_time.o utils/net_lookup.o \
-+         utils/net_cache.o utils/net_groupmap.o utils/net_idmap.o \
-+         utils/net_status.o utils/net_rpc_printer.o utils/net_rpc_rights.o \
-+         utils/net_rpc_service.o utils/net_rpc_registry.o 
-+
-+NET_OBJ = $(NET_OBJ1) $(PARAM_OBJ) $(SECRETS_OBJ) $(LIBSMB_OBJ) \
-+        $(RPC_PARSE_OBJ) $(PASSDB_OBJ) $(GROUPDB_OBJ) \
-+        $(KRBCLIENT_OBJ) $(LIB_NONSMBD_OBJ) \
-+        $(LIBMSRPC_OBJ) $(IDMAP_OBJ) \
-+        $(LIBADS_OBJ) $(LIBADS_SERVER_OBJ) $(POPT_LIB_OBJ) \
-+        $(SMBLDAP_OBJ) $(DCUTIL_OBJ) $(SERVER_MUTEX_OBJ) \
-+        $(AFS_OBJ) $(AFS_SETTOKEN_OBJ) $(PRINTERDB_OBJ) $(REGFIO_OBJ)
-+
-+CUPS_OBJ = client/smbspool.o $(PARAM_OBJ) $(LIBSMB_OBJ) \
-+        $(LIB_NONSMBD_OBJ) $(KRBCLIENT_OBJ) $(SECRETS_OBJ)
-+
-+MOUNT_OBJ = client/smbmount.o \
-+             $(PARAM_OBJ) $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) $(LIB_NONSMBD_OBJ) $(SECRETS_OBJ)
-+
-+MNT_OBJ = client/smbmnt.o $(VERSION_OBJ) $(SNPRINTF_OBJ)
-+
-+UMOUNT_OBJ = client/smbumount.o
-+
-+NMBLOOKUP_OBJ = utils/nmblookup.o $(PARAM_OBJ) $(LIBNMB_OBJ) \
-+               $(LIB_NONSMBD_OBJ) $(POPT_LIB_OBJ) $(SECRETS_OBJ) $(LIBSAMBA_OBJ)
-+
-+SMBTORTURE_OBJ1 = torture/torture.o torture/nbio.o torture/scanner.o torture/utable.o \
-+              torture/denytest.o torture/mangle_test.o 
-+
-+SMBTORTURE_OBJ = $(SMBTORTURE_OBJ1) $(PARAM_OBJ) \
-+      $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) $(LIB_NONSMBD_OBJ) $(SECRETS_OBJ)
-+
-+MASKTEST_OBJ = torture/masktest.o $(PARAM_OBJ) $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) \
-+                 $(LIB_NONSMBD_OBJ) $(SECRETS_OBJ)
-+
-+MSGTEST_OBJ = torture/msgtest.o $(PARAM_OBJ) $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) \
-+                 $(LIB_NONSMBD_OBJ) $(SECRETS_OBJ)
-+
-+LOCKTEST_OBJ = torture/locktest.o $(PARAM_OBJ) $(LOCKING_OBJ) $(KRBCLIENT_OBJ) \
-+               $(LIBSMB_OBJ) $(LIB_NONSMBD_OBJ) $(SECRETS_OBJ)  
-+
-+NSSTEST_OBJ = torture/nsstest.o $(PARAM_OBJ) $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) \
-+                 $(LIB_NONSMBD_OBJ) $(SECRETS_OBJ)
-+
-+VFSTEST_OBJ = torture/cmd_vfs.o torture/vfstest.o $(SMBD_OBJ_BASE) $(READLINE_OBJ)
-+
-+SMBICONV_OBJ = $(PARAM_OBJ) torture/smbiconv.o $(LIB_NONSMBD_OBJ) $(POPT_LIB_OBJ) $(SECRETS_OBJ) $(LIBSAMBA_OBJ)
-+
-+LOG2PCAP_OBJ = utils/log2pcaphex.o
-+
-+LOCKTEST2_OBJ = torture/locktest2.o $(PARAM_OBJ) $(LOCKING_OBJ) $(LIBSMB_OBJ) \
-+              $(KRBCLIENT_OBJ) $(LIB_NONSMBD_OBJ) $(SECRETS_OBJ)
-+
-+SMBCACLS_OBJ = utils/smbcacls.o $(PARAM_OBJ) $(LIBSMB_OBJ) \
-+                         $(KRBCLIENT_OBJ) $(LIB_NONSMBD_OBJ) $(RPC_PARSE_OBJ) \
-+                         $(PASSDB_OBJ) $(GROUPDB_OBJ) $(LIBMSRPC_OBJ) $(SECRETS_OBJ) \
-+                         $(POPT_LIB_OBJ) $(DCUTIL_OBJ) $(LIBADS_OBJ) $(SMBLDAP_OBJ)
-+
-+SMBCQUOTAS_OBJ = utils/smbcquotas.o $(LIBSMB_OBJ) $(KRBCLIENT_OBJ) \
-+              $(PARAM_OBJ) \
-+              $(LIB_NONSMBD_OBJ) $(RPC_PARSE_OBJ) \
-+              $(LIBMSRPC_OBJ) $(SECRETS_OBJ) $(POPT_LIB_OBJ) \
-+              $(PASSDB_OBJ) $(SMBLDAP_OBJ) $(GROUPDB_OBJ)
-+
-+TALLOCTORT_OBJ = lib/talloctort.o $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) libsmb/nterr.o
-+
-+RPCTORTURE_OBJ = torture/rpctorture.o \
-+             rpcclient/display.o \
-+             rpcclient/cmd_lsarpc.o \
-+             rpcclient/cmd_wkssvc.o \
-+             rpcclient/cmd_samr.o \
-+             rpcclient/cmd_srvsvc.o \
-+             rpcclient/cmd_netlogon.o \
-+             $(PARAM_OBJ) $(LIBSMB_OBJ) $(LIB_NONSMBD_OBJ) $(KRBCLIENT_OBJ) \
-+             $(RPC_CLIENT_OBJ) $(RPC_PARSE_OBJ) $(PASSDB_GET_SET_OBJ)
-+
-+DEBUG2HTML_OBJ = utils/debug2html.o ubiqx/debugparse.o
-+
-+SMBFILTER_OBJ = utils/smbfilter.o $(PARAM_OBJ) $(LIBSMB_OBJ) $(SECRETS_OBJ) \
-+                 $(LIB_NONSMBD_OBJ) $(KRBCLIENT_OBJ) 
-+
-+PROTO_OBJ = $(SMBD_OBJ_MAIN) \
-+          $(SMBD_OBJ_SRV) $(NMBD_OBJ1) $(SWAT_OBJ1) $(LIB_OBJ) $(LIBSMB_OBJ) \
-+          $(SMBTORTURE_OBJ1) $(RPCCLIENT_OBJ1) \
-+          $(LIBMSRPC_OBJ)  \
-+          $(RPC_PIPE_OBJ) $(RPC_PARSE_OBJ) $(KRBCLIENT_OBJ) \
-+          $(AUTH_OBJ) $(PARAM_OBJ) $(LOCKING_OBJ) $(SECRETS_OBJ) \
-+          $(PRINTING_OBJ) $(PRINTBACKEND_OBJ) $(OPLOCK_OBJ) $(NOTIFY_OBJ) \
-+          $(PASSDB_OBJ) $(GROUPDB_OBJ) \
-+          $(READLINE_OBJ) $(PROFILE_OBJ) $(LIBADS_OBJ) $(LIBADS_SERVER_OBJ) \
-+          $(AUTH_SAM_OBJ) $(REGISTRY_OBJ) $(POPT_LIB_OBJ) \
-+          $(RPC_LSA_OBJ) $(RPC_NETLOG_OBJ) $(RPC_SAMR_OBJ) $(RPC_REG_OBJ) $(RPC_LSA_DS_OBJ) \
-+          $(RPC_SVC_OBJ) $(RPC_WKS_OBJ) $(RPC_DFS_OBJ) $(RPC_SPOOLSS_OBJ) \
-+          $(RPC_ECHO_OBJ) $(RPC_SVCCTL_OBJ) $(RPC_EVENTLOG_OBJ) $(SMBLDAP_OBJ) \
-+            $(IDMAP_OBJ) libsmb/spnego.o $(PASSCHANGE_OBJ)
-+
-+WINBIND_WINS_NSS_OBJ = nsswitch/wins.o $(PARAM_OBJ) \
-+      $(LIBSMB_OBJ) $(LIB_NONSMBD_OBJ) $(NSSWINS_OBJ) $(KRBCLIENT_OBJ)
-+
-+WINBIND_WINS_NSS_PICOBJS = $(WINBIND_WINS_NSS_OBJ:.o=.po)
-+
-+PICOBJS = $(SMBWRAPPER_OBJ:.o=.po)
-+LIBSMBCLIENT_PICOBJS = $(LIBSMBCLIENT_OBJ:.o=.po)
-+LIBSMBSHAREMODES_PICOBJS = $(LIBSMBSHAREMODES_OBJ:.o=.po)
-+
-+PAM_SMBPASS_OBJ_0 = pam_smbpass/pam_smb_auth.o pam_smbpass/pam_smb_passwd.o \
-+               pam_smbpass/pam_smb_acct.o pam_smbpass/support.o \
-+               $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) $(PASSDB_OBJ) $(GROUPDB_OBJ) \
-+               $(SECRETS_OBJ) $(SMBLDAP_OBJ) $(LIBSAMBA_OBJ)
-+
-+PAM_SMBPASS_PICOOBJ = $(PAM_SMBPASS_OBJ_0:.o=.po)
-+
-+IDMAP_OBJ     = sam/idmap.o sam/idmap_util.o  sam/idmap_tdb.o
-+
-+WINBINDD_OBJ1 = \
-+              nsswitch/winbindd.o       \
-+              nsswitch/winbindd_user.o  \
-+              nsswitch/winbindd_group.o \
-+              nsswitch/winbindd_util.o  \
-+              nsswitch/winbindd_cache.o \
-+              nsswitch/winbindd_pam.o   \
-+              nsswitch/winbindd_sid.o   \
-+              nsswitch/winbindd_misc.o  \
-+              nsswitch/winbindd_cm.o \
-+              nsswitch/winbindd_wins.o \
-+              nsswitch/winbindd_rpc.o \
-+              nsswitch/winbindd_reconnect.o \
-+              nsswitch/winbindd_ads.o \
-+              nsswitch/winbindd_passdb.o \
-+              nsswitch/winbindd_dual.o \
-+              nsswitch/winbindd_async.o
-+
-+WINBINDD_OBJ = \
-+              $(WINBINDD_OBJ1) $(PASSDB_OBJ) $(GROUPDB_OBJ) \
-+              $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) \
-+              $(LIBSMB_OBJ) $(LIBMSRPC_OBJ) $(RPC_PARSE_OBJ) \
-+              $(PROFILE_OBJ) $(SLCACHE_OBJ) $(SMBLDAP_OBJ) \
-+              $(SECRETS_OBJ) $(LIBADS_OBJ) $(KRBCLIENT_OBJ) $(POPT_LIB_OBJ) \
-+              $(DCUTIL_OBJ) $(IDMAP_OBJ) \
-+              $(AFS_OBJ) $(AFS_SETTOKEN_OBJ)
-+
-+WBINFO_OBJ = nsswitch/wbinfo.o $(LIBSAMBA_OBJ) $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) \
-+              $(SECRETS_OBJ) $(POPT_LIB_OBJ) $(AFS_SETTOKEN_OBJ)
-+
-+WINBIND_NSS_OBJ = $(WBCOMMON_OBJ) lib/replace1.o nsswitch/winbind_nss_linux.o
-+
-+WINBIND_NSS_PICOBJS = $(WINBIND_NSS_OBJ:.o=.po) lib/snprintf.po
-+
-+POPT_OBJS=popt/findme.o popt/popt.o popt/poptconfig.o \
-+          popt/popthelp.o popt/poptparse.o
-+
-+TDBBACKUP_OBJ = tdb/tdbbackup.o tdb/tdbback.o $(SNPRINTF_OBJ) $(TDBBASE_OBJ)
-+
-+TDBTOOL_OBJ = tdb/tdbtool.o $(TDBBASE_OBJ) $(SNPRINTF_OBJ)
-+
-+TDBDUMP_OBJ = tdb/tdbdump.o $(TDBBASE_OBJ) $(SNPRINTF_OBJ)
-+
-+NTLM_AUTH_OBJ1 = utils/ntlm_auth.o utils/ntlm_auth_diagnostics.o 
-+
-+NTLM_AUTH_OBJ = ${NTLM_AUTH_OBJ1} $(LIBSAMBA_OBJ) $(POPT_LIB_OBJ) \
-+              libsmb/asn1.o libsmb/spnego.o libsmb/clikrb5.o libads/kerberos.o \
-+              libads/kerberos_verify.o $(SECRETS_OBJ) $(SERVER_MUTEX_OBJ) \
-+              libads/authdata.o $(RPC_PARSE_OBJ0) $(PASSDB_OBJ) $(GROUPDB_OBJ) \
-+              $(SMBLDAP_OBJ) $(DOSERR_OBJ)
-+
-+######################################################################
-+# now the rules...
-+######################################################################
-+all : SHOWFLAGS proto_exists bin/smbd  bin/smbpasswd  bin/nmbd
-+
-+pam_smbpass : SHOWFLAGS bin/pam_smbpass.so
-+
-+smbwrapper : SHOWFLAGS 
-+
-+torture : SHOWFLAGS $(TORTURE_PROGS)
-+
-+smbtorture : SHOWFLAGS bin/smbtorture
-+
-+masktest : SHOWFLAGS bin/masktest
-+
-+msgtest : SHOWFLAGS bin/msgtest
-+
-+locktest : SHOWFLAGS bin/locktest
-+
-+smbcacls : SHOWFLAGS bin/smbcacls
-+
-+smbcquotas : SHOWFLAGS bin/smbcquotas
-+
-+locktest2 : SHOWFLAGS bin/locktest2
-+
-+rpctorture : SHOWFLAGS bin/rpctorture
-+
-+debug2html : SHOWFLAGS bin/debug2html
-+
-+smbfilter : SHOWFLAGS bin/smbfilter
-+
-+talloctort : SHOWFLAGS bin/talloctort
-+
-+nsswitch : SHOWFLAGS bin/winbindd bin/wbinfo nsswitch/libnss_winbind.so \
-+      nsswitch/libnss_wins.so nsswitch/pam_winbind.so
-+
-+wins : SHOWFLAGS nsswitch/libnss_wins.so
-+
-+modules: SHOWFLAGS proto_exists $(MODULES)
-+
-+everything: all libsmbclient debug2html smbfilter talloctort modules torture \
-+      $(EVERYTHING_PROGS)
-+
-+.SUFFIXES:
-+.SUFFIXES: .c .o .po .lo
-+
-+SHOWFLAGS:
-+      @echo "Using FLAGS = $(FLAGS)"
-+      @echo "      LIBS = $(LIBS)"
-+      @echo "      LDSHFLAGS = $(LDSHFLAGS)"
-+      @echo "      LDFLAGS = $(LDFLAGS)"
-+      @echo "      CFLAGS= $(CFLAGS)"
-+      @echo "      WITH_LFS= $(WITH_LFS)"
-+
-+
-+MAKEDIR = || exec false; \
-+        if test -d "$$dir"; then :; else \
-+        echo mkdir "$$dir"; \
-+        mkdir -p "$$dir" >/dev/null 2>&1 || \
-+        test -d "$$dir" || \
-+        mkdir "$$dir" || \
-+        exec false; fi || exec false
-+
-+.c.o:
-+      @if (: >> $@ || : > $@) >/dev/null 2>&1; then rm -f $@; else \
-+       dir=`echo $@ | sed 's,/[^/]*$$,,;s,^$$,.,'` $(MAKEDIR); fi
-+      @echo Compiling $*.c
-+      @$(CC) -I. -I$(srcdir) $(FLAGS)  -c $< \
-+        -o $@ 
-+#     -mv `echo $@ | sed 's%^.*/%%g'` $@
-+
-+# this adds support for precompiled headers. To use it, install a snapshot
-+# of gcc-3.4 and run 'make pch' before you do the main build. 
-+pch:
-+      rm -f $(srcdir)/include/includes.h.gch
-+      $(CC) -I. -I$(srcdir) $(FLAGS) -c $(srcdir)/include/includes.h -o $(srcdir)/include/includes.h.gch
-+
-+# These dependencies are only approximately correct: we want to make
-+# sure Samba's paths are updated if ./configure is re-run.  Really it
-+# would be nice if "make prefix=/opt/samba all" also rebuilt things,
-+# but since we also require "make install prefix=/opt/samba" *not* to
-+# rebuild it's a bit hard.
-+
-+dynconfig.o: dynconfig.c Makefile
-+      @echo Compiling $*.c
-+      @$(CC) $(FLAGS) $(PATH_FLAGS)  -c $(srcdir)/dynconfig.c -o $@ 
-+
-+dynconfig.po: dynconfig.c Makefile
-+      @if (: >> $@ || : > $@) >/dev/null 2>&1; then rm -f $@; else \
-+        dir=`echo $@ | sed 's,/[^/]*$$,,;s,^$$,.,'` $(MAKEDIR); fi
-+      @echo Compiling $*.c with -fPIC
-+      @$(CC) -I. -I$(srcdir) $(FLAGS) $(PATH_FLAGS) -fPIC -c $(srcdir)/dynconfig.c -o $@
-+#     -mv `echo $@ | sed -e 's%^.*/%%g' -e 's%\.po$$%.o%'` $@
-+
-+lib/version.o: lib/version.c include/version.h
-+      @echo Compiling $*.c
-+      @$(CC) -I. -I$(srcdir) $(FLAGS) $(PATH_FLAGS)  -c $(srcdir)/lib/version.c -o $@ 
-+
-+lib/version.po: lib/version.c include/version.h
-+      @if (: >> $@ || : > $@) >/dev/null 2>&1; then rm -f $@; else \
-+        dir=`echo $@ | sed 's,/[^/]*$$,,;s,^$$,.,'` $(MAKEDIR); fi
-+      @echo Compiling $*.c with -fPIC
-+      @$(CC) -I. -I$(srcdir) $(FLAGS) $(PATH_FLAGS) -fPIC -c $(srcdir)/lib/version.c -o $@
-+#     -mv `echo $@ | sed -e 's%^.*/%%g' -e 's%\.po$$%.o%'` $@
-+
-+smbd/build_options.o: smbd/build_options.c Makefile include/config.h include/build_env.h include/proto.h
-+      @echo Compiling $*.c
-+      @$(CC) $(FLAGS) $(PATH_FLAGS)  -c smbd/build_options.c -o $@
-+
-+smbd/build_options.c: include/config.h.in script/mkbuildoptions.awk
-+      @echo Generating $@
-+      @dir=smbd $(MAKEDIR) && $(AWK) -f $(srcdir)/script/mkbuildoptions.awk > $(builddir)/smbd/build_options.c < $(srcdir)/include/config.h.in
-+
-+.c.po: 
-+      @if (: >> $@ || : > $@) >/dev/null 2>&1; then rm -f $@; else \
-+        dir=`echo $@ | sed 's,/[^/]*$$,,;s,^$$,.,'` $(MAKEDIR); fi
-+      @echo Compiling $*.c with -fPIC
-+      @$(CC) -I. -I$(srcdir) $(FLAGS) -fPIC -c $< -o $*.po
-+#     -mv `echo $@ | sed -e 's%^.*/%%g' -e 's%\.po$$%.o%'` $@
-+
-+bin/.dummy:
-+      @if (: >> $@ || : > $@) >/dev/null 2>&1; then :; else \
-+        dir=bin $(MAKEDIR); fi
-+      @: >> $@ || : > $@ # what a fancy emoticon!
-+
-+bin/smbd: bin/libsmbd.a $(SMBD_OBJ_MAIN) $(POPT_OBJS) $(POPT_LIB_OBJ) bin/.dummy
-+      @echo Linking $@
-+      $(CC) $(FLAGS)  -o $@ $(SMBD_OBJ_MAIN) $(POPT_OBJS) $(POPT_LIB_OBJ) $(LDFLAGS) \
-+              $(AUTH_LIBS) \
-+              -Lbin -lsmbd \
-+              -L$(TARGETFS)/lib \
-+              $(LIBS)
-+
-+bin/libsmbd.a: $(SMBD_OBJ_BASE)
-+      $(AR) cru bin/libsmbd.a $(SMBD_OBJ_BASE)
-+      $(RANLIB) bin/libsmbd.a
-+
-+
-+bin/nmbd: $(NMBD_OBJ) $(POPT_OBJS) bin/.dummy
-+      @echo Linking $@
-+      @$(CC) $(FLAGS)  -o $@ $(NMBD_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(POPT_OBJS) $(KRB5LIBS) $(LDAP_LIBS)
-+
-+
-+bin/swat: $(SWAT_OBJ) $(POPT_OBJS) bin/.dummy
-+      @echo Linking $@
-+      @$(CC) $(FLAGS)  -o $@ $(SWAT_OBJ) $(LDFLAGS) $(DYNEXP) $(PRINT_LIBS) \
-+        $(AUTH_LIBS) $(LIBS) $(PASSDB_LIBS) $(POPT_OBJS) $(KRB5LIBS) $(LDAP_LIBS)
-+
-+bin/rpcclient: $(RPCCLIENT_OBJ) $(POPT_OBJS) bin/.dummy
-+      @echo Linking $@
-+      @$(CC) $(FLAGS)  -o $@ $(LDFLAGS) $(PASSDB_LIBS) $(RPCCLIENT_OBJ) \
-+              $(DYNEXP) $(TERMLDFLAGS) $(TERMLIBS) $(LIBS) $(POPT_OBJS) \
-+              $(KRB5LIBS) $(LDAP_LIBS)
-+
-+bin/smbclient: $(CLIENT_OBJ) $(POPT_OBJS) bin/.dummy
-+      @echo Linking $@
-+      @$(CC) $(FLAGS)  -o $@ $(CLIENT_OBJ) $(LDFLAGS) $(DYNEXP) $(TERMLDFLAGS) $(TERMLIBS) $(LIBS) $(POPT_OBJS) $(KRB5LIBS) $(LDAP_LIBS)
-+
-+bin/net: $(NET_OBJ) $(POPT_OBJS) bin/.dummy
-+      @echo Linking $@
-+      @$(CC) $(FLAGS)  -o $@ $(NET_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) $(POPT_OBJS) $(KRB5LIBS) $(LDAP_LIBS) $(PASSDB_LIBS)
-+
-+bin/profiles: $(PROFILES_OBJ) $(POPT_OBJS) bin/.dummy
-+      @echo Linking $@
-+      @$(CC) $(FLAGS)  -o $@ $(PROFILES_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) $(POPT_OBJS)
-+
-+bin/smbspool: $(CUPS_OBJ) bin/.dummy
-+      @echo Linking $@
-+      @$(CC) $(FLAGS)  -o $@ $(CUPS_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)
-+
-+bin/smbmount: $(MOUNT_OBJ) bin/.dummy
-+      @echo Linking $@
-+      @$(CC) $(FLAGS)  -o $@ $(MOUNT_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)
-+
-+bin/smbmnt: $(MNT_OBJ) bin/.dummy
-+      @echo Linking $@
-+      @$(CC) $(FLAGS)  -o $@ $(MNT_OBJ) $(DYNEXP) $(LDFLAGS) 
-+
-+bin/smbumount: $(UMOUNT_OBJ) bin/.dummy
-+      @echo Linking $@
-+      @$(CC) $(FLAGS)  -o $@ $(UMOUNT_OBJ) $(DYNEXP) $(LDFLAGS)
-+
-+bin/testparm: $(TESTPARM_OBJ) $(POPT_OBJS) bin/.dummy
-+      @echo Linking $@
-+      @$(CC) $(FLAGS)  -o $@ $(TESTPARM_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(POPT_OBJS)
-+
-+bin/smbstatus: $(STATUS_OBJ) $(POPT_OBJS) bin/.dummy
-+      @echo Linking $@
-+      @$(CC) $(FLAGS)  -o $@ $(STATUS_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) \
-+      $(POPT_OBJS)
-+
-+bin/smbcontrol: $(SMBCONTROL_OBJ) $(POPT_OBJS) bin/.dummy
-+      @echo Linking $@
-+      @$(CC) -DUSING_SMBCONTROL $(FLAGS)  -o $@ $(SMBCONTROL_OBJ) $(DYNEXP) \
-+      $(LDFLAGS) $(LIBS) \
-+      $(POPT_OBJS)
-+
-+bin/smbtree: $(SMBTREE_OBJ) $(POPT_OBJS) bin/.dummy
-+      @echo Linking $@
-+      @$(CC) $(FLAGS)  -o $@ $(SMBTREE_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(POPT_OBJS) $(KRB5LIBS) $(LDAP_LIBS) 
-+
-+# bin/smbpasswd: $(SMBPASSWD_OBJ) bin/.dummy
-+#     @echo Linking $@
-+#     @$(CC) $(FLAGS)  -o $@ $(SMBPASSWD_OBJ) $(LDFLAGS) $(PASSDB_LIBS) \
-+#             $(DYNEXP) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS) 
-+
-+MY_PASS_OBJ = libsmb/smbdes.o lib/md4.o lib/arc4.o
-+
-+bin/smbpasswd: utils/avm_smbpasswd.o $(MY_PASS_OBJ)
-+      @echo Linking $@
-+      @$(CC) $(FLAGS)  -o $@ utils/avm_smbpasswd.o $(MY_PASS_OBJ) \
-+              -L$(TARGETFS)/lib
-+
-+ 
-+
-+bin/pdbedit: $(PDBEDIT_OBJ) $(POPT_OBJS) bin/.dummy
-+      @echo Linking $@
-+      @$(CC) $(FLAGS)  -o $@ $(PDBEDIT_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(POPT_OBJS) $(PASSDB_LIBS) $(LDAP_LIBS)
-+
-+bin/smbget: $(SMBGET_OBJ) $(POPT_OBJS) bin/.dummy
-+      @echo Linking $@
-+      @$(CC) $(FLAGS)  -o $@ $(SMBGET_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(POPT_OBJS)  $(KRB5LIBS) $(LDAP_LIBS)
-+
-+bin/samtest: $(SAMTEST_OBJ) $(POPT_OBJS) bin/.dummy
-+      @echo Linking $@
-+      @$(CC) $(FLAGS)  -o $@ $(SAMTEST_OBJ) $(LDFLAGS) $(TERMLDFLAGS) $(TERMLIBS) $(DYNEXP) $(LIBS) $(POPT_OBJS) $(PASSDB_LIBS) $(KRB5LIBS) $(LDAP_LIBS)
-+
-+bin/nmblookup: $(NMBLOOKUP_OBJ) $(POPT_OBJS) bin/.dummy
-+      @echo Linking $@
-+      @$(CC) $(FLAGS)  -o $@ $(NMBLOOKUP_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(POPT_OBJS) $(LDAP_LIBS)
-+
-+bin/smbtorture: $(SMBTORTURE_OBJ) bin/.dummy
-+      @echo Linking $@
-+      @$(CC) $(FLAGS)  -o $@ $(SMBTORTURE_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS) 
-+
-+bin/talloctort: $(TALLOCTORT_OBJ) bin/.dummy
-+      @echo Linking $@
-+      @$(CC) $(FLAGS)  -o $@ $(TALLOCTORT_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS)
-+
-+bin/masktest: $(MASKTEST_OBJ) bin/.dummy
-+      @echo Linking $@
-+      @$(CC) $(FLAGS)  -o $@ $(MASKTEST_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)
-+
-+bin/msgtest: $(MSGTEST_OBJ) bin/.dummy
-+      @echo Linking $@
-+      @$(CC) $(FLAGS)  -o $@ $(MSGTEST_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS) 
-+
-+bin/smbcacls: $(SMBCACLS_OBJ) $(POPT_OBJS) bin/.dummy
-+      @echo Linking $@
-+      @$(CC) $(FLAGS)  -o $@ $(SMBCACLS_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) $(POPT_OBJS) $(KRB5LIBS) $(LDAP_LIBS)
-+
-+bin/smbcquotas: $(SMBCQUOTAS_OBJ) $(POPT_OBJS) bin/.dummy
-+      @echo Linking $@
-+      @$(CC) $(FLAGS)  -o $@ $(SMBCQUOTAS_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) $(POPT_OBJS) $(KRB5LIBS) $(LDAP_LIBS)
-+
-+bin/locktest: $(LOCKTEST_OBJ) bin/.dummy
-+      @echo Linking $@
-+      @$(CC) $(FLAGS)  -o $@ $(LOCKTEST_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)
-+
-+bin/nsstest: $(NSSTEST_OBJ) bin/.dummy
-+      @echo Linking $@
-+      @$(CC) $(FLAGS)  -o $@ $(NSSTEST_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(KRB5LIBS)  $(LDAP_LIBS)
-+
-+bin/vfstest: $(VFSTEST_OBJ) $(POPT_OBJS) bin/.dummy
-+      @echo Linking $@
-+      @$(CC) $(FLAGS)  -o $@ $(VFSTEST_OBJ) $(LDFLAGS) $(TERMLDFLAGS) $(TERMLIBS) $(DYNEXP) $(PRINT_LIBS) $(AUTH_LIBS) $(ACL_LIBS) $(LIBS) $(POPT_OBJS) $(KRB5LIBS) $(LDAP_LIBS)
-+
-+bin/smbiconv: $(SMBICONV_OBJ) $(POPT_OBJS) bin/.dummy
-+      @echo Linking $@
-+      @$(CC) $(FLAGS)  -o $@ $(SMBICONV_OBJ) $(LDFLAGS) $(TERMLDFLAGS) $(TERMLIBS) $(DYNEXP) $(LIBS) $(POPT_OBJS)
-+
-+bin/log2pcap: $(LOG2PCAP_OBJ) $(POPT_OBJS) bin/.dummy
-+      @echo Linking $@
-+      @$(CC) $(FLAGS)  -o $@ $(LOG2PCAP_OBJ) $(LDFLAGS) $(DYNEXP) $(POPT_OBJS) $(LIBS)
-+
-+bin/locktest2: $(LOCKTEST2_OBJ) bin/.dummy
-+      @echo Linking $@
-+      @$(CC) $(FLAGS)  -o $@ $(LOCKTEST2_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)
-+
-+bin/rpctorture: $(RPCTORTURE_OBJ) bin/.dummy
-+      @echo Linking $@
-+      @$(CC) $(FLAGS)  -o $@ $(RPCTORTURE_OBJ) $(DYNEXP) $(LDFLAGS) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)
-+
-+bin/debug2html: $(DEBUG2HTML_OBJ) bin/.dummy
-+      @echo Linking $@
-+      @$(CC) $(FLAGS)  -o $@ $(DEBUG2HTML_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS)
-+
-+bin/smbfilter: $(SMBFILTER_OBJ) bin/.dummy
-+      @echo Linking $@
-+      @$(CC) $(FLAGS)  -o $@ $(SMBFILTER_OBJ) $(LDFLAGS) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)
-+
-+bin/smbw_sample: $(SMBW_OBJ) utils/smbw_sample.o bin/.dummy
-+      @echo Linking $@
-+      @$(CC) $(FLAGS)  -o $@ $(SMBW_OBJ) utils/smbw_sample.o $(LDFLAGS) $(DYNEXP) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)
-+
-+bin/smbsh: $(SMBSH_OBJ) bin/.dummy
-+      @echo Linking $@
-+      @$(CC) $(FLAGS)  -o $@ $(SMBSH_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS)
-+
-+bin/smbwrapper.so: $(PICOBJS) bin/.dummy
-+      @echo Linking shared library $@
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(PICOBJS) $(LIBS) \
-+              $(KRB5LIBS) $(LDAP_LIBS) \
-+              -Wl,-soname=`basename $@`
-+
-+bin/libsmbclient.so: $(LIBSMBCLIENT_PICOBJS)
-+      @echo Linking libsmbclient shared library $@
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(LIBSMBCLIENT_PICOBJS) $(LDFLAGS) $(LIBS) \
-+              $(KRB5LIBS) $(LDAP_LIBS) \
-+              -Wl,-soname=`basename $@`.$(LIBSMBCLIENT_MAJOR)
-+
-+bin/libsmbclient.a: $(LIBSMBCLIENT_PICOBJS)
-+      @echo Linking libsmbclient non-shared library $@
-+      @-$(AR) -rc $@ $(LIBSMBCLIENT_PICOBJS)
-+
-+bin/libsmbsharemodes.so: $(LIBSMBSHAREMODES_PICOBJS)
-+      @echo Linking libsmbsharemodes shared library $@
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(LIBSMBSHAREMODES_PICOBJS) $(LDFLAGS) $(LIBS) \
-+              $(KRB5LIBS) $(LDAP_LIBS) \
-+              -Wl,-soname=`basename $@`.$(LIBSMBSHAREMODES_MAJOR)
-+
-+bin/libsmbsharemodes.a: $(LIBSMBSHAREMODES_PICOBJS)
-+      @echo Linking libsmbsharemodes non-shared library $@
-+      @-$(AR) -rc $@ $(LIBSMBSHAREMODES_PICOBJS)
-+
-+# This is probably wrong for anything other than the GNU linker. 
-+bin/libbigballofmud.so: $(LIBBIGBALLOFMUD_PICOBJS)
-+      @echo Linking bigballofmud shared library $@
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(LIBBIGBALLOFMUD_PICOBJS) $(LIBS) \
-+              $(PASSDB_LIBS) $(IDMAP_LIBS) $(KRB5LIBS) $(LDAP_LIBS) \
-+              -Wl,-soname=`basename $@`.$(LIBBIGBALLOFMUD_MAJOR)
-+      ln -snf libbigballofmud.so bin/libbigballofmud.so.0
-+
-+# It would be nice to build a static bigballofmud too, but when I try
-+# I get linker errors about dl_open and similar things.  I'm not sure if
-+# it can be fixed or if they just can't be called from a static
-+# library.
-+
-+libsmbclient: $(LIBSMBCLIENT)
-+libsmbsharemodes: $(LIBSMBSHAREMODES)
-+
-+bin/librpc_lsarpc.so: $(RPC_LSA_OBJ)
-+      @echo "Linking $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(RPC_LSA_OBJ) -lc \
-+              -Wl,-soname=`basename $@`
-+
-+bin/librpc_samr.so: $(RPC_SAMR_OBJ)
-+      @echo "Linking $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(RPC_SAMR_OBJ) -lc \
-+              -Wl,-soname=`basename $@`
-+
-+bin/librpc_srvsvc.so: $(RPC_SVC_OBJ)
-+      @echo "Linking $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(RPC_SVC_OBJ) -lc \
-+              -Wl,-soname=`basename $@`
-+
-+bin/librpc_svcctl.so: $(RPC_SVCCTL_OBJ)
-+      @echo "Linking $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(RPC_SVCCTL_OBJ) -lc \
-+              -Wl,-soname=`basename $@`
-+
-+bin/librpc_wkssvc.so: $(RPC_WKS_OBJ)
-+      @echo "Linking $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(RPC_WKS_OBJ) -lc \
-+              -Wl,-soname=`basename $@`
-+
-+bin/librpc_NETLOGON.so: $(RPC_NETLOG_OBJ)
-+      @echo "Linking $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(RPC_NETLOG_OBJ) -lc \
-+              -Wl,-soname=`basename $@`
-+
-+bin/librpc_winreg.so: $(RPC_REG_OBJ)
-+      @echo "Linking $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(RPC_REG_OBJ) -lc \
-+              -Wl,-soname=`basename $@`
-+
-+bin/librpc_lsa_ds.so: $(RPC_LSA_DS_OBJ)
-+      @echo "Linking $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(RPC_LSA_DS_OBJ) -lc \
-+              -Wl,-soname=`basename $@`
-+
-+bin/librpc_spoolss.so: $(RPC_SPOOLSS_OBJ)
-+      @echo "Linking $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(RPC_SPOOLSS_OBJ) -lc \
-+              -Wl,-soname=`basename $@`
-+
-+bin/librpc_eventlog.so: $(RPC_EVENTLOG_OBJ)
-+      @echo "Linking $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(RPC_EVENTLOG_OBJ) -lc \
-+              -Wl,-soname=`basename $@`
-+
-+bin/librpc_netdfs.so: $(RPC_DFS_OBJ)
-+      @echo "Linking $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(RPC_DFS_OBJ) -lc \
-+              -Wl,-soname=`basename $@`
-+
-+bin/librpc_echo.so: $(RPC_ECHO_OBJ)
-+      @echo "Linking $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(RPC_ECHO_OBJ) -lc \
-+              -Wl,-soname=`basename $@`
-+
-+bin/winbindd: $(WINBINDD_OBJ) $(POPT_OBJS) bin/.dummy
-+      @echo "Linking $@"
-+      @$(CC) $(FLAGS)  -o $@ $(WINBINDD_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) \
-+              $(POPT_OBJS) $(KRB5LIBS) $(LDAP_LIBS) $(PASSDB_LIBS)
-+
-+# Please don't add .o files to libnss_winbind, libnss_wins, or the pam_winbind
-+# libraries.  Add to the appropriate PICOBJ variable instead.
-+
-+nsswitch/libnss_winbind.so: $(WINBIND_NSS_PICOBJS)
-+      @echo "Linking $@"
-+      @$(SHLD) $(WINBIND_NSS_LDSHFLAGS) -o $@ $(WINBIND_NSS_PICOBJS) \
-+               -Wl,-soname=`basename $@`
-+
-+nsswitch/libnss_wins.so: $(WINBIND_WINS_NSS_PICOBJS)
-+      @echo "Linking $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(WINBIND_WINS_NSS_PICOBJS) \
-+              $(LDAP_LIBS) $(KRB5LIBS) -lc \
-+              -Wl,-soname=`basename $@`
-+
-+nsswitch/pam_winbind.so: $(PAM_WINBIND_PICOBJ) bin/.dummy
-+      @echo "Linking $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(PAM_WINBIND_PICOBJ) \
-+              -Wl,-soname=`basename $@` -lpam
-+
-+bin/rhosts.so: $(AUTH_RHOSTS_OBJ:.o=.po)
-+      @echo "Building plugin $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(AUTH_RHOSTS_OBJ:.o=.po) -Wl,-soname=`basename $@`
-+
-+bin/builtin.so: $(AUTH_BUILTIN_OBJ:.o=.po)
-+      @echo "Building plugin $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(AUTH_BUILTIN_OBJ:.o=.po) -Wl,-soname=`basename $@`
-+
-+bin/domain.so: $(AUTH_DOMAIN_OBJ:.o=.po)
-+      @echo "Building plugin $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(AUTH_DOMAIN_OBJ:.o=.po) -Wl,-soname=`basename $@`
-+
-+bin/smbserver.so: $(AUTH_SERVER_OBJ:.o=.po)
-+      @echo "Building plugin $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(AUTH_SERVER_OBJ:.o=.po) -Wl,-soname=`basename $@`
-+
-+bin/winbind.so: $(AUTH_WINBIND_OBJ:.o=.po)
-+      @echo "Building plugin $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(AUTH_WINBIND_OBJ:.o=.po) -Wl,-soname=`basename $@`
-+
-+bin/unix.so: $(AUTH_UNIX_OBJ:.o=.po)
-+      @echo "Building plugin $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(AUTH_UNIX_OBJ:.o=.po) -Wl,-soname=`basename $@`
-+
-+bin/sam.so: $(AUTH_SAM_OBJ:.o=.po)
-+      @echo "Building plugin $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(AUTH_SAM_OBJ:.o=.po) -Wl,-soname=`basename $@`
-+
-+bin/mysql.so: $(MYSQL_OBJ:.o=.po)
-+      @echo "Building plugin $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(MYSQL_OBJ:.o=.po)  \
-+              -Wl,-soname=`basename $@`
-+
-+bin/pgsql.so: $(PGSQL_OBJ:.o=.po)
-+      @echo "Building plugin $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(PGSQL_OBJ:.o=.po)  \
-+      -Wl,-soname=`basename $@`
-+
-+bin/ldapsam.so: passdb/pdb_ldap.po
-+      @echo "Building plugin $@"
-+      @$(SHLD) $(LDSHFLAGS) $(LDAP_LIBS) -o $@ passdb/pdb_ldap.po \
-+              -Wl,-soname=`basename $@`
-+
-+bin/tdbsam.so: passdb/pdb_tdb.po
-+      @echo "Building plugin $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ passdb/pdb_tdb.po \
-+              -Wl,-soname=`basename $@`
-+
-+bin/smbpasswd.so: passdb/pdb_smbpasswd.po
-+      @echo "Building plugin $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ passdb/pdb_smbpasswd.po \
-+              -Wl,-soname=`basename $@`
-+
-+bin/idmap_rid.so: sam/idmap_rid.po
-+      @echo "Building plugin $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ sam/idmap_rid.po \
-+              -Wl,-soname=`basename $@`
-+
-+bin/idmap_ad.so: sam/idmap_ad.po
-+      @echo "Building plugin $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ sam/idmap_ad.po \
-+              -Wl,-soname=`basename $@`
-+
-+bin/weird.so: $(DEVEL_HELP_WEIRD_OBJ:.o=.po)
-+      @echo "Building plugin $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(DEVEL_HELP_WEIRD_OBJ:.o=.po) \
-+              -Wl,-soname=`basename $@`
-+
-+bin/CP850.so: $(CP850_OBJ:.o=.po)
-+      @echo "Building plugin $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(CP850_OBJ:.o=.po) \
-+              -Wl,-soname=`basename $@`
-+
-+bin/CP437.so: $(CP437_OBJ:.o=.po)
-+      @echo "Building plugin $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(CP437_OBJ:.o=.po) \
-+              -Wl,-soname=`basename $@`
-+
-+bin/macosxfs.so: $(CHARSET_MACOSXFS_OBJ:.o=.po)
-+      @echo "Building plugin $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(CHARSET_MACOSXFS_OBJ:.o=.po) \
-+              -framework CoreFoundation -Wl,-soname=`basename $@`
-+
-+bin/xml.so: $(XML_OBJ:.o=.po)
-+      @echo "Building plugin $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(XML_OBJ:.o=.po)  \
-+              -Wl,-soname=`basename $@`
-+
-+bin/audit.so: $(VFS_AUDIT_OBJ:.o=.po)
-+      @echo "Building plugin $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_AUDIT_OBJ:.o=.po) \
-+              -Wl,-soname=`basename $@`
-+
-+bin/extd_audit.so: $(VFS_EXTD_AUDIT_OBJ:.o=.po)
-+      @echo "Building plugin $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_EXTD_AUDIT_OBJ:.o=.po) \
-+              -Wl,-soname=`basename $@`
-+
-+bin/full_audit.so: $(VFS_FULL_AUDIT_OBJ:.o=.po)
-+      @echo "Building plugin $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_FULL_AUDIT_OBJ:.o=.po) \
-+              -Wl,-soname=`basename $@`
-+
-+bin/recycle.so: $(VFS_RECYCLE_OBJ:.o=.po)
-+      @echo "Building plugin $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_RECYCLE_OBJ:.o=.po) \
-+              -Wl,-soname=`basename $@`
-+
-+bin/netatalk.so: $(VFS_NETATALK_OBJ:.o=.po)
-+      @echo "Building plugin $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_NETATALK_OBJ:.o=.po) \
-+              -Wl,-soname=`basename $@`
-+
-+bin/fake_perms.so: $(VFS_FAKE_PERMS_OBJ:.o=.po)
-+      @echo "Building plugin $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_FAKE_PERMS_OBJ:.o=.po) \
-+              -Wl,-soname=`basename $@`
-+
-+bin/default_quota.so: $(VFS_DEFAULT_QUOTA_OBJ:.o=.po)
-+      @echo "Building plugin $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_DEFAULT_QUOTA_OBJ:.o=.po) \
-+              -Wl,-soname=`basename $@`
-+
-+bin/readonly.so: $(VFS_READONLY_OBJ:.o=.po)
-+      @echo "Building plugin $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_READONLY_OBJ:.o=.po) \
-+              -Wl,-soname=`basename $@`
-+
-+bin/shadow_copy.so: $(VFS_SHADOW_COPY_OBJ:.o=.po)
-+      @echo "Building plugin $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_SHADOW_COPY_OBJ:.o=.po) \
-+              -Wl,-soname=`basename $@`
-+
-+bin/cap.so: $(VFS_CAP_OBJ:.o=.po)
-+      @echo "Building plugin $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_CAP_OBJ:.o=.po) \
-+              -Wl,-soname=`basename $@`
-+
-+bin/expand_msdfs.so: $(VFS_EXPAND_MSDFS_OBJ:.o=.po)
-+      @echo "Building plugin $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_EXPAND_MSDFS_OBJ:.o=.po) \
-+              -Wl,-soname=`basename $@`
-+
-+bin/afsacl.so: $(VFS_AFSACL_OBJ:.o=.po)
-+      @echo "Building plugin $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_AFSACL_OBJ:.o=.po) \
-+              -Wl,-soname=`basename $@`
-+
-+bin/catia.so: $(VFS_CATIA_OBJ:.o=.po)
-+      @echo "Building plugin $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_CATIA_OBJ:.o=.po) \
-+              -Wl,-soname=`basename $@`
-+
-+
-+bin/wbinfo: $(WBINFO_OBJ) $(POPT_OBJS) bin/.dummy
-+      @echo Linking $@
-+      @$(CC) $(FLAGS)  -o $@ $(LDFLAGS) $(WBINFO_OBJ) $(DYNEXP) $(LIBS) $(POPT_OBJS)
-+
-+bin/ntlm_auth: $(NTLM_AUTH_OBJ) $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) \
-+              $(POPT_OBJS) bin/.dummy
-+      @echo Linking $@
-+      @$(CC) $(FLAGS)  -o $@ $(LDFLAGS) $(DYNEXP) $(NTLM_AUTH_OBJ) \
-+              $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) $(LIBS) \
-+              $(POPT_OBJS) $(KRB5LIBS) $(LDAP_LIBS)
-+
-+bin/pam_smbpass.so: $(PAM_SMBPASS_PICOOBJ)
-+      @echo "Linking shared library $@"
-+      @$(SHLD) $(LDSHFLAGS) -o $@ $(PAM_SMBPASS_PICOOBJ) -lpam $(DYNEXP) $(LIBS) -lc $(LDAP_LIBS) $(KRB5LIBS)
-+
-+bin/libmsrpc.a: $(LIBMSRPC_PICOBJ)
-+      @-$(AR) -rc $@ $(LIBMSRPC_PICOBJ) 
-+
-+bin/tdbbackup: $(TDBBACKUP_OBJ) bin/.dummy
-+      @echo Linking $@
-+      @$(CC) $(FLAGS)  -o $@ $(LDFLAGS) $(DYNEXP) $(LIBS) $(TDBBACKUP_OBJ) 
-+
-+bin/tdbtool: $(TDBTOOL_OBJ) bin/.dummy
-+      @echo Linking $@
-+      @$(CC) $(FLAGS)  -o $@ $(LDFLAGS) $(DYNEXP) $(LIBS) $(TDBTOOL_OBJ) 
-+
-+bin/tdbdump: $(TDBDUMP_OBJ) bin/.dummy
-+      @echo Linking $@
-+      @$(CC) $(FLAGS)  -o $@ $(LDFLAGS) $(DYNEXP) $(LIBS) $(TDBDUMP_OBJ) 
-+
-+bin/t_strcmp: bin/libbigballofmud.so torture/t_strcmp.o
-+      $(CC) $(FLAGS)  -o $@ $(DYNEXP) $(LIBS) torture/t_strcmp.o -L ./bin -lbigballofmud
-+
-+bin/t_strstr: bin/libbigballofmud.so torture/t_strstr.o
-+      $(CC) $(FLAGS)  -o $@ $(DYNEXP) $(LIBS) torture/t_strstr.o -L ./bin -lbigballofmud
-+
-+bin/t_stringoverflow: bin/libbigballofmud.so torture/t_stringoverflow.o
-+      $(CC) $(FLAGS)  -o $@ $(DYNEXP) torture/t_stringoverflow.o -L./bin -lbigballofmud
-+
-+bin/t_doschar: bin/libbigballofmud.so torture/t_doschar.o
-+      $(CC) $(FLAGS)  -o $@ $(DYNEXP) $(LIBS) torture/t_doschar.o -L ./bin -lbigballofmud
-+bin/t_push_ucs2: bin/libbigballofmud.so torture/t_push_ucs2.o
-+      $(CC) $(FLAGS)  -o $@ $(DYNEXP) $(LIBS) torture/t_push_ucs2.o -L ./bin -lbigballofmud
-+
-+bin/t_snprintf: lib/snprintf.c
-+      $(CC) $(FLAGS)  -o $@ $(DYNEXP) -DTEST_SNPRINTF lib/snprintf.c -lm
-+install: installbin installman installscripts installdat installswat installmodules installclientlib
-+
-+install-everything: install installmodules
-+
-+# DESTDIR is used here to prevent packagers wasting their time
-+# duplicating the Makefile. Remove it and you will have the privelege
-+# of package each samba release for muliple versions of multiple
-+# distributions and operating systems, or at least supplying patches
-+# to all the packaging files required for this, prior to committing
-+# the removal of DESTDIR. Do not remove it even though you think it
-+# is not used
-+
-+installdirs:
-+      @$(SHELL) $(srcdir)/script/installdirs.sh $(DESTDIR)$(BASEDIR) $(DESTDIR)$(BINDIR) $(DESTDIR)$(SBINDIR) $(DESTDIR)$(LIBDIR) $(DESTDIR)$(VARDIR) $(DESTDIR)$(PRIVATEDIR) $(DESTDIR)$(PIDDIR) $(DESTDIR)$(LOCKDIR) $(DESTDIR)$(MANDIR)
-+
-+installservers: all installdirs
-+      @$(SHELL) $(srcdir)/script/installbin.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(SBINDIR) $(DESTDIR)$(LIBDIR) $(DESTDIR)$(VARDIR) $(SBIN_PROGS)
-+
-+installbin: all installdirs
-+      @$(SHELL) $(srcdir)/script/installbin.sh $(INSTALLPERMS) $(DESTDIR) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(SBINDIR) $(DESTDIR)$(LIBDIR) $(DESTDIR)$(VARDIR) $(SBIN_PROGS)
-+      @$(SHELL) $(srcdir)/script/installbin.sh $(INSTALLPERMS) $(DESTDIR) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(BINDIR) $(DESTDIR)$(LIBDIR) $(DESTDIR)$(VARDIR) $(BIN_PROGS)
-+
-+
-+# Some symlinks are required for the 'probing' of modules. 
-+# This mechanism should go at some point..
-+installmodules: modules installdirs
-+      @$(SHELL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(VFSLIBDIR) $(VFS_MODULES)
-+      @$(SHELL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(PDBLIBDIR) $(PDB_MODULES)
-+      @$(SHELL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(RPCLIBDIR) $(RPC_MODULES)
-+      @$(SHELL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(IDMAPLIBDIR) $(IDMAP_MODULES)
-+      @$(SHELL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(CHARSETLIBDIR) $(CHARSET_MODULES)
-+      @$(SHELL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(AUTHLIBDIR) $(AUTH_MODULES)
-+      @$(SHELL) $(srcdir)/script/linkmodules.sh $(DESTDIR)$(PDBLIBDIR) ldapsam.so ldapsam_compat.so
-+      @$(SHELL) $(srcdir)/script/linkmodules.sh $(DESTDIR)$(AUTHLIBDIR) rhosts.so hostsequiv.so
-+      @$(SHELL) $(srcdir)/script/linkmodules.sh $(DESTDIR)$(AUTHLIBDIR) sam.so sam_ignoredomain.so
-+      @$(SHELL) $(srcdir)/script/linkmodules.sh $(DESTDIR)$(AUTHLIBDIR) domain.so trustdomain.so ntdomain.so
-+      @$(SHELL) $(srcdir)/script/linkmodules.sh $(DESTDIR)$(AUTHLIBDIR) builtin.so guest.so fixed_challenge.so name_to_ntstatus.so
-+
-+installscripts: installdirs
-+      @$(SHELL) $(srcdir)/script/installscripts.sh $(INSTALLPERMS) $(DESTDIR)$(BINDIR) $(SCRIPTS)
-+
-+installdat: installdirs
-+      @$(SHELL) $(srcdir)/script/installdat.sh $(DESTDIR)$(LIBDIR) $(srcdir)
-+
-+installmsg: installdirs
-+      @$(SHELL) $(srcdir)/script/installmsg.sh $(DESTDIR)$(LIBDIR) $(srcdir)
-+
-+installswat: installdirs installmsg
-+      @$(SHELL) $(srcdir)/script/installswat.sh $(DESTDIR)$(SWATDIR) $(srcdir)
-+
-+installclientlib: installdirs libsmbclient
-+      @$(SHELL) $(srcdir)/script/installdirs.sh $(DESTDIR)$(LIBDIR)
-+      -$(INSTALLCLIENTCMD_SH) bin/libsmbclient.so $(DESTDIR)$(LIBDIR)
-+      -$(INSTALLCLIENTCMD_A) bin/libsmbclient.a $(DESTDIR)$(LIBDIR)
-+      @$(SHELL) $(srcdir)/script/installdirs.sh $(DESTDIR)${prefix}/include
-+      -$(INSTALLCMD) $(srcdir)/include/libsmbclient.h $(DESTDIR)${prefix}/include
-+
-+# Python extensions
-+
-+PYTHON_OBJS = $(PARAM_OBJ) $(LIB_NONSMBD_OBJ) $(LIBSMB_OBJ) $(RPC_PARSE_OBJ) \
-+      $(LIBMSRPC_OBJ) $(PASSDB_OBJ) $(GROUPDB_OBJ) \
-+      $(SECRETS_OBJ) $(KRBCLIENT_OBJ) $(SMBLDAP_OBJ)
-+
-+PYTHON_PICOBJS = $(PYTHON_OBJS:.o=.po)
-+
-+python_ext: $(PYTHON_PICOBJS)
-+      @if test -z "$(PYTHON)"; then \
-+              echo Use the option --with-python to configure python; \
-+              exit 1; \
-+      fi
-+      PYTHON_OBJS="$(PYTHON_PICOBJS)" \
-+      PYTHON_CFLAGS="$(CFLAGS) $(CPPFLAGS) $(FLAGS)" \
-+      LIBS="$(LDFLAGS) $(LIBS) $(PASSDB_LIBS) $(IDMAP_LIBS) $(KRB5LIBS) $(LDAP_LIBS)" \
-+              $(PYTHON) python/setup.py build
-+
-+python_install: $(PYTHON_PICOBJS)
-+      @if test -z "$(PYTHON)"; then \
-+              echo Use the option --with-python to configure python; \
-+              exit 1; \
-+      fi
-+      PYTHON_OBJS="$(PYTHON_PICOBJS)" \
-+      PYTHON_CFLAGS="$(CFLAGS) $(CPPFLAGS)" \
-+      LIBS="$(LDFLAGS) $(LIBS)" \
-+              $(PYTHON) python/setup.py install
-+
-+python_clean:
-+      @-if test -n "$(PYTHON)"; then $(PYTHON) python/setup.py clean; fi
-+
-+# revert to the previously installed version
-+revert:
-+      @$(SHELL) $(srcdir)/script/revert.sh $(SBINDIR) $(SBIN_PROGS) 
-+      @$(SHELL) $(srcdir)/script/revert.sh $(BINDIR) $(BIN_PROGS) $(SCRIPTS)
-+
-+installman: installdirs
-+      @$(SHELL) $(srcdir)/script/installman.sh $(DESTDIR)$(MANDIR) $(srcdir) C ""
-+
-+.PHONY: showlayout
-+
-+showlayout: 
-+      @echo "Samba will be installed into:"
-+      @echo "  basedir:     $(BASEDIR)"
-+      @echo "  bindir:      $(BINDIR)"
-+      @echo "  sbindir:     $(SBINDIR)"
-+      @echo "  libdir:      $(LIBDIR)"
-+      @echo "  vardir:      $(VARDIR)"
-+      @echo "  mandir:      $(MANDIR)"
-+      @echo "  privatedir:  $(PRIVATE_DIR)"
-+      @echo "  configdir:   $(CONFIGDIR)"
-+      @echo "  lockdir:     $(LOCKDIR)"
-+      @echo "  piddir:      $(PIDDIR)"
-+      @echo "  swatdir:     $(SWATDIR)"
-+
-+
-+uninstall: uninstallman uninstallbin uninstallscripts uninstallmodules
-+
-+uninstallman:
-+      @$(SHELL) $(srcdir)/script/uninstallman.sh $(DESTDIR)$(MANDIR) $(srcdir) C
-+
-+uninstallbin:
-+      @$(SHELL) $(srcdir)/script/uninstallbin.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(SBINDIR) $(DESTDIR)$(LIBDIR) $(DESTDIR)$(VARDIR) $(DESTDIR)$(SBIN_PROGS)
-+      @$(SHELL) $(srcdir)/script/uninstallbin.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(BINDIR) $(DESTDIR)$(LIBDIR) $(DESTDIR)$(VARDIR) $(DESTDIR)$(BIN_PROGS)
-+
-+uninstallmodules:
-+      @$(SHELL) $(srcdir)/script/uninstallmodules.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(VFSLIBDIR) $(DESTDIR)$(VFS_MODULES)
-+      @$(SHELL) $(srcdir)/script/uninstallmodules.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(PDBLIBDIR) $(DESTDIR)$(PDB_MODULES)
-+      @$(SHELL) $(srcdir)/script/uninstallmodules.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(RPCLIBDIR) $(DESTDIR)$(RPC_MODULES)
-+      @$(SHELL) $(srcdir)/script/uninstallmodules.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(CHARSETLIBDIR) $(DESTDIR)$(CHARSET_MODULES)
-+      @$(SHELL) $(srcdir)/script/uninstallmodules.sh $(INSTALLPERMS) $(DESTDIR)$(BASEDIR) $(DESTDIR)$(AUTHLIBDIR) $(DESTDIR)$(AUTH_MODULES)
-+
-+uninstallscripts:
-+      @$(SHELL) $(srcdir)/script/uninstallscripts.sh $(INSTALLPERMS) $(DESTDIR)$(BINDIR) $(SCRIPTS)
-+
-+# Toplevel clean files
-+TOPFILES=dynconfig.o dynconfig.po
-+
-+clean: delheaders python_clean
-+      -rm -f core */*~ *~ */*.o */*.po */*.so \
-+              $(TOPFILES) $(BIN_PROGS) $(SBIN_PROGS) $(MODULES) $(TORTURE_PROGS) \
-+              $(LIBSMBCLIENT) $(LIBSMBSHAREMODES) $(EVERYTHING_PROGS) .headers.stamp 
-+      -rm -rf t_dir
-+      -rm -rf bin/lib*
-+      -find . -name *.o | xargs rm -f
-+      -find . -name *.po | xargs rm -f
-+      -find . -name *.so | xargs rm -f
-+
-+# Making this target will just make sure that the prototype files
-+# exist, not necessarily that they are up to date.  Since they're
-+# removed by "make clean" this will always be run when you do anything
-+# afterwards.
-+proto_exists: include/proto.h include/build_env.h \
-+      nsswitch/winbindd_proto.h web/swat_proto.h \
-+      client/client_proto.h utils/net_proto.h utils/ntlm_auth_proto.h
-+
-+# AR7  smbd/build_options.c
-+
-+delheaders:
-+      @echo Removing prototype headers
-+      @rm -f include/proto.h include/build_env.h  \
-+              nsswitch/winbindd_proto.h web/swat_proto.h \
-+              client/client_proto.h utils/net_proto.h \
-+              smbd/build_options.c
-+
-+MKPROTO_SH = $(srcdir)/script/mkproto.sh
-+
-+# AR7 include/proto.h: smbd/build_options.c
-+
-+include/proto.h:
-+      @echo Building include/proto.h
-+      @cd $(srcdir) && $(SHELL) $(MKPROTO_SH) $(AWK) \
-+        -h _PROTO_H_ $(builddir)/include/proto.h \
-+        $(PROTO_OBJ)
-+
-+include/build_env.h: script/build_env.sh
-+      @echo Building include/build_env.h
-+      @$(SHELL) $(srcdir)/script/build_env.sh $(srcdir) $(builddir) $(CC) \
-+        > $(builddir)/include/build_env.h
-+
-+nsswitch/winbindd_proto.h: 
-+      @cd $(srcdir) && $(SHELL) $(MKPROTO_SH) $(AWK) \
-+        -h _WINBINDD_PROTO_H_ $(builddir)/nsswitch/winbindd_proto.h \
-+        $(WINBINDD_OBJ1)
-+
-+web/swat_proto.h: 
-+      @cd $(srcdir) && $(SHELL) $(MKPROTO_SH) $(AWK) \
-+        -h _SWAT_PROTO_H_ $(builddir)/web/swat_proto.h \
-+        $(SWAT_OBJ1)
-+
-+client/client_proto.h: 
-+      @cd $(srcdir) && $(SHELL) $(MKPROTO_SH) $(AWK) \
-+        -h _CLIENT_PROTO_H_ $(builddir)/client/client_proto.h \
-+        $(CLIENT_OBJ1)
-+
-+utils/net_proto.h: 
-+      @cd $(srcdir) && $(SHELL) $(MKPROTO_SH) $(AWK) \
-+        -h _NET_PROTO_H_ $(builddir)/utils/net_proto.h \
-+        $(NET_OBJ1)
-+
-+utils/ntlm_auth_proto.h: 
-+      @cd $(srcdir) && $(SHELL) $(MKPROTO_SH) $(AWK) \
-+        -h _NTLM_AUTH_PROTO_H_ $(builddir)/utils/ntlm_auth_proto.h \
-+        $(NTLM_AUTH_OBJ1)
+--- a/source/libsmb/namequery.c
++++ b/source/libsmb/namequery.c
+@@ -1114,6 +1114,7 @@ static BOOL resolve_ads(const char *name
+                       const char *sitename,
+                          struct ip_service **return_iplist, int *return_count)
+ {
++#ifdef HAVE_ADS
+       int                     i, j;
+       NTSTATUS                status;
+       TALLOC_CTX              *ctx;
+@@ -1194,6 +1195,9 @@ static BOOL resolve_ads(const char *name
+               
+       talloc_destroy(ctx);
+       return True;
++#else         /* HAVE_ADS */
++      return False;
++#endif
+ }
+ /*******************************************************************
+--- a/source/libsmb/namequery_dc.c
++++ b/source/libsmb/namequery_dc.c
+@@ -52,6 +52,9 @@ static BOOL ads_dc_name(const char *doma
+                       struct in_addr *dc_ip,
+                       fstring srv_name)
+ {
++#if 1 /* AVM */
++      return False;
++#else
+       ADS_STRUCT *ads;
+       char *sitename;
+       int i;
+@@ -139,6 +142,7 @@ static BOOL ads_dc_name(const char *doma
+                srv_name, inet_ntoa(*dc_ip)));
+       
+       return True;
++#endif /* AVM */
+ }
+ /****************************************************************************
+--- a/source/modules/vfs_default.c
++++ b/source/modules/vfs_default.c
+@@ -24,6 +24,78 @@
+ #undef DBGC_CLASS
+ #define DBGC_CLASS DBGC_VFS
++// AVM_SEC - avoid following NTFS symbolic links to "not allowed places"
++// #define AVM_SEC
 +
-+# "make headers" or "make proto" calls a subshell because we need to
-+# make sure these commands are executed in sequence even for a
-+# parallel make.
-+headers: 
-+      $(MAKE) delheaders; \
-+      $(MAKE) smbd/build_options.c; \
-+      $(MAKE) include/proto.h; \
-+      $(MAKE) include/build_env.h; \
-+      $(MAKE) nsswitch/winbindd_proto.h; \
-+      $(MAKE) web/swat_proto.h; \
-+      $(MAKE) client/client_proto.h; \
-+      $(MAKE) utils/ntlm_auth_proto.h; \
-+      $(MAKE) utils/net_proto.h;
 +
-+proto: headers 
++#ifdef AVM_SEC
++static int IsAllowed(const char *pa)
++{
++      // only allow access below /var/media/ftp/
 +
-+.PHONY: headers proto
++      if (!pa) return 0;
 +
-+etags:
-+      etags `find $(srcdir) -name "*.[ch]" | grep -v /CVS/`
++Log(("IsAllowed: checking %s", pa));
 +
-+ctags:
-+      ctags `find $(srcdir) -name "*.[ch]" | grep -v /CVS/`
++      char *path = strdup(pa);
++      if (!path) goto no;
 +
-+realclean: clean delheaders
-+      -rm -f config.log bin/.dummy script/findsmb
++      char buf[4096];
++      int ret;
++      char *p = &path[strlen(path)];
++      char c = *p;
++      do {
++              if (path[0] == '\0') {
++                      if (0 == getcwd(buf, sizeof(buf))) {
++                              *p = c;
++                              goto no; // failed - not allowed
++                      }
++                      ret = 0;
++              } else {
++                      if (0 == realpath(path, buf)) ret = -1;
++                      else ret = 0;
++              }
++              if (ret) {
++                      // realpath failed - remove prev path component
++                      *p = c;
++                      while(p > path && *(p-1) != '/') p--;
++                      if (p <= path) {
++                              p = path;
++                      } else {
++                              p--;
++                      }
++                      c = *p;
++                      *p = '\0';
++              }
++      } while(ret);
 +
-+distclean: realclean
-+      -rm -f include/stamp-h
-+      -rm -f include/config.h Makefile
-+      -rm -f config.status config.cache so_locations
-+      -rm -rf .deps TAGS
++      *p = c;
 +
-+realdistclean: distclean
-+      -rm -f include/config.h.in
-+      -rm -f include/version.h
-+      -rm -f configure
++#if 0 // TODO
++      // weitere pfadkompontenen // /./ und /../ auswerten
++      // assert (*p ist '\0' oder '/')
++      while(*p != '\0') {
++              xxx
++      }
++#endif
 +
-+# this target is really just for my use. It only works on a limited
-+# range of machines and is used to produce a list of potentially
-+# dead (ie. unused) functions in the code. (tridge)
-+finddead:
-+      nm */*.o |grep 'U ' | awk '{print $$2}' | sort -u > nmused.txt
-+      nm */*.o |grep 'T ' | awk '{print $$3}' | sort -u > nmfns.txt
-+      comm -13 nmused.txt nmfns.txt 
++      if (buf != strstr(buf, "/var/media/ftp")) goto no;
++      c = buf[strlen("/var/media/ftp")];
++      if (c != '/' && c != '\0') goto no;
 +
++Log(("IsAllowed: %s ok", pa));
++      if (path) free(path);
++      return 1;
 +
-+# when configure.in is updated, reconfigure
-+$(srcdir)/configure: $(srcdir)/configure.in
-+      @echo "WARNING: you need to rerun ./autogen.sh"
++no:
++      Log(("IsAllowed: %s not allowed", pa ? pa : "(null)"));
++      if (path) free(path);
++      return 0;
++}
++#endif
 +
-+config.status: $(srcdir)/configure
-+      @echo "WARNING: you need to run ./configure"
 +
-+# AR7 Makefile: $(srcdir)/Makefile.in config.status
-+# AR7 @echo "WARNING: you need to run ./config.status"
 +
-+######################################################################
-+# Samba Testing Framework
+ /* Check for NULL pointer parameters in vfswrap_* functions */
+ /* We don't want to have NULL function pointers lying around.  Someone
+@@ -88,6 +160,10 @@ static int vfswrap_get_shadow_copy_data(
+ static int vfswrap_statvfs(struct vfs_handle_struct *handle,  const char *path, vfs_statvfs_struct *statbuf)
+ {
++#ifdef AVM_SEC
++      if (!IsAllowed(path)) { errno = EACCES; return -1; }
++#endif
 +
-+# FIXME: LD_LIBRARY_PATH is not portable, but in the absence of
-+# libtool I don't know a better way to do it.  Perhaps we should fix
-+# libbigballofmud to link statically?
-+##
-+## not working...to be replaced by 'make test' --jerry
-+##
-+#check: check-programs
-+#     LD_LIBRARY_PATH="`pwd`/bin:$$LD_LIBRARY_PATH" \
-+#     PATH="`pwd`/bin:$$PATH" \
-+#     python stf/standardcheck.py; \
-+#     if test -n "$(PYTHON)"; then \
-+#             python stf/pythoncheck.py; \
-+#     fi
+       return sys_statvfs(path, statbuf);
+ }
+@@ -97,6 +173,10 @@ static SMB_STRUCT_DIR *vfswrap_opendir(v
+ {
+       SMB_STRUCT_DIR *result;
++#ifdef AVM_SEC
++      if (!IsAllowed(fname)) { errno = EACCES; return 0; }
++#endif
 +
-+# These are called by the test suite and need to be built before
-+# running it.  For the time being we don't build all of BIN_PROGS,
-+# because they're not all needed.
-+check-programs: bin/t_strcmp bin/t_strstr bin/t_push_ucs2 bin/smbcontrol bin/t_snprintf
+       START_PROFILE(syscall_opendir);
+       result = sys_opendir(fname);
+       END_PROFILE(syscall_opendir);
+@@ -141,6 +221,10 @@ static int vfswrap_mkdir(vfs_handle_stru
+       int result;
+       BOOL has_dacl = False;
++#ifdef AVM_SEC
++      if (!IsAllowed(path)) { errno = EACCES; return -1; }
++#endif
 +
-+test: all
-+      @if test -z "$(SMB4TORTURE)"; then \
-+              echo "Please set the SMB4TORTURE environment variable"; \
-+              exit 1; \
-+      fi
-+      ./script/smb4torture.sh `pwd`/prefix-test $(SMB4TORTURE)
-diff -urN samba-3.0.24.orig/source/passdb/lookup_sid.c samba-3.0.24/source/passdb/lookup_sid.c
---- samba-3.0.24.orig/source/passdb/lookup_sid.c       2007-02-04 19:59:21.000000000 +0100
-+++ samba-3.0.24/source/passdb/lookup_sid.c    2007-08-07 09:38:18.000000000 +0200
-@@ -421,10 +421,10 @@
-                       return False;
-               }
+       START_PROFILE(syscall_mkdir);
  
--              become_root_uid_only();
-+              become_root();
-               result = pdb_lookup_rids(domain_sid, num_rids, rids,
-                                        *names, *types);
--              unbecome_root_uid_only();
-+              unbecome_root();
-               return (NT_STATUS_IS_OK(result) ||
-                       NT_STATUS_EQUAL(result, NT_STATUS_NONE_MAPPED) ||
-@@ -1085,9 +1085,9 @@
-               goto done;
-       }
+       if (lp_inherit_acls(SNUM(handle->conn)) && (has_dacl = directory_has_default_acl(handle->conn, parent_dirname(path))))
+@@ -169,6 +253,10 @@ static int vfswrap_rmdir(vfs_handle_stru
+ {
+       int result;
  
--      become_root_uid_only();
-+      become_root();
-       ret = pdb_uid_to_rid(uid, &rid);
--      unbecome_root_uid_only();
-+      unbecome_root();
++#ifdef AVM_SEC
++      if (!IsAllowed(path)) { errno = EACCES; return -1; }
++#endif
++
+       START_PROFILE(syscall_rmdir);
+       result = rmdir(path);
+       END_PROFILE(syscall_rmdir);
+@@ -192,6 +280,10 @@ static int vfswrap_open(vfs_handle_struc
+ {
+       int result;
  
-       if (ret) {
-               /* This is a mapped user */
-@@ -1131,9 +1131,9 @@
-               goto done;
-       }
++#ifdef AVM_SEC
++      if (!IsAllowed(fname)) { errno = EACCES; return -1; }
++#endif
++
+       START_PROFILE(syscall_open);
+       result = sys_open(fname, flags, mode);
+       END_PROFILE(syscall_open);
+@@ -361,6 +453,11 @@ static int copy_reg(const char *source, 
+       int ifd = -1;
+       int ofd = -1;
  
--      become_root_uid_only();
-+      become_root();
-       ret = pdb_gid_to_sid(gid, psid);
--      unbecome_root_uid_only();
-+      unbecome_root();
-       if (ret) {
-               /* This is a mapped group */
-@@ -1179,9 +1179,9 @@
-               union unid_t id;
-               BOOL ret;
--              become_root_uid_only();
-+              become_root();
-               ret = pdb_sid_to_id(psid, &id, &type);
--              unbecome_root_uid_only();
-+              unbecome_root();
-               if (ret) {
-                       if (type != SID_NAME_USER) {
-@@ -1259,9 +1259,9 @@
-            sid_check_is_in_wellknown_domain(psid))) {
-               BOOL ret;
--              become_root_uid_only();
-+              become_root();
-               ret = pdb_getgrsid(&map, *psid);
--              unbecome_root_uid_only();
-+              unbecome_root();
-               if (ret) {
-                       *pgid = map.gid;
-@@ -1273,9 +1273,9 @@
-       if (sid_peek_check_rid(get_global_sam_sid(), psid, &rid)) {
-               BOOL ret;
--              become_root_uid_only();
-+              become_root();
-               ret = pdb_sid_to_id(psid, &id, &type);
--              unbecome_root_uid_only();
-+              unbecome_root();
-               if (ret) {
-                       if ((type != SID_NAME_DOM_GRP) &&
-diff -urN samba-3.0.24.orig/source/printing/nt_printing.c samba-3.0.24/source/printing/nt_printing.c
---- samba-3.0.24.orig/source/printing/nt_printing.c    2007-02-04 20:09:01.000000000 +0100
-+++ samba-3.0.24/source/printing/nt_printing.c 2007-08-07 09:38:18.000000000 +0200
-@@ -2984,11 +2984,15 @@
-       return True;
- }
++#ifdef AVM_SEC
++      if (!IsAllowed(source)) { errno = EACCES; return -1; }
++      if (!IsAllowed(dest)) { errno = EACCES; return -1; }
++#endif
++
+       if (sys_lstat (source, &source_stats) == -1)
+               return -1;
+@@ -442,6 +539,11 @@ static int vfswrap_rename(vfs_handle_str
+ {
+       int result;
  
-+/*****************************************************************
-+ ****************************************************************/
++#ifdef AVM_SEC
++      if (!IsAllowed(oldname)) { errno = EACCES; return -1; }
++      if (!IsAllowed(newname)) { errno = EACCES; return -1; }
++#endif
 +
- static void store_printer_guid(NT_PRINTER_INFO_LEVEL_2 *info2, 
-                              struct uuid guid)
+       START_PROFILE(syscall_rename);
+       result = rename(oldname, newname);
+       if ((result == -1) && (errno == EXDEV)) {
+@@ -471,6 +573,10 @@ static int vfswrap_stat(vfs_handle_struc
  {
-       int i;
-       REGVAL_CTR *ctr=NULL;
-+      UNISTR2 unistr_guid;
+       int result;
  
-       /* find the DsSpooler key */
-       if ((i = lookup_printerkey(info2->data, SPOOL_DSSPOOLER_KEY)) < 0)
-@@ -2996,8 +3000,18 @@
-       ctr = info2->data->keys[i].values;
++#ifdef AVM_SEC
++      if (!IsAllowed(fname)) { errno = EACCES; return -1; }
++#endif
++
+       START_PROFILE(syscall_stat);
+       result = sys_stat(fname, sbuf);
+       END_PROFILE(syscall_stat);
+@@ -491,6 +597,10 @@ int vfswrap_lstat(vfs_handle_struct *han
+ {
+       int result;
  
-       regval_ctr_delvalue(ctr, "objectGUID");
--      regval_ctr_addvalue(ctr, "objectGUID", REG_BINARY, 
--                          (char *) &guid, sizeof(struct uuid));       
++#ifdef AVM_SEC
++      if (!IsAllowed(path)) { errno = EACCES; return -1; }
++#endif
 +
-+      /* We used to store this as a REG_BINARY but that causes
-+         Vista to whine */
+       START_PROFILE(syscall_lstat);
+       result = sys_lstat(path, sbuf);
+       END_PROFILE(syscall_lstat);
+@@ -501,6 +611,10 @@ static int vfswrap_unlink(vfs_handle_str
+ {
+       int result;
++#ifdef AVM_SEC
++      if (!IsAllowed(path)) { errno = EACCES; return -1; }
++#endif
 +
-+      ZERO_STRUCT( unistr_guid );     
-+      init_unistr2( &unistr_guid, smb_uuid_string_static(guid),
-+                    UNI_STR_TERMINATE );
+       START_PROFILE(syscall_unlink);
+       result = unlink(path);
+       END_PROFILE(syscall_unlink);
+@@ -511,6 +625,10 @@ static int vfswrap_chmod(vfs_handle_stru
+ {
+       int result;
++#ifdef AVM_SEC
++      if (!IsAllowed(path)) { errno = EACCES; return -1; }
++#endif
 +
-+      regval_ctr_addvalue(ctr, "objectGUID", REG_SZ, 
-+                          (char *)unistr_guid.buffer, 
-+                          unistr_guid.uni_max_len*2);
-+      
- }
+       START_PROFILE(syscall_chmod);
  
- static WERROR nt_printer_publish_ads(ADS_STRUCT *ads,
-@@ -3254,6 +3268,7 @@
-       REGISTRY_VALUE *guid_val;
-       WERROR win_rc;
-       int i;
-+      BOOL ret = False;
+       /*
+@@ -572,6 +690,10 @@ static int vfswrap_chown(vfs_handle_stru
+ {
+       int result;
  
-       win_rc = get_a_printer(print_hnd, &printer, 2, lp_servicename(snum));
++#ifdef AVM_SEC
++      if (!IsAllowed(path)) { errno = EACCES; return -1; }
++#endif
++
+       START_PROFILE(syscall_chown);
+       result = sys_chown(path, uid, gid);
+       END_PROFILE(syscall_chown);
+@@ -597,6 +719,10 @@ static int vfswrap_chdir(vfs_handle_stru
+ {
+       int result;
  
-@@ -3267,12 +3282,36 @@
-               return False;
++#ifdef AVM_SEC
++      if (!IsAllowed(path)) { errno = EACCES; return -1; }
++#endif
++
+       START_PROFILE(syscall_chdir);
+       result = chdir(path);
+       END_PROFILE(syscall_chdir);
+@@ -717,6 +843,44 @@ static int vfswrap_ftruncate(vfs_handle_
+               return result;
        }
  
--      /* fetching printer guids really ought to be a separate function.. */
--      if (guid && regval_size(guid_val) == sizeof(struct uuid))
--              memcpy(guid, regval_data_p(guid_val), sizeof(struct uuid));
-+      /* fetching printer guids really ought to be a separate function. */
-+
-+      if ( guid ) {   
-+              fstring guid_str;
-+              
-+              /* We used to store the guid as REG_BINARY, then swapped 
-+                 to REG_SZ for Vista compatibility so check for both */
++#if 1 // AVM patch - don't growth the file  (too much time and RAM for copy of large files to USB1.1 FAT filesystem)
++      {
++      SMB_BIG_UINT big_len = len;
 +
-+              switch ( regval_type(guid_val) ){
-+              case REG_SZ:            
-+                      rpcstr_pull( guid_str, regval_data_p(guid_val), 
-+                                   sizeof(guid_str)-1, -1, STR_TERMINATE );
-+                      ret = smb_string_to_uuid( guid_str, guid );
-+                      break;                  
-+              case REG_BINARY:
-+                      if ( regval_size(guid_val) != sizeof(struct uuid) ) {
-+                              ret = False;
-+                              break;
-+                      }
-+                      memcpy(guid, regval_data_p(guid_val), sizeof(struct uuid));
-+                      break;
-+              default:
-+                      DEBUG(0,("is_printer_published: GUID value stored as "
-+                               "invaluid type (%d)\n", regval_type(guid_val) ));                      
-+                      break;
-+              }
++      result = SMB_VFS_FSTAT(fsp,fsp->fh->fd,&st);
++      if (result == -1) {
++              goto done;
 +      }
-       free_a_printer(&printer, 2);
--      return True;
-+      return ret;
- }
- #else
- WERROR nt_printer_publish(Printer_entry *print_hnd, int snum, int action)
-@@ -3539,13 +3578,43 @@
-                       break;
-               }
-               
--              /* add the new value */
-+              DEBUG(8,("specific: [%s:%s], len: %d\n", keyname, valuename, size));
 +
-+              /* Vista doesn't like unknown REG_BINARY values in DsSpooler.  
-+                 Thanks to Martin Zielinski for the hint. */
++      if (big_len == (SMB_BIG_UINT)st.st_size) {
++              result = 0;
++              goto done;
++      }
 +
-+              if ( type == REG_BINARY && 
-+                   strequal( keyname, SPOOL_DSSPOOLER_KEY ) && 
-+                   strequal( valuename, "objectGUID" ) ) 
-+              {
-+                      struct uuid guid;
-+                      UNISTR2 unistr_guid;
++      if (big_len > (SMB_BIG_UINT)st.st_size) {
++              SMB_BIG_UINT space_avail;
++              SMB_BIG_UINT bsize,dfree,dsize;
++              big_len -= st.st_size;
++              big_len /= 1024; /* Len is now number of 1k blocks needed. */
++              space_avail = SMB_VFS_DISK_FREE(fsp->conn ,fsp->fsp_name,False,&bsize,&dfree,&dsize);
++              if (space_avail == (SMB_BIG_UINT)-1) {
++                      result = -1;
++                      goto done;
++              }
 +
-+                      ZERO_STRUCT( unistr_guid );
-+                      
-+                      /* convert the GUID to a UNICODE string */
-+                      
-+                      memcpy( &guid, data_p, sizeof(struct uuid) );
-+                      
-+                      init_unistr2( &unistr_guid, smb_uuid_string_static(guid), 
-+                                    UNI_STR_TERMINATE );
-+                      
-+                      regval_ctr_addvalue( printer_data->keys[key_index].values, 
-+                                           valuename, REG_SZ, 
-+                                           (const char *)unistr_guid.buffer, 
-+                                           unistr_guid.uni_str_len*2 );
++              if (big_len > space_avail) {
++                      errno = ENOSPC;
++                      result = -1;
++                      goto done;
++              }
 +
-+              } else {
-+                      /* add the value */
++              // do nothing to be fast!
++              result = 0;
++              goto done;
++      }
++      } // block
++#endif // AVM Patch
 +
-+                      regval_ctr_addvalue( printer_data->keys[key_index].values, 
-+                                           valuename, type, (const char *)data_p, 
-+                                           size );
-+              }
-               
--              regval_ctr_addvalue( printer_data->keys[key_index].values, valuename, type, (const char *)data_p, size );
-               SAFE_FREE(data_p); /* 'B' option to tdbpack does a malloc() */
--              DEBUG(8,("specific: [%s:%s], len: %d\n", keyname, valuename, size));
-       }
+       /* we used to just check HAVE_FTRUNCATE_EXTEND and only use
+          sys_ftruncate if the system supports it. Then I discovered that
+          you can have some filesystems that support ftruncate
+@@ -830,6 +994,11 @@ static int vfswrap_symlink(vfs_handle_st
+ {
+       int result;
  
-       return len;
-diff -urN samba-3.0.24.orig/source/printing/print_generic.c samba-3.0.24/source/printing/print_generic.c
---- samba-3.0.24.orig/source/printing/print_generic.c  2007-02-04 19:59:13.000000000 +0100
-+++ samba-3.0.24/source/printing/print_generic.c       2007-08-07 09:38:18.000000000 +0200
-@@ -58,7 +58,7 @@
-       if ( do_sub && snum != -1 )
-               standard_sub_snum(snum,syscmd,sizeof(syscmd));
-               
--      ret = smbrun(syscmd,outfd);
-+      ret = smbrun_no_sanitize(syscmd,outfd);
++#ifdef AVM_SEC
++      if (!IsAllowed(oldpath)) { errno = EACCES; return -1; }
++      if (!IsAllowed(newpath)) { errno = EACCES; return -1; }
++#endif
++
+       START_PROFILE(syscall_symlink);
+       result = sys_symlink(oldpath, newpath);
+       END_PROFILE(syscall_symlink);
+@@ -840,6 +1009,10 @@ static int vfswrap_readlink(vfs_handle_s
+ {
+       int result;
  
-       DEBUG(3,("Running the command `%s' gave %d\n",syscmd,ret));
++#ifdef AVM_SEC
++      if (!IsAllowed(path)) { errno = EACCES; return -1; }
++#endif
++
+       START_PROFILE(syscall_readlink);
+       result = sys_readlink(path, buf, bufsiz);
+       END_PROFILE(syscall_readlink);
+@@ -850,6 +1023,11 @@ static int vfswrap_link(vfs_handle_struc
+ {
+       int result;
  
-diff -urN samba-3.0.24.orig/source/registry/regfio.c samba-3.0.24/source/registry/regfio.c
---- samba-3.0.24.orig/source/registry/regfio.c 2007-02-04 19:59:26.000000000 +0100
-+++ samba-3.0.24/source/registry/regfio.c      2007-08-07 09:38:18.000000000 +0200
-@@ -642,8 +642,12 @@
-               return False;
++#ifdef AVM_SEC
++      if (!IsAllowed(oldpath)) { errno = EACCES; return -1; }
++      if (!IsAllowed(newpath)) { errno = EACCES; return -1; }
++#endif
++
+       START_PROFILE(syscall_link);
+       result = sys_link(oldpath, newpath);
+       END_PROFILE(syscall_link);
+@@ -860,6 +1038,9 @@ static int vfswrap_mknod(vfs_handle_stru
+ {
+       int result;
  
-       if ( UNMARSHALLING(&hbin->ps) ) {
--              if ( !(lf->hashes = PRS_ALLOC_MEM( &hbin->ps, REGF_HASH_REC, lf->num_keys )) )
--                      return False;
-+              if (lf->num_keys) {
-+                      if ( !(lf->hashes = PRS_ALLOC_MEM( &hbin->ps, REGF_HASH_REC, lf->num_keys )) )
-+                              return False;
-+              } else {
-+                      lf->hashes = NULL;
-+              }
-       }
++#ifdef AVM_SEC
++      if (!IsAllowed(pathname)) { errno = EACCES; return -1; }
++#endif
+       START_PROFILE(syscall_mknod);
+       result = sys_mknod(pathname, mode, dev);
+       END_PROFILE(syscall_mknod);
+@@ -870,6 +1051,9 @@ static char *vfswrap_realpath(vfs_handle
+ {
+       char *result;
  
-       for ( i=0; i<lf->num_keys; i++ ) {
-diff -urN samba-3.0.24.orig/source/registry/reg_frontend.c samba-3.0.24/source/registry/reg_frontend.c
---- samba-3.0.24.orig/source/registry/reg_frontend.c   2005-11-09 19:29:03.000000000 +0100
-+++ samba-3.0.24/source/registry/reg_frontend.c        2007-07-17 13:19:05.000000000 +0200
-@@ -35,9 +35,11 @@
++#ifdef AVM_SEC
++      if (!IsAllowed(path)) { errno = EACCES; return 0; }
++#endif
+       START_PROFILE(syscall_realpath);
+       result = sys_realpath(path, resolved_path);
+       END_PROFILE(syscall_realpath);
+--- a/source/param/loadparm.c
++++ b/source/param/loadparm.c
+@@ -2713,8 +2713,11 @@ static BOOL lp_add_ipc(const char *ipc_n
+       slprintf(comment, sizeof(comment) - 1,
+                "IPC Service (%s)", Globals.szServerString);
+-
++#if 0 /* AVM */
++      string_set(&ServicePtrs[i]->szPath, "/var/media/ftp");
++#else
+       string_set(&ServicePtrs[i]->szPath, tmpdir());
++#endif
+       string_set(&ServicePtrs[i]->szUsername, "");
+       string_set(&ServicePtrs[i]->comment, comment);
+       string_set(&ServicePtrs[i]->fstype, "IPC");
+--- a/source/registry/reg_frontend.c
++++ b/source/registry/reg_frontend.c
+@@ -35,9 +35,11 @@ extern REGISTRY_OPS regdb_ops;              /* these
  
  REGISTRY_HOOK reg_hooks[] = {
  #ifndef REG_TDB_ONLY 
@@ -5002,10 +562,9 @@ diff -urN samba-3.0.24.orig/source/registry/reg_frontend.c samba-3.0.24/source/r
    { KEY_SHARES,               &shares_reg_ops },
  #endif
    { NULL, NULL }
-diff -urN samba-3.0.24.orig/source/rpc_client/cli_pipe.c samba-3.0.24/source/rpc_client/cli_pipe.c
---- samba-3.0.24.orig/source/rpc_client/cli_pipe.c     2007-02-04 19:59:11.000000000 +0100
-+++ samba-3.0.24/source/rpc_client/cli_pipe.c  2007-07-17 13:19:05.000000000 +0200
-@@ -619,7 +619,11 @@
+--- a/source/rpc_client/cli_pipe.c
++++ b/source/rpc_client/cli_pipe.c
+@@ -619,7 +619,11 @@ static NTSTATUS cli_pipe_validate_curren
  
                        DEBUG(1, ("cli_pipe_validate_current_pdu: RPC fault code %s received from remote machine %s "
                                "pipe %s fnum 0x%x!\n",
@@ -5017,308 +576,13 @@ diff -urN samba-3.0.24.orig/source/rpc_client/cli_pipe.c samba-3.0.24/source/rpc
                                cli->cli->desthost,
                                cli->pipe_name,
                                (unsigned int)cli->fnum));
-diff -urN samba-3.0.24.orig/source/rpc_parse/parse_dfs.c samba-3.0.24/source/rpc_parse/parse_dfs.c
---- samba-3.0.24.orig/source/rpc_parse/parse_dfs.c     2007-02-04 19:59:22.000000000 +0100
-+++ samba-3.0.24/source/rpc_parse/parse_dfs.c  2007-08-07 09:38:18.000000000 +0200
-@@ -325,7 +325,9 @@
-                       return False;
-               
-               if (UNMARSHALLING(ps)) {
--                      v->stores = (void *)PRS_ALLOC_MEM_VOID(ps,sizeof(*v->stores)*v->num_stores);
-+                      v->stores = PRS_ALLOC_MEM(ps,NETDFS_DFS_STORAGEINFO,v->num_stores);
-+                      if (!v->stores)
-+                              return False;
-               }
-               for (i_stores_1=0; i_stores_1<v->num_stores;i_stores_1++) {
-                       if (!netdfs_io_dfs_StorageInfo_p("stores", &v->stores[i_stores_1], ps, depth))
-@@ -447,7 +449,9 @@
-                       return False;
-               
-               if (UNMARSHALLING(ps)) {
--                      v->stores = (void *)PRS_ALLOC_MEM_VOID(ps,sizeof(*v->stores)*v->num_stores);
-+                      v->stores = PRS_ALLOC_MEM(ps,NETDFS_DFS_STORAGEINFO,v->num_stores);
-+                      if (!v->stores)
-+                              return False;
-               }
-               for (i_stores_1=0; i_stores_1<v->num_stores;i_stores_1++) {
-                       if (!netdfs_io_dfs_StorageInfo_p("stores", &v->stores[i_stores_1], ps, depth))
-@@ -920,7 +924,9 @@
-                       return False;
-               
-               if (UNMARSHALLING(ps)) {
--                      v->s = (void *)PRS_ALLOC_MEM_VOID(ps,sizeof(*v->s)*v->count);
-+                      v->s = PRS_ALLOC_MEM(ps,NETDFS_DFS_INFO1,v->count);
-+                      if (!v->s)
-+                              return False;
-               }
-               for (i_s_1=0; i_s_1<v->count;i_s_1++) {
-                       if (!netdfs_io_dfs_Info1_p("s", &v->s[i_s_1], ps, depth))
-@@ -986,7 +992,9 @@
-                       return False;
-               
-               if (UNMARSHALLING(ps)) {
--                      v->s = (void *)PRS_ALLOC_MEM_VOID(ps,sizeof(*v->s)*v->count);
-+                      v->s = PRS_ALLOC_MEM(ps,NETDFS_DFS_INFO2,v->count);
-+                      if (!v->s)
-+                              return False;
-               }
-               for (i_s_1=0; i_s_1<v->count;i_s_1++) {
-                       if (!netdfs_io_dfs_Info2_p("s", &v->s[i_s_1], ps, depth))
-@@ -1052,7 +1060,9 @@
-                       return False;
-               
-               if (UNMARSHALLING(ps)) {
--                      v->s = (void *)PRS_ALLOC_MEM_VOID(ps,sizeof(*v->s)*v->count);
-+                      v->s = PRS_ALLOC_MEM(ps,NETDFS_DFS_INFO3,v->count);
-+                      if (!v->s)
-+                              return False;
-               }
-               for (i_s_1=0; i_s_1<v->count;i_s_1++) {
-                       if (!netdfs_io_dfs_Info3_p("s", &v->s[i_s_1], ps, depth))
-@@ -1118,7 +1128,9 @@
-                       return False;
-               
-               if (UNMARSHALLING(ps)) {
--                      v->s = (void *)PRS_ALLOC_MEM_VOID(ps,sizeof(*v->s)*v->count);
-+                      v->s = PRS_ALLOC_MEM(ps,NETDFS_DFS_INFO4,v->count);
-+                      if (!v->s)
-+                              return False;
-               }
-               for (i_s_1=0; i_s_1<v->count;i_s_1++) {
-                       if (!netdfs_io_dfs_Info4_p("s", &v->s[i_s_1], ps, depth))
-@@ -1184,7 +1196,9 @@
-                       return False;
-               
-               if (UNMARSHALLING(ps)) {
--                      v->s = (void *)PRS_ALLOC_MEM_VOID(ps,sizeof(*v->s)*v->count);
-+                      v->s = PRS_ALLOC_MEM(ps,NETDFS_DFS_INFO200,v->count);
-+                      if (!v->s)
-+                              return False;
-               }
-               for (i_s_1=0; i_s_1<v->count;i_s_1++) {
-                       if (!netdfs_io_dfs_Info200_p("s", &v->s[i_s_1], ps, depth))
-@@ -1250,7 +1264,9 @@
-                       return False;
-               
-               if (UNMARSHALLING(ps)) {
--                      v->s = (void *)PRS_ALLOC_MEM_VOID(ps,sizeof(*v->s)*v->count);
-+                      v->s = PRS_ALLOC_MEM(ps,NETDFS_DFS_INFO300,v->count);
-+                      if (!v->s)
-+                              return False;
-               }
-               for (i_s_1=0; i_s_1<v->count;i_s_1++) {
-                       if (!netdfs_io_dfs_Info300_p("s", &v->s[i_s_1], ps, depth))
-diff -urN samba-3.0.24.orig/source/rpc_parse/parse_lsa.c samba-3.0.24/source/rpc_parse/parse_lsa.c
---- samba-3.0.24.orig/source/rpc_parse/parse_lsa.c     2007-02-04 19:59:22.000000000 +0100
-+++ samba-3.0.24/source/rpc_parse/parse_lsa.c  2007-08-07 09:38:18.000000000 +0200
-@@ -1171,7 +1171,7 @@
-       /* Mallocate memory if we're unpacking from the wire */
--      if (UNMARSHALLING(ps)) {
-+      if (UNMARSHALLING(ps) && sen->num_entries) {
-               if ((sen->ptr_sid = PRS_ALLOC_MEM( ps, uint32, sen->num_entries)) == NULL) {
-                       DEBUG(3, ("init_lsa_sid_enum(): out of memory for "
-                                 "ptr_sid\n"));
-@@ -1349,12 +1349,17 @@
-                              &trn->num_entries2))
-                       return False;
--              if (UNMARSHALLING(ps)) {
--                      if ((trn->name = PRS_ALLOC_MEM(ps, LSA_TRANS_NAME, trn->num_entries)) == NULL) {
-+              if (trn->num_entries2 != trn->num_entries) {
-+                      /* RPC fault */
-+                      return False;
-+              }
-+
-+              if (UNMARSHALLING(ps) && trn->num_entries2) {
-+                      if ((trn->name = PRS_ALLOC_MEM(ps, LSA_TRANS_NAME, trn->num_entries2)) == NULL) {
-                               return False;
-                       }
--                      if ((trn->uni_name = PRS_ALLOC_MEM(ps, UNISTR2, trn->num_entries)) == NULL) {
-+                      if ((trn->uni_name = PRS_ALLOC_MEM(ps, UNISTR2, trn->num_entries2)) == NULL) {
-                               return False;
-                       }
-               }
-@@ -1406,12 +1411,17 @@
-                              &trn->num_entries2))
-                       return False;
--              if (UNMARSHALLING(ps)) {
--                      if ((trn->name = PRS_ALLOC_MEM(ps, LSA_TRANS_NAME2, trn->num_entries)) == NULL) {
-+              if (trn->num_entries2 != trn->num_entries) {
-+                      /* RPC fault */
-+                      return False;
-+              }
-+
-+              if (UNMARSHALLING(ps) && trn->num_entries2) {
-+                      if ((trn->name = PRS_ALLOC_MEM(ps, LSA_TRANS_NAME2, trn->num_entries2)) == NULL) {
-                               return False;
-                       }
--                      if ((trn->uni_name = PRS_ALLOC_MEM(ps, UNISTR2, trn->num_entries)) == NULL) {
-+                      if ((trn->uni_name = PRS_ALLOC_MEM(ps, UNISTR2, trn->num_entries2)) == NULL) {
-                               return False;
-                       }
-               }
-@@ -1678,7 +1688,7 @@
-                       return False;
-               }
--              if (UNMARSHALLING(ps)) {
-+              if (UNMARSHALLING(ps) && out->num_entries2) {
-                       if ((out->dom_rid = PRS_ALLOC_MEM(ps, DOM_RID, out->num_entries2))
-                           == NULL) {
-                               DEBUG(3, ("lsa_io_r_lookup_names(): out of memory\n"));
-@@ -1803,7 +1813,7 @@
-                       return False;
-               }
--              if (UNMARSHALLING(ps)) {
-+              if (UNMARSHALLING(ps) && out->num_entries2) {
-                       if ((out->dom_rid = PRS_ALLOC_MEM(ps, DOM_RID2, out->num_entries2))
-                           == NULL) {
-                               DEBUG(3, ("lsa_io_r_lookup_names2(): out of memory\n"));
-@@ -1956,7 +1966,7 @@
-                       return False;
-               }
--              if (UNMARSHALLING(ps)) {
-+              if (UNMARSHALLING(ps) && out->num_entries2) {
-                       if ((out->trans_sids = PRS_ALLOC_MEM(ps, LSA_TRANSLATED_SID3, out->num_entries2))
-                           == NULL) {
-                               DEBUG(3, ("lsa_io_r_lookup_names3(): out of memory\n"));
-@@ -2085,7 +2095,7 @@
-                       return False;
-               }
--              if (UNMARSHALLING(ps)) {
-+              if (UNMARSHALLING(ps) && out->num_entries2) {
-                       if ((out->trans_sids = PRS_ALLOC_MEM(ps, LSA_TRANSLATED_SID3, out->num_entries2))
-                           == NULL) {
-                               DEBUG(3, ("lsa_io_r_lookup_names4(): out of memory\n"));
-@@ -2324,7 +2334,7 @@
-               if(!prs_uint32("count1", ps, depth, &out->count1))
-                       return False;
--              if (UNMARSHALLING(ps))
-+              if (UNMARSHALLING(ps) && out->count1)
-                       if (!(out->privs = PRS_ALLOC_MEM(ps, LSA_PRIV_ENTRY, out->count1)))
-                               return False;
-@@ -2759,7 +2769,7 @@
- static BOOL lsa_io_privilege_set(const char *desc, PRIVILEGE_SET *out, prs_struct *ps, int depth)
- {
--      uint32 i;
-+      uint32 i, dummy;
-       prs_debug(ps, depth, desc, "lsa_io_privilege_set");
-       depth++;
-@@ -2767,7 +2777,7 @@
-       if(!prs_align(ps))
-               return False;
-  
--      if(!prs_uint32("count", ps, depth, &out->count))
-+      if(!prs_uint32("count", ps, depth, &dummy))
-               return False;
-       if(!prs_uint32("control", ps, depth, &out->control))
-               return False;
-@@ -3886,7 +3896,7 @@
-       prs_debug(ps, depth, desc, "smb_io_lsa_data_buf");
-       depth++;
--      if ( UNMARSHALLING(ps) ) {
-+      if ( UNMARSHALLING(ps) && length ) {
-               if ( !(buf->data = PRS_ALLOC_MEM( ps, uint8, length )) )
-                       return False;
-       }
-@@ -3900,7 +3910,7 @@
-       if (!prs_uint32("length", ps, depth, &buf->length))
-               return False;
--      if(!prs_uint8s(False, "data", ps, depth, buf->data, size))
-+      if(!prs_uint8s(False, "data", ps, depth, buf->data, length))
-               return False;
-       return True;
-diff -urN samba-3.0.24.orig/source/rpc_parse/parse_net.c samba-3.0.24/source/rpc_parse/parse_net.c
---- samba-3.0.24.orig/source/rpc_parse/parse_net.c     2007-02-04 19:59:22.000000000 +0100
-+++ samba-3.0.24/source/rpc_parse/parse_net.c  2007-08-07 09:38:18.000000000 +0200
-@@ -1721,9 +1721,13 @@
-       }
-       if (UNMARSHALLING(ps)) {
--              usr->gids = PRS_ALLOC_MEM(ps, DOM_GID, usr->num_groups);
--              if (usr->gids == NULL)
--                      return False;
-+              if (usr->num_groups) {
-+                      usr->gids = PRS_ALLOC_MEM(ps, DOM_GID, usr->num_groups);
-+                      if (usr->gids == NULL)
-+                              return False;
-+              } else {
-+                      usr->gids = NULL;
-+              }
-       }
-       for (i = 0; i < usr->num_groups; i++) {
-@@ -1756,10 +1760,15 @@
-                       return False;
-               if (UNMARSHALLING(ps)) {
--                      usr->other_sids = PRS_ALLOC_MEM(ps, DOM_SID2, usr->num_other_sids);
--                      usr->other_sids_attrib =
--                              PRS_ALLOC_MEM(ps, uint32, usr->num_other_sids);
--                                                             
-+                      if (usr->num_other_sids) {
-+                              usr->other_sids = PRS_ALLOC_MEM(ps, DOM_SID2, usr->num_other_sids);
-+                              usr->other_sids_attrib =
-+                                      PRS_ALLOC_MEM(ps, uint32, usr->num_other_sids);
-+                      } else {
-+                              usr->other_sids = NULL;
-+                              usr->other_sids_attrib = NULL;
-+                      }
-+
-                       if ((num_other_sids != 0) &&
-                           ((usr->other_sids == NULL) ||
-                            (usr->other_sids_attrib == NULL)))
-diff -urN samba-3.0.24.orig/source/rpc_parse/parse_prs.c samba-3.0.24/source/rpc_parse/parse_prs.c
---- samba-3.0.24.orig/source/rpc_parse/parse_prs.c     2007-02-04 19:59:22.000000000 +0100
-+++ samba-3.0.24/source/rpc_parse/parse_prs.c  2007-08-07 09:38:18.000000000 +0200
-@@ -156,7 +156,7 @@
- {
-       char *ret = NULL;
--      if (size) {
-+      if (size && count) {
-               /* We can't call the type-safe version here. */
-               ret = _talloc_zero_array(ps->mem_ctx, size, count, "parse_prs");
-       }
-@@ -642,9 +642,13 @@
-               return True;
-       if (UNMARSHALLING(ps)) {
--              if ( !(*data = PRS_ALLOC_MEM_VOID(ps, data_size)) )
--                      return False;
--      }
-+              if (data_size) {
-+                      if ( !(*data = (void *)PRS_ALLOC_MEM(ps, char, data_size)) )
-+                              return False;
-+              } else {
-+                      *data = NULL;
-+              }
-+      }       
-       return prs_fn(name, ps, depth, *data);
- }
-@@ -789,8 +793,13 @@
-                       SIVAL(q,0,NT_STATUS_V(*status));
+--- a/source/rpc_parse/parse_prs.c
++++ b/source/rpc_parse/parse_prs.c
+@@ -796,7 +796,12 @@ BOOL prs_dcerpc_status(const char *name,
        }
  
--      DEBUG(5,("%s%04x %s: %s\n", tab_depth(depth), ps->data_offset, name, 
+       DEBUG(5,("%s%04x %s: %s\n", tab_depth(depth), ps->data_offset, name, 
 -               dcerpc_errstr(NT_STATUS_V(*status))));
-+      DEBUG(5,("%s%04x %s: %s\n", tab_depth(depth), ps->data_offset, name,
 +#if 1 /* AVM */
 +                              "ERRSTR-REPLACEMENT"
 +#else
@@ -5326,150 +590,11 @@ diff -urN samba-3.0.24.orig/source/rpc_parse/parse_prs.c samba-3.0.24/source/rpc
 +#endif
 +               ));
  
-       ps->data_offset += sizeof(uint32);
-@@ -1014,16 +1023,16 @@
-       if (q == NULL)
-               return False;
-+      /* If the string is empty, we don't have anything to stream */
-+      if (str->buf_len==0)
-+              return True;
-+
-       if (UNMARSHALLING(ps)) {
-               str->buffer = PRS_ALLOC_MEM(ps,uint16,str->buf_len);
-               if (str->buffer == NULL)
-                       return False;
-       }
--      /* If the string is empty, we don't have anything to stream */
--      if (str->buf_len==0)
--              return True;
--
-       p = (char *)str->buffer;
-       dbg_rw_punival(charmode, name, depth, ps, q, p, str->buf_len);
-@@ -1053,6 +1062,8 @@
-                       buf->buffer = PRS_ALLOC_MEM(ps, uint16, buf->buf_max_len);
-                       if ( buf->buffer == NULL )
-                               return False;
-+              } else {
-+                      buf->buffer = NULL;
-               }
-       }
-@@ -1080,9 +1091,13 @@
-               if (str->str_str_len > str->str_max_len) {
-                       return False;
-               }
--              str->buffer = PRS_ALLOC_MEM(ps,unsigned char, str->str_max_len);
--              if (str->buffer == NULL)
--                      return False;
-+              if (str->str_max_len) {
-+                      str->buffer = PRS_ALLOC_MEM(ps,unsigned char, str->str_max_len);
-+                      if (str->buffer == NULL)
-+                              return False;
-+              } else {
-+                      str->buffer = NULL;
-+              }
-       }
-       if (UNMARSHALLING(ps)) {
-@@ -1127,9 +1142,13 @@
-               if (str->uni_str_len > str->uni_max_len) {
-                       return False;
-               }
--              str->buffer = PRS_ALLOC_MEM(ps,uint16,str->uni_max_len);
--              if (str->buffer == NULL)
--                      return False;
-+              if (str->uni_max_len) {
-+                      str->buffer = PRS_ALLOC_MEM(ps,uint16,str->uni_max_len);
-+                      if (str->buffer == NULL)
-+                              return False;
-+              } else {
-+                      str->buffer = NULL;
-+              }
-       }
-       p = (char *)str->buffer;
-@@ -1154,9 +1173,13 @@
-               return False;
-       if (UNMARSHALLING(ps)) {
--              str->str.buffer = PRS_ALLOC_MEM(ps,uint16,str->uni_str_len);
--              if (str->str.buffer == NULL)
--                      return False;
-+              if (str->uni_str_len) {
-+                      str->str.buffer = PRS_ALLOC_MEM(ps,uint16,str->uni_str_len);
-+                      if (str->str.buffer == NULL)
-+                              return False;
-+              } else {
-+                      str->str.buffer = NULL;
-+              }
-       }
-       p = (char *)str->str.buffer;
-diff -urN samba-3.0.24.orig/source/rpc_parse/parse_samr.c samba-3.0.24/source/rpc_parse/parse_samr.c
---- samba-3.0.24.orig/source/rpc_parse/parse_samr.c    2007-02-04 19:59:22.000000000 +0100
-+++ samba-3.0.24/source/rpc_parse/parse_samr.c 2007-08-07 09:38:18.000000000 +0200
-@@ -3337,7 +3337,7 @@
-               if(!prs_uint32("num_entries3", ps, depth, &r_u->num_entries3))
-                       return False;
--              if (UNMARSHALLING(ps)) {
-+              if (UNMARSHALLING(ps) && r_u->num_entries2) {
-                       r_u->sam = PRS_ALLOC_MEM(ps,SAM_ENTRY,r_u->num_entries2);
-                       r_u->uni_dom_name = PRS_ALLOC_MEM(ps,UNISTR2,r_u->num_entries2);
-               }
-@@ -3476,7 +3476,7 @@
-               if(!prs_uint32("num_entries3", ps, depth, &r_u->num_entries3))
-                       return False;
--              if (UNMARSHALLING(ps)) {
-+              if (UNMARSHALLING(ps) && r_u->num_entries2) {
-                       r_u->sam = PRS_ALLOC_MEM(ps,SAM_ENTRY,r_u->num_entries2);
-                       r_u->uni_grp_name = PRS_ALLOC_MEM(ps,UNISTR2,r_u->num_entries2);
-               }
-@@ -4980,12 +4980,13 @@
-                       return False;
-               }
--              if (UNMARSHALLING(ps))
-+              if (UNMARSHALLING(ps) && r_u->num_rids2) {
-                       r_u->rids = PRS_ALLOC_MEM(ps, uint32, r_u->num_rids2);
--              if (!r_u->rids) {
--                      DEBUG(0, ("NULL rids in samr_io_r_lookup_names\n"));
--                      return False;
-+                      if (!r_u->rids) {
-+                              DEBUG(0, ("NULL rids in samr_io_r_lookup_names\n"));
-+                              return False;
-+                      }
-               }
-               for (i = 0; i < r_u->num_rids2; i++) {
-@@ -5009,12 +5010,13 @@
-                       return False;
-               }
--              if (UNMARSHALLING(ps))
-+              if (UNMARSHALLING(ps) && r_u->num_types2) {
-                       r_u->types = PRS_ALLOC_MEM(ps, uint32, r_u->num_types2);
--              if (!r_u->types) {
--                      DEBUG(0, ("NULL types in samr_io_r_lookup_names\n"));
--                      return False;
-+                      if (!r_u->types) {
-+                              DEBUG(0, ("NULL types in samr_io_r_lookup_names\n"));
-+                              return False;
-+                      }
-               }
+       ps->data_offset += sizeof(uint32);
  
-               for (i = 0; i < r_u->num_types2; i++) {
-diff -urN samba-3.0.24.orig/source/rpc_parse/parse_sec.c samba-3.0.24/source/rpc_parse/parse_sec.c
---- samba-3.0.24.orig/source/rpc_parse/parse_sec.c     2005-04-18 18:38:20.000000000 +0200
-+++ samba-3.0.24/source/rpc_parse/parse_sec.c  2007-08-07 09:38:18.000000000 +0200
-@@ -122,7 +122,7 @@
+--- a/source/rpc_parse/parse_sec.c
++++ b/source/rpc_parse/parse_sec.c
+@@ -104,7 +104,7 @@ BOOL sec_io_ace(const char *desc, SEC_AC
   for you as it reads them.
  ********************************************************************/
  
@@ -5478,28 +603,9 @@ diff -urN samba-3.0.24.orig/source/rpc_parse/parse_sec.c samba-3.0.24/source/rpc
  {
        unsigned int i;
        uint32 old_offset;
-@@ -165,13 +165,10 @@
-               return False;
-       if (UNMARSHALLING(ps)) {
--              /*
--               * Even if the num_aces is zero, allocate memory as there's a difference
--               * between a non-present DACL (allow all access) and a DACL with no ACE's
--               * (allow no access).
--               */
--              if((psa->ace = PRS_ALLOC_MEM(ps, SEC_ACE, psa->num_aces+1)) == NULL)
--                      return False;
-+              if (psa->num_aces) {
-+                      if((psa->ace = PRS_ALLOC_MEM(ps, SEC_ACE, psa->num_aces)) == NULL)
-+                              return False;
-+              }
-       }
-       for (i = 0; i < psa->num_aces; i++) {
-diff -urN samba-3.0.24.orig/source/rpc_parse/parse_spoolss.c samba-3.0.24/source/rpc_parse/parse_spoolss.c
---- samba-3.0.24.orig/source/rpc_parse/parse_spoolss.c 2007-02-04 19:59:22.000000000 +0100
-+++ samba-3.0.24/source/rpc_parse/parse_spoolss.c      2007-08-07 09:38:18.000000000 +0200
-@@ -227,8 +227,13 @@
+--- a/source/rpc_parse/parse_spoolss.c
++++ b/source/rpc_parse/parse_spoolss.c
+@@ -227,8 +227,13 @@ static BOOL smb_io_notify_option_type_da
        if(!prs_uint32("count2", ps, depth, &type->count2))
                return False;
        
@@ -5512,226 +618,11 @@ diff -urN samba-3.0.24.orig/source/rpc_parse/parse_spoolss.c samba-3.0.24/source
 +              return False;
 +      }
  
-       /* parse the option type data */
-       for(i=0;i<type->count2;i++)
-@@ -252,7 +257,7 @@
+       if (type->count2 > MAX_NOTIFY_TYPE_FOR_NOW) {
                return False;
-       /* reading */
--      if (UNMARSHALLING(ps))
-+      if (UNMARSHALLING(ps) && ctr->count)
-               if((ctr->type=PRS_ALLOC_MEM(ps,SPOOL_NOTIFY_OPTION_TYPE,ctr->count)) == NULL)
-                       return False;
-               
-@@ -411,7 +416,7 @@
-               if(!prs_uint32("string length", ps, depth, &data->notify_data.data.length))
-                       return False;
--              if (UNMARSHALLING(ps)) {
-+              if (UNMARSHALLING(ps) && data->notify_data.data.length) {
-                       data->notify_data.data.string = PRS_ALLOC_MEM(ps, uint16,
-                                                               data->notify_data.data.length);
-@@ -430,7 +435,7 @@
-       case NOTIFY_POINTER:
--              if (UNMARSHALLING(ps)) {
-+              if (UNMARSHALLING(ps) && data->notify_data.data.length) {
-                       data->notify_data.data.string = PRS_ALLOC_MEM(ps, uint16,
-                                                               data->notify_data.data.length);
-@@ -490,9 +495,13 @@
-                       /* Tallocate memory for string */
--                      data->notify_data.data.string = PRS_ALLOC_MEM(ps, uint16, x * 2);
--                      if (!data->notify_data.data.string) 
--                              return False;
-+                      if (x) {
-+                              data->notify_data.data.string = PRS_ALLOC_MEM(ps, uint16, x * 2);
-+                              if (!data->notify_data.data.string) 
-+                                      return False;
-+                      } else {
-+                              data->notify_data.data.string = NULL;
-+                      }
-                       if(!prs_uint16uni(True,"string",ps,depth,data->notify_data.data.string,x))
-                               return False;
-@@ -3893,7 +3902,16 @@
-               }
-               case 3:
-               {
--                      ptr_sec_desc = q_u->info.info_3->secdesc_ptr;
-+                      /* FIXME ! Our parsing here is wrong I think,
-+                       * but for a level3 it makes no sense for
-+                       * ptr_sec_desc to be NULL. JRA. Based on
-+                       * a Vista sniff from Martin Zielinski <mz@seh.de>.
-+                       */
-+                      if (UNMARSHALLING(ps)) {
-+                              ptr_sec_desc = 1;
-+                      } else {
-+                              ptr_sec_desc = q_u->info.info_3->secdesc_ptr;
-+                      }
-                       break;
-               }
-       }
-@@ -5931,14 +5949,14 @@
-               case REG_BINARY:
-               case REG_DWORD:
-               case REG_MULTI_SZ:
--            if (q_u->max_len) {
--                if (UNMARSHALLING(ps))
--                              q_u->data=PRS_ALLOC_MEM(ps, uint8, q_u->max_len);
--                      if(q_u->data == NULL)
--                              return False;
--                      if(!prs_uint8s(False,"data", ps, depth, q_u->data, q_u->max_len))
--                              return False;
--            }
-+                      if (q_u->max_len) {
-+                              if (UNMARSHALLING(ps))
-+                                      q_u->data=PRS_ALLOC_MEM(ps, uint8, q_u->max_len);
-+                              if(q_u->data == NULL)
-+                                      return False;
-+                              if(!prs_uint8s(False,"data", ps, depth, q_u->data, q_u->max_len))
-+                                      return False;
-+                      }
-                       if(!prs_align(ps))
-                               return False;
-                       break;
-@@ -6956,7 +6974,7 @@
-       
-       /* first loop to write basic enum_value information */
-       
--      if (UNMARSHALLING(ps)) {
-+      if (UNMARSHALLING(ps) && ctr->size_of_array) {
-               ctr->values = PRS_ALLOC_MEM(ps, PRINTER_ENUM_VALUES, ctr->size_of_array);
-               if (!ctr->values)
-                       return False;
-diff -urN samba-3.0.24.orig/source/rpc_parse/parse_srv.c samba-3.0.24/source/rpc_parse/parse_srv.c
---- samba-3.0.24.orig/source/rpc_parse/parse_srv.c     2005-04-18 18:38:20.000000000 +0200
-+++ samba-3.0.24/source/rpc_parse/parse_srv.c  2007-08-07 09:38:18.000000000 +0200
-@@ -782,7 +782,7 @@
-               int num_entries = ctr->num_entries;
-               int i;
--              if (UNMARSHALLING(ps)) {
-+              if (UNMARSHALLING(ps) && num_entries) {
-                       if (!(info0 = PRS_ALLOC_MEM(ps, SRV_SHARE_INFO_0, num_entries)))
-                               return False;
-                       ctr->share.info0 = info0;
-@@ -808,7 +808,7 @@
-               int num_entries = ctr->num_entries;
-               int i;
--              if (UNMARSHALLING(ps)) {
-+              if (UNMARSHALLING(ps) && num_entries) {
-                       if (!(info1 = PRS_ALLOC_MEM(ps, SRV_SHARE_INFO_1, num_entries)))
-                               return False;
-                       ctr->share.info1 = info1;
-@@ -834,7 +834,7 @@
-               int num_entries = ctr->num_entries;
-               int i;
--              if (UNMARSHALLING(ps)) {
-+              if (UNMARSHALLING(ps) && num_entries) {
-                       if (!(info2 = PRS_ALLOC_MEM(ps,SRV_SHARE_INFO_2,num_entries)))
-                               return False;
-                       ctr->share.info2 = info2;
-@@ -859,7 +859,7 @@
-               int num_entries = ctr->num_entries;
-               int i;
--              if (UNMARSHALLING(ps)) {
-+              if (UNMARSHALLING(ps) && num_entries) {
-                       if (!(info501 = PRS_ALLOC_MEM(ps, SRV_SHARE_INFO_501, num_entries)))
-                               return False;
-                       ctr->share.info501 = info501;
-@@ -884,7 +884,7 @@
-               int num_entries = ctr->num_entries;
-               int i;
--              if (UNMARSHALLING(ps)) {
-+              if (UNMARSHALLING(ps) && num_entries) {
-                       if (!(info502 = PRS_ALLOC_MEM(ps,SRV_SHARE_INFO_502,num_entries)))
-                               return False;
-                       ctr->share.info502 = info502;
-@@ -910,7 +910,7 @@
-               int num_entries = ctr->num_entries;
-               int i;
--              if (UNMARSHALLING(ps)) {
-+              if (UNMARSHALLING(ps) && num_entries) {
-                       if (!(info1004 = PRS_ALLOC_MEM(ps,SRV_SHARE_INFO_1004,num_entries)))
-                               return False;
-                       ctr->share.info1004 = info1004;
-@@ -936,7 +936,7 @@
-               int num_entries = ctr->num_entries;
-               int i;
--              if (UNMARSHALLING(ps)) {
-+              if (UNMARSHALLING(ps) && num_entries) {
-                       if (!(info1005 = PRS_ALLOC_MEM(ps,SRV_SHARE_INFO_1005,num_entries)))
-                               return False;
-                       ctr->share.info1005 = info1005;
-@@ -956,7 +956,7 @@
-               int num_entries = ctr->num_entries;
-               int i;
--              if (UNMARSHALLING(ps)) {
-+              if (UNMARSHALLING(ps) && num_entries) {
-                       if (!(info1006 = PRS_ALLOC_MEM(ps,SRV_SHARE_INFO_1006,num_entries)))
-                               return False;
-                       ctr->share.info1006 = info1006;
-@@ -976,7 +976,7 @@
-               int num_entries = ctr->num_entries;
-               int i;
--              if (UNMARSHALLING(ps)) {
-+              if (UNMARSHALLING(ps) && num_entries) {
-                       if (!(info1007 = PRS_ALLOC_MEM(ps,SRV_SHARE_INFO_1007,num_entries)))
-                               return False;
-                       ctr->share.info1007 = info1007;
-@@ -1002,7 +1002,7 @@
-               int num_entries = ctr->num_entries;
-               int i;
--              if (UNMARSHALLING(ps)) {
-+              if (UNMARSHALLING(ps) && num_entries) {
-                       if (!(info1501 = PRS_ALLOC_MEM(ps,SRV_SHARE_INFO_1501,num_entries)))
-                               return False;
-                       ctr->share.info1501 = info1501;
-@@ -2558,7 +2558,7 @@
-               int num_entries = ctr->num_entries;
-               int i;
--              if (UNMARSHALLING(ps)) {
-+              if (UNMARSHALLING(ps) && num_entries) {
-                       if (!(info3 = PRS_ALLOC_MEM(ps, SRV_FILE_INFO_3, num_entries)))
-                               return False;
-                       ctr->file.info3 = info3;
-@@ -3377,7 +3377,7 @@
-       r_n->disk_enum_ctr.entries_read = entries_read3;
--      if(UNMARSHALLING(ps)) {
-+      if(UNMARSHALLING(ps) && entries_read3) {
-               DISK_INFO *dinfo;
-@@ -3386,7 +3386,7 @@
-               r_n->disk_enum_ctr.disk_info = dinfo;
-       }
--      for(i=0; i < r_n->disk_enum_ctr.entries_read; i++) {
-+      for(i=0; i < entries_read3; i++) {
-               if(!prs_uint32("unknown", ps, depth, &r_n->disk_enum_ctr.disk_info[i].unknown))
-                       return False;
-diff -urN samba-3.0.24.orig/source/rpc_server/srv_pipe.c samba-3.0.24/source/rpc_server/srv_pipe.c
---- samba-3.0.24.orig/source/rpc_server/srv_pipe.c     2007-02-04 19:59:21.000000000 +0100
-+++ samba-3.0.24/source/rpc_server/srv_pipe.c  2007-07-17 13:19:05.000000000 +0200
-@@ -2331,6 +2331,7 @@
+--- a/source/rpc_server/srv_pipe.c
++++ b/source/rpc_server/srv_pipe.c
+@@ -2335,6 +2335,7 @@ void get_pipe_fns( int idx, struct api_s
        int               n_cmds = 0;
  
        switch ( idx ) {
@@ -5739,7 +630,7 @@ diff -urN samba-3.0.24.orig/source/rpc_server/srv_pipe.c samba-3.0.24/source/rpc
                case PI_LSARPC:
                        lsa_get_pipe_fns( &cmds, &n_cmds );
                        break;
-@@ -2343,12 +2344,14 @@
+@@ -2347,12 +2348,14 @@ void get_pipe_fns( int idx, struct api_s
                case PI_NETLOGON:
                        netlog_get_pipe_fns( &cmds, &n_cmds );
                        break;
@@ -5754,7 +645,7 @@ diff -urN samba-3.0.24.orig/source/rpc_server/srv_pipe.c samba-3.0.24/source/rpc
                case PI_WINREG:
                        reg_get_pipe_fns( &cmds, &n_cmds );
                        break;
-@@ -2367,6 +2370,8 @@
+@@ -2371,6 +2374,8 @@ void get_pipe_fns( int idx, struct api_s
                case PI_NTSVCS:
                        ntsvcs_get_pipe_fns( &cmds, &n_cmds );
                        break;
@@ -5763,60 +654,8 @@ diff -urN samba-3.0.24.orig/source/rpc_server/srv_pipe.c samba-3.0.24/source/rpc
  #ifdef DEVELOPER
                case PI_ECHO:
                        echo_get_pipe_fns( &cmds, &n_cmds );
-diff -urN samba-3.0.24.orig/source/rpc_server/srv_spoolss.c samba-3.0.24/source/rpc_server/srv_spoolss.c
---- samba-3.0.24.orig/source/rpc_server/srv_spoolss.c  2006-04-20 04:29:27.000000000 +0200
-+++ samba-3.0.24/source/rpc_server/srv_spoolss.c       2007-08-07 09:38:18.000000000 +0200
-@@ -1477,6 +1477,15 @@
-       ZERO_STRUCT(r_u);
-       
-       if(!spoolss_io_q_addprinterdriverex("", &q_u, data, 0)) {
-+              if (q_u.level != 3 && q_u.level != 6) {
-+                      /* Clever hack from Martin Zielinski <mz@seh.de>
-+                       * to allow downgrade from level 8 (Vista).
-+                       */
-+                      DEBUG(3,("api_spoolss_addprinterdriverex: unknown SPOOL_Q_ADDPRINTERDRIVEREX level %u.\n",
-+                              (unsigned int)q_u.level ));
-+                      setup_fault_pdu(p, NT_STATUS(DCERPC_FAULT_INVALID_TAG));
-+                      return True;
-+              }
-               DEBUG(0,("spoolss_io_q_addprinterdriverex: unable to unmarshall SPOOL_Q_ADDPRINTERDRIVEREX.\n"));
-               return False;
-       }
-diff -urN samba-3.0.24.orig/source/rpc_server/srv_spoolss_nt.c samba-3.0.24/source/rpc_server/srv_spoolss_nt.c
---- samba-3.0.24.orig/source/rpc_server/srv_spoolss_nt.c       2007-02-04 19:59:21.000000000 +0100
-+++ samba-3.0.24/source/rpc_server/srv_spoolss_nt.c    2007-08-07 09:38:18.000000000 +0200
-@@ -5848,6 +5848,12 @@
-               goto done;
-       }
-       
-+      if (!secdesc_ctr) {
-+              DEBUG(10,("update_printer_sec: secdesc_ctr is NULL !\n"));
-+              result = WERR_INVALID_PARAM;
-+              goto done;
-+      }
-+
-       /* Check the user has permissions to change the security
-          descriptor.  By experimentation with two NT machines, the user
-          requires Full Access to the printer to change security
-@@ -9378,6 +9384,15 @@
-       
-       /* housekeeping information in the reply */
-       
-+      /* Fix from Martin Zielinski <mz@seh.de> - ensure
-+       * the hand marshalled container size is a multiple
-+       * of 4 bytes for RPC alignment.
-+       */
-+
-+      if (needed % 4) {
-+              needed += 4-(needed % 4);
-+      }
-+
-       r_u->needed     = needed;
-       r_u->returned   = num_entries;
-diff -urN samba-3.0.24.orig/source/smbd/change_trust_pw.c samba-3.0.24/source/smbd/change_trust_pw.c
---- samba-3.0.24.orig/source/smbd/change_trust_pw.c    2005-10-18 04:44:56.000000000 +0200
-+++ samba-3.0.24/source/smbd/change_trust_pw.c 2007-07-17 13:19:05.000000000 +0200
+--- a/source/smbd/change_trust_pw.c
++++ b/source/smbd/change_trust_pw.c
 @@ -30,6 +30,10 @@
  
  NTSTATUS change_trust_account_password( const char *domain, const char *remote_machine)
@@ -5828,29 +667,27 @@ diff -urN samba-3.0.24.orig/source/smbd/change_trust_pw.c samba-3.0.24/source/sm
        NTSTATUS nt_status = NT_STATUS_UNSUCCESSFUL;
        struct in_addr pdc_ip;
        fstring dc_name;
-@@ -95,4 +99,5 @@
+@@ -97,4 +101,5 @@ failed:
                DEBUG(5,("change_trust_account_password: sucess!\n"));
    
        return nt_status;
 +#endif /* AVM_SMALLER */
  }
-diff -urN samba-3.0.24.orig/source/smbd/close.c samba-3.0.24/source/smbd/close.c
---- samba-3.0.24.orig/source/smbd/close.c      2007-02-04 19:59:13.000000000 +0100
-+++ samba-3.0.24/source/smbd/close.c   2007-07-17 13:19:05.000000000 +0200
-@@ -295,7 +295,9 @@
-       }
+--- a/source/smbd/close.c
++++ b/source/smbd/close.c
+@@ -353,7 +353,9 @@ static NTSTATUS close_normal_file(files_
+       saved_status2 = close_filestruct(fsp);
  
        if (fsp->print_file) {
 +#ifndef AVM_NO_PRINTING
                print_fsp_end(fsp, close_type);
 +#endif
                file_free(fsp);
-               return 0;
+               return NT_STATUS_OK;
        }
-diff -urN samba-3.0.24.orig/source/smbd/conn.c samba-3.0.24/source/smbd/conn.c
---- samba-3.0.24.orig/source/smbd/conn.c       2007-02-04 19:59:13.000000000 +0100
-+++ samba-3.0.24/source/smbd/conn.c    2007-07-17 13:19:05.000000000 +0200
-@@ -205,10 +205,13 @@
+--- a/source/smbd/conn.c
++++ b/source/smbd/conn.c
+@@ -216,9 +216,12 @@ BOOL conn_idle_all(time_t t, int deadtim
         * idle with a handle open.
         */
  
@@ -5859,20 +696,17 @@ diff -urN samba-3.0.24.orig/source/smbd/conn.c samba-3.0.24/source/smbd/conn.c
        for (plist = get_first_internal_pipe(); plist; plist = get_next_internal_pipe(plist))
                if (plist->pipe_handles && plist->pipe_handles->count)
                        allidle = False;
--      
-+#endif        
-+
++#endif
+       
        return allidle;
  }
-diff -urN samba-3.0.24.orig/source/smbd/dfree.c samba-3.0.24/source/smbd/dfree.c
---- samba-3.0.24.orig/source/smbd/dfree.c      2005-11-09 19:28:55.000000000 +0100
-+++ samba-3.0.24/source/smbd/dfree.c   2007-07-17 13:19:05.000000000 +0200
-@@ -130,11 +130,13 @@
+--- a/source/smbd/dfree.c
++++ b/source/smbd/dfree.c
+@@ -130,11 +130,13 @@ SMB_BIG_UINT sys_disk_free(connection_st
                }
        }
  
-+#if 0 /* AR7 */
++#if 0 /* AVM */
        if (disk_quotas(path, &bsize_q, &dfree_q, &dsize_q)) {
                (*bsize) = bsize_q;
                (*dfree) = MIN(*dfree,dfree_q);
@@ -5882,56 +716,9 @@ diff -urN samba-3.0.24.orig/source/smbd/dfree.c samba-3.0.24/source/smbd/dfree.c
  
        /* FIXME : Any reason for this assumption ? */
        if (*bsize < 256) {
-diff -urN samba-3.0.24.orig/source/smbd/dir.c samba-3.0.24/source/smbd/dir.c
---- samba-3.0.24.orig/source/smbd/dir.c        2007-02-04 19:59:13.000000000 +0100
-+++ samba-3.0.24/source/smbd/dir.c     2007-08-07 09:38:18.000000000 +0200
-@@ -1255,3 +1255,42 @@
-       }
-       return False;
- }
-+
-+/*****************************************************************
-+ Is this directory empty ?
-+*****************************************************************/
-+
-+NTSTATUS can_delete_directory(struct connection_struct *conn,
-+                              const char *dirname)
-+{
-+      NTSTATUS status = NT_STATUS_OK;
-+      long dirpos = 0;
-+      const char *dname;
-+      struct smb_Dir *dir_hnd = OpenDir(conn, dirname, NULL, 0);
-+
-+      if (!dir_hnd) {
-+              return map_nt_error_from_unix(errno);
-+      }
-+
-+      while ((dname = ReadDirName(dir_hnd,&dirpos))) {
-+              SMB_STRUCT_STAT st;
-+
-+              /* Quick check for "." and ".." */
-+              if (dname[0] == '.') {
-+                      if (!dname[1] || (dname[1] == '.' && !dname[2])) {
-+                              continue;
-+                      }
-+              }
-+
-+              if (!is_visible_file(conn, dirname, dname, &st, True)) {
-+                      continue;
-+              }
-+
-+              DEBUG(10,("can_delete_directory: got name %s - can't delete\n", dname ));
-+              status = NT_STATUS_DIRECTORY_NOT_EMPTY;
-+              break;
-+      }
-+      CloseDir(dir_hnd);
-+
-+      return status;
-+}
-diff -urN samba-3.0.24.orig/source/smbd/dosmode.c samba-3.0.24/source/smbd/dosmode.c
---- samba-3.0.24.orig/source/smbd/dosmode.c    2007-02-04 19:59:13.000000000 +0100
-+++ samba-3.0.24/source/smbd/dosmode.c 2007-07-17 13:19:05.000000000 +0200
-@@ -48,12 +48,15 @@
+--- a/source/smbd/dosmode.c
++++ b/source/smbd/dosmode.c
+@@ -40,12 +40,15 @@ static uint32 set_offline_flag(connectio
        if (ISDOT(path) || ISDOTDOT(path)) {
                return 0;
        }
@@ -5948,19 +735,18 @@ diff -urN samba-3.0.24.orig/source/smbd/dosmode.c samba-3.0.24/source/smbd/dosmo
  }
  
  /****************************************************************************
-diff -urN samba-3.0.24.orig/source/smbd/fileio.c samba-3.0.24/source/smbd/fileio.c
---- samba-3.0.24.orig/source/smbd/fileio.c     2005-10-18 04:44:57.000000000 +0200
-+++ samba-3.0.24/source/smbd/fileio.c  2007-08-07 09:38:18.000000000 +0200
-@@ -176,6 +176,8 @@
+--- a/source/smbd/fileio.c
++++ b/source/smbd/fileio.c
+@@ -176,6 +176,8 @@ static ssize_t real_write_file(files_str
  
  static int wcp_file_size_change(files_struct *fsp)
  {
-+/* AVM: Fuer Pruefung des freien Speichers auf dem Datentraeger wird 
++/* AVM: Fuer Pruefung des freien Speichers auf dem Datentraeger wird
 +   SMB_VFS_FTRUNCATE aufgerufen, auch falls es langsam sein sollte */
        int ret;
        write_cache *wcp = fsp->wcp;
  
-@@ -199,6 +201,10 @@
+@@ -199,6 +201,10 @@ ssize_t write_file(files_struct *fsp, co
        int write_path = -1; 
  
        if (fsp->print_file) {
@@ -5971,7 +757,7 @@ diff -urN samba-3.0.24.orig/source/smbd/fileio.c samba-3.0.24/source/smbd/fileio
                fstring sharename;
                uint32 jobid;
  
-@@ -210,6 +216,7 @@
+@@ -210,6 +216,7 @@ ssize_t write_file(files_struct *fsp, co
                }
  
                return print_job_write(SNUM(fsp->conn), jobid, data, pos, n);
@@ -5979,10 +765,9 @@ diff -urN samba-3.0.24.orig/source/smbd/fileio.c samba-3.0.24/source/smbd/fileio
        }
  
        if (!fsp->can_write) {
-diff -urN samba-3.0.24.orig/source/smbd/files.c samba-3.0.24/source/smbd/files.c
---- samba-3.0.24.orig/source/smbd/files.c      2007-02-04 19:59:13.000000000 +0100
-+++ samba-3.0.24/source/smbd/files.c   2007-07-17 13:19:05.000000000 +0200
-@@ -203,10 +203,12 @@
+--- a/source/smbd/files.c
++++ b/source/smbd/files.c
+@@ -203,10 +203,12 @@ open files, %d are available.\n", reques
                exit_server("out of memory in file_init");
        }
        
@@ -5995,10 +780,9 @@ diff -urN samba-3.0.24.orig/source/smbd/files.c samba-3.0.24/source/smbd/files.c
  }
  
  /****************************************************************************
-diff -urN samba-3.0.24.orig/source/smbd/lanman.c samba-3.0.24/source/smbd/lanman.c
---- samba-3.0.24.orig/source/smbd/lanman.c     2007-02-04 19:59:13.000000000 +0100
-+++ samba-3.0.24/source/smbd/lanman.c  2007-07-17 13:19:05.000000000 +0200
-@@ -378,6 +378,7 @@
+--- a/source/smbd/lanman.c
++++ b/source/smbd/lanman.c
+@@ -400,6 +400,7 @@ static void PACKS(struct pack_desc* desc
        PACK(desc,t,v);
  }
  
@@ -6006,25 +790,25 @@ diff -urN samba-3.0.24.orig/source/smbd/lanman.c samba-3.0.24/source/smbd/lanman
  /****************************************************************************
   Get a print queue.
  ****************************************************************************/
-@@ -753,6 +754,7 @@
-               
+@@ -781,6 +782,7 @@ static int get_printerdrivernumber(int s
        return result;
  }
 +#endif /* AVM_NO_PRINTING */
  
- static BOOL api_DosPrintQGetInfo(connection_struct *conn,
-                                uint16 vuid, char *param,char *data,
-@@ -760,6 +762,9 @@
-                                char **rdata,char **rparam,
-                                int *rdata_len,int *rparam_len)
+ static BOOL api_DosPrintQGetInfo(connection_struct *conn, uint16 vuid,
+                               char *param, int tpscnt,
+@@ -789,6 +791,9 @@ static BOOL api_DosPrintQGetInfo(connect
+                               char **rdata,char **rparam,
+                               int *rdata_len,int *rparam_len)
  {
 +#ifdef AVM_NO_PRINTING
 +return False;
 +#else
-       char *str1 = param+2;
-       char *str2 = skip_string(str1,1);
-       char *p = skip_string(str2,1);
-@@ -865,6 +870,7 @@
+       char *str1 = get_safe_str_ptr(param,tpscnt,param,2);
+       char *str2 = skip_string(param,tpscnt,str1);
+       char *p = skip_string(param,tpscnt,str2);
+@@ -901,6 +906,7 @@ static BOOL api_DosPrintQGetInfo(connect
        SAFE_FREE(tmpdata);
  
        return(True);
@@ -6032,17 +816,17 @@ diff -urN samba-3.0.24.orig/source/smbd/lanman.c samba-3.0.24/source/smbd/lanman
  }
  
  /****************************************************************************
-@@ -876,6 +882,9 @@
-                             char **rdata, char** rparam,
-                             int *rdata_len, int *rparam_len)
+@@ -914,6 +920,9 @@ static BOOL api_DosPrintQEnum(connection
+                               char **rdata, char** rparam,
+                               int *rdata_len, int *rparam_len)
  {
 +#ifdef AVM_NO_PRINTING
 +return False;
 +#else
-       char *param_format = param+2;
-       char *output_format1 = skip_string(param_format,1);
-       char *p = skip_string(output_format1,1);
-@@ -1004,6 +1013,7 @@
+       char *param_format = get_safe_str_ptr(param,tpscnt,param,2);
+       char *output_format1 = skip_string(param,tpscnt,param_format);
+       char *p = skip_string(param,tpscnt,output_format1);
+@@ -1046,6 +1055,7 @@ static BOOL api_DosPrintQEnum(connection
        SAFE_FREE(status);
  
        return False;
@@ -6050,17 +834,17 @@ diff -urN samba-3.0.24.orig/source/smbd/lanman.c samba-3.0.24/source/smbd/lanman
  }
  
  /****************************************************************************
-@@ -2378,6 +2388,9 @@
+@@ -2539,6 +2549,9 @@ static BOOL api_RDosPrintJobDel(connecti
                                char **rdata,char **rparam,
                                int *rdata_len,int *rparam_len)
  {
 +#ifdef AVM_NO_PRINTING
 +return False;
 +#else
-       int function = SVAL(param,0);
-       char *str1 = param+2;
-       char *str2 = skip_string(str1,1);
-@@ -2438,6 +2451,7 @@
+       int function = get_safe_SVAL(param,tpscnt,param,0,0);
+       char *str1 = get_safe_str_ptr(param,tpscnt,param,2);
+       char *str2 = skip_string(param,tpscnt,str1);
+@@ -2609,6 +2622,7 @@ static BOOL api_RDosPrintJobDel(connecti
        SSVAL(*rparam,2,0);             /* converter word */
  
        return(True);
@@ -6068,17 +852,17 @@ diff -urN samba-3.0.24.orig/source/smbd/lanman.c samba-3.0.24/source/smbd/lanman
  }
  
  /****************************************************************************
-@@ -2449,6 +2463,9 @@
-                                char **rdata,char **rparam,
-                                int *rdata_len,int *rparam_len)
+@@ -2622,6 +2636,9 @@ static BOOL api_WPrintQueueCtrl(connecti
+                               char **rdata,char **rparam,
+                               int *rdata_len,int *rparam_len)
  {
 +#ifdef AVM_NO_PRINTING
 +return False;
 +#else
-       int function = SVAL(param,0);
-       char *str1 = param+2;
-       char *str2 = skip_string(str1,1);
-@@ -2494,6 +2511,7 @@
+       int function = get_safe_SVAL(param,tpscnt,param,0,0);
+       char *str1 = get_safe_str_ptr(param,tpscnt,param,2);
+       char *str2 = skip_string(param,tpscnt,str1);
+@@ -2674,6 +2691,7 @@ static BOOL api_WPrintQueueCtrl(connecti
        SSVAL(*rparam,2,0);             /* converter word */
  
        return(True);
@@ -6086,17 +870,17 @@ diff -urN samba-3.0.24.orig/source/smbd/lanman.c samba-3.0.24/source/smbd/lanman
  }
  
  /****************************************************************************
-@@ -2525,6 +2543,9 @@
-                            char **rdata,char **rparam,
-                            int *rdata_len,int *rparam_len)
+@@ -2714,6 +2732,9 @@ static BOOL api_PrintJobInfo(connection_
+                               char **rdata,char **rparam,
+                               int *rdata_len,int *rparam_len)
  {
 +#ifdef AVM_NO_PRINTING
 +return False;
 +#else
        struct pack_desc desc;
-       char *str1 = param+2;
-       char *str2 = skip_string(str1,1);
-@@ -2590,6 +2611,7 @@
+       char *str1 = get_safe_str_ptr(param,tpscnt,param,2);
+       char *str2 = skip_string(param,tpscnt,str1);
+@@ -2788,6 +2809,7 @@ static BOOL api_PrintJobInfo(connection_
        SSVAL(*rparam,2,0);             /* converter word */
        
        return(True);
@@ -6104,35 +888,35 @@ diff -urN samba-3.0.24.orig/source/smbd/lanman.c samba-3.0.24/source/smbd/lanman
  }
  
  
-@@ -3272,6 +3294,9 @@
-                                char **rdata,char **rparam,
-                                int *rdata_len,int *rparam_len)
+@@ -3579,6 +3601,9 @@ static BOOL api_WPrintJobGetInfo(connect
+                               char **rdata,char **rparam,
+                               int *rdata_len,int *rparam_len)
  {
 +#ifdef AVM_NO_PRINTING
 +return False;
 +#else
-       char *str1 = param+2;
-       char *str2 = skip_string(str1,1);
-       char *p = skip_string(str2,1);
-@@ -3358,6 +3383,7 @@
+       char *str1 = get_safe_str_ptr(param,tpscnt,param,2);
+       char *str2 = skip_string(param,tpscnt,str1);
+       char *p = skip_string(param,tpscnt,str2);
+@@ -3669,6 +3694,7 @@ static BOOL api_WPrintJobGetInfo(connect
        DEBUG(4,("WPrintJobGetInfo: errorcode %d\n",desc.errcode));
  
        return True;
 +#endif
  }
  
- static BOOL api_WPrintJobEnumerate(connection_struct *conn,uint16 vuid, char *param,char *data,
-@@ -3365,6 +3391,9 @@
-                                  char **rdata,char **rparam,
-                                  int *rdata_len,int *rparam_len)
+ static BOOL api_WPrintJobEnumerate(connection_struct *conn, uint16 vuid,
+@@ -3678,6 +3704,9 @@ static BOOL api_WPrintJobEnumerate(conne
+                               char **rdata,char **rparam,
+                               int *rdata_len,int *rparam_len)
  {
 +#ifdef AVM_NO_PRINTING
 +return False;
 +#else
-       char *str1 = param+2;
-       char *str2 = skip_string(str1,1);
-       char *p = skip_string(str2,1);
-@@ -3440,6 +3469,7 @@
+       char *str1 = get_safe_str_ptr(param,tpscnt,param,2);
+       char *str2 = skip_string(param,tpscnt,str1);
+       char *p = skip_string(param,tpscnt,str2);
+@@ -3760,6 +3789,7 @@ static BOOL api_WPrintJobEnumerate(conne
        DEBUG(4,("WPrintJobEnumerate: errorcode %d\n",desc.errcode));
  
        return True;
@@ -6140,328 +924,114 @@ diff -urN samba-3.0.24.orig/source/smbd/lanman.c samba-3.0.24/source/smbd/lanman
  }
  
  static int check_printdest_info(struct pack_desc* desc,
-@@ -3509,6 +3539,9 @@
-                                 char **rdata,char **rparam,
-                                 int *rdata_len,int *rparam_len)
+@@ -3835,6 +3865,9 @@ static BOOL api_WPrintDestGetInfo(connec
+                               char **rdata,char **rparam,
+                               int *rdata_len,int *rparam_len)
  {
 +#ifdef AVM_NO_PRINTING
 +return False;
 +#else
-       char *str1 = param+2;
-       char *str2 = skip_string(str1,1);
-       char *p = skip_string(str2,1);
-@@ -3573,6 +3606,7 @@
+       char *str1 = get_safe_str_ptr(param,tpscnt,param,2);
+       char *str2 = skip_string(param,tpscnt,str1);
+       char *p = skip_string(param,tpscnt,str2);
+@@ -3906,6 +3939,7 @@ static BOOL api_WPrintDestGetInfo(connec
        SAFE_FREE(tmpdata);
  
        return True;
 +#endif
  }
  
- static BOOL api_WPrintDestEnum(connection_struct *conn,uint16 vuid, char *param,char *data,
-@@ -3580,6 +3614,9 @@
-                              char **rdata,char **rparam,
-                              int *rdata_len,int *rparam_len)
+ static BOOL api_WPrintDestEnum(connection_struct *conn, uint16 vuid,
+@@ -3915,6 +3949,9 @@ static BOOL api_WPrintDestEnum(connectio
+                               char **rdata,char **rparam,
+                               int *rdata_len,int *rparam_len)
  {
 +#ifdef AVM_NO_PRINTING
 +return False;
 +#else
-       char *str1 = param+2;
-       char *str2 = skip_string(str1,1);
-       char *p = skip_string(str2,1);
-@@ -3648,6 +3685,7 @@
+       char *str1 = get_safe_str_ptr(param,tpscnt,param,2);
+       char *str2 = skip_string(param,tpscnt,str1);
+       char *p = skip_string(param,tpscnt,str2);
+@@ -3987,6 +4024,7 @@ static BOOL api_WPrintDestEnum(connectio
        DEBUG(4,("WPrintDestEnumerate: errorcode %d\n",desc.errcode));
  
        return True;
 +#endif
  }
  
- static BOOL api_WPrintDriverEnum(connection_struct *conn,uint16 vuid, char *param,char *data,
-@@ -3655,6 +3693,9 @@
-                                char **rdata,char **rparam,
-                                int *rdata_len,int *rparam_len)
+ static BOOL api_WPrintDriverEnum(connection_struct *conn, uint16 vuid,
+@@ -3996,6 +4034,9 @@ static BOOL api_WPrintDriverEnum(connect
+                               char **rdata,char **rparam,
+                               int *rdata_len,int *rparam_len)
  {
 +#ifdef AVM_NO_PRINTING
 +return False;
 +#else
-       char *str1 = param+2;
-       char *str2 = skip_string(str1,1);
-       char *p = skip_string(str2,1);
-@@ -3705,6 +3746,7 @@
+       char *str1 = get_safe_str_ptr(param,tpscnt,param,2);
+       char *str2 = skip_string(param,tpscnt,str1);
+       char *p = skip_string(param,tpscnt,str2);
+@@ -4050,6 +4091,7 @@ static BOOL api_WPrintDriverEnum(connect
        DEBUG(4,("WPrintDriverEnum: errorcode %d\n",desc.errcode));
  
        return True;
 +#endif
  }
  
- static BOOL api_WPrintQProcEnum(connection_struct *conn,uint16 vuid, char *param,char *data,
-@@ -3712,6 +3754,9 @@
+ static BOOL api_WPrintQProcEnum(connection_struct *conn, uint16 vuid,
+@@ -4059,6 +4101,9 @@ static BOOL api_WPrintQProcEnum(connecti
                                char **rdata,char **rparam,
                                int *rdata_len,int *rparam_len)
  {
 +#ifdef AVM_NO_PRINTING
 +return False;
 +#else
-       char *str1 = param+2;
-       char *str2 = skip_string(str1,1);
-       char *p = skip_string(str2,1);
-@@ -3763,6 +3808,7 @@
+       char *str1 = get_safe_str_ptr(param,tpscnt,param,2);
+       char *str2 = skip_string(param,tpscnt,str1);
+       char *p = skip_string(param,tpscnt,str2);
+@@ -4113,6 +4158,7 @@ static BOOL api_WPrintQProcEnum(connecti
        DEBUG(4,("WPrintQProcEnum: errorcode %d\n",desc.errcode));
  
        return True;
 +#endif
  }
  
- static BOOL api_WPrintPortEnum(connection_struct *conn,uint16 vuid, char *param,char *data,
-@@ -3770,6 +3816,9 @@
-                              char **rdata,char **rparam,
-                              int *rdata_len,int *rparam_len)
+ static BOOL api_WPrintPortEnum(connection_struct *conn, uint16 vuid,
+@@ -4122,6 +4168,9 @@ static BOOL api_WPrintPortEnum(connectio
+                               char **rdata,char **rparam,
+                               int *rdata_len,int *rparam_len)
  {
 +#ifdef AVM_NO_PRINTING
 +return False;
 +#else
-       char *str1 = param+2;
-       char *str2 = skip_string(str1,1);
-       char *p = skip_string(str2,1);
-@@ -3822,6 +3871,7 @@
+       char *str1 = get_safe_str_ptr(param,tpscnt,param,2);
+       char *str2 = skip_string(param,tpscnt,str1);
+       char *p = skip_string(param,tpscnt,str2);
+@@ -4178,6 +4227,7 @@ static BOOL api_WPrintPortEnum(connectio
        DEBUG(4,("WPrintPortEnum: errorcode %d\n",desc.errcode));
  
        return True;
 +#endif
  }
  
-diff -urN samba-3.0.24.orig/source/smbd/msdfs.c samba-3.0.24/source/smbd/msdfs.c
---- samba-3.0.24.orig/source/smbd/msdfs.c      2007-02-04 19:59:13.000000000 +0100
-+++ samba-3.0.24/source/smbd/msdfs.c   2007-08-07 09:38:18.000000000 +0200
-@@ -832,9 +832,13 @@
-       /* create the referral depeding on version */
-       DEBUG(10,("max_referral_level :%d\n",max_referral_level));
--      if(max_referral_level<2 || max_referral_level>3) {
-+
-+      if (max_referral_level < 2) {
-               max_referral_level = 2;
-       }
-+      if (max_referral_level > 3) {
-+              max_referral_level = 3;
-+      }
-       switch(max_referral_level) {
-       case 2:
-diff -urN samba-3.0.24.orig/source/smbd/negprot.c samba-3.0.24/source/smbd/negprot.c
---- samba-3.0.24.orig/source/smbd/negprot.c    2007-02-04 19:59:13.000000000 +0100
-+++ samba-3.0.24/source/smbd/negprot.c 2007-08-07 09:38:18.000000000 +0200
-@@ -263,6 +263,16 @@
-       global_encrypted_passwords_negotiated = lp_encrypted_passwords();
-+      /* Check the flags field to see if this is Vista.
-+         WinXP sets it and Vista does not. But we have to 
-+         distinguish from NT which doesn't set it either. */
-+
-+      if ( (SVAL(inbuf, smb_flg2) & FLAGS2_EXTENDED_SECURITY) &&
-+              ((SVAL(inbuf, smb_flg2) & FLAGS2_UNKNOWN_BIT4) == 0) ) 
-+      {
-+              set_remote_arch( RA_VISTA );            
-+      }
-+
-       /* do spnego in user level security if the client
-          supports it and we can do encrypted passwords */
-       
-@@ -393,6 +403,15 @@
- protocol [LANMAN2.1]
- protocol [NT LM 0.12]
-+Vista:
-+protocol [PC NETWORK PROGRAM 1.0]
-+protocol [LANMAN1.0]
-+protocol [Windows for Workgroups 3.1a]
-+protocol [LM1.2X002]
-+protocol [LANMAN2.1]
-+protocol [NT LM 0.12]
-+protocol [SMB 2.001]
-+
- OS/2:
- protocol [PC NETWORK PROGRAM 1.0]
- protocol [XENIX CORE]
-@@ -406,18 +425,19 @@
-   *
-   * This appears to be the matrix of which protocol is used by which
-   * MS product.
--       Protocol                       WfWg    Win95   WinNT  Win2K  OS/2
--       PC NETWORK PROGRAM 1.0          1       1       1      1      1
-+       Protocol                       WfWg    Win95   WinNT  Win2K  OS/2 Vista
-+       PC NETWORK PROGRAM 1.0          1       1       1      1      1     1
-        XENIX CORE                                      2             2
-        MICROSOFT NETWORKS 3.0          2       2       
-        DOS LM1.2X002                   3       3       
-        MICROSOFT NETWORKS 1.03                         3
-        DOS LANMAN2.1                   4       4       
--       LANMAN1.0                                       4      2      3
--       Windows for Workgroups 3.1a     5       5       5      3
--       LM1.2X002                                       6      4      4
--       LANMAN2.1                                       7      5      5
--       NT LM 0.12                              6       8      6
-+       LANMAN1.0                                       4      2      3     2
-+       Windows for Workgroups 3.1a     5       5       5      3            3
-+       LM1.2X002                                       6      4      4     4
-+       LANMAN2.1                                       7      5      5     5
-+       NT LM 0.12                              6       8      6            6
-+       SMB 2.001                                                           7
-   *
-   *  tim@fsg.com 09/29/95
-   *  Win2K added by matty 17/7/99
-@@ -430,6 +450,7 @@
- #define ARCH_OS2      0x14     /* Again OS/2 is like NT */
- #define ARCH_SAMBA    0x20
- #define ARCH_CIFSFS   0x40
-+#define ARCH_VISTA    0x8C     /* Vista is like XP/2K */
-  
- #define ARCH_ALL      0x7F
-  
-@@ -493,6 +514,8 @@
-                       arch &= ( ARCH_WFWG | ARCH_WIN95 );
-               else if (strcsequal(p,"NT LM 0.12"))
-                       arch &= ( ARCH_WIN95 | ARCH_WINNT | ARCH_WIN2K | ARCH_CIFSFS);
-+              else if (strcsequal(p,"SMB 2.001"))
-+                      arch = ARCH_VISTA;              
-               else if (strcsequal(p,"LANMAN2.1"))
-                       arch &= ( ARCH_WINNT | ARCH_WIN2K | ARCH_OS2 );
-               else if (strcsequal(p,"LM1.2X002"))
-@@ -537,7 +560,13 @@
-                               set_remote_arch(RA_WINNT);
-                       break;
-               case ARCH_WIN2K:
--                      set_remote_arch(RA_WIN2K);
-+                      /* Vista may have been set in the negprot so don't 
-+                         override it here */
-+                      if ( get_remote_arch() != RA_VISTA )
-+                              set_remote_arch(RA_WIN2K);
-+                      break;
-+              case ARCH_VISTA:
-+                      set_remote_arch(RA_VISTA);
-                       break;
-               case ARCH_OS2:
-                       set_remote_arch(RA_OS2);
-diff -urN samba-3.0.24.orig/source/smbd/open.c samba-3.0.24/source/smbd/open.c
---- samba-3.0.24.orig/source/smbd/open.c       2007-02-04 19:59:13.000000000 +0100
-+++ samba-3.0.24/source/smbd/open.c    2007-07-17 13:19:05.000000000 +0200
-@@ -1127,8 +1127,11 @@
+ /****************************************************************************
+--- a/source/smbd/open.c
++++ b/source/smbd/open.c
+@@ -1155,8 +1155,11 @@ NTSTATUS open_file_ntcreate(connection_s
                }
  
                DEBUG(10, ("open_file_ntcreate: printer open fname=%s\n", fname));
 -
 +#ifdef AVM_NO_PRINTING
-+              return NULL;
++              return NT_STATUS_OK;
 +#else
-               return print_fsp_open(conn, fname);
+               return print_fsp_open(conn, fname, result);
 +#endif
        }
  
-       /* We add aARCH to this as this mode is only used if the file is
-diff -urN samba-3.0.24.orig/source/smbd/password.c samba-3.0.24/source/smbd/password.c
---- samba-3.0.24.orig/source/smbd/password.c   2007-02-04 19:59:13.000000000 +0100
-+++ samba-3.0.24/source/smbd/password.c        2007-07-17 13:19:05.000000000 +0200
-@@ -23,6 +23,8 @@
- /* users from session setup */
- static char *session_userlist = NULL;
- static int len_session_userlist = 0;
-+/* workgroup from session setup. */
-+static char *session_workgroup = NULL;
- /* this holds info on user ids that are already validated for this VC */
- static user_struct *validated_users;
-@@ -406,6 +408,29 @@
- }
- /****************************************************************************
-+ In security=share mode we need to store the client workgroup, as that's
-+  what Vista uses for the NTLMv2 calculation.
-+****************************************************************************/
-+
-+void add_session_workgroup(const char *workgroup)
-+{
-+      if (session_workgroup) {
-+              SAFE_FREE(session_workgroup);
-+      }
-+      session_workgroup = smb_xstrdup(workgroup);
-+}
-+
-+/****************************************************************************
-+ In security=share mode we need to return the client workgroup, as that's
-+  what Vista uses for the NTLMv2 calculation.
-+****************************************************************************/
-+
-+const char *get_session_workgroup(void)
-+{
-+      return session_workgroup;
-+}
-+
-+/****************************************************************************
-  Check if a user is in a netgroup user list. If at first we don't succeed,
-  try lower case.
- ****************************************************************************/
-diff -urN samba-3.0.24.orig/source/smbd/posix_acls.c samba-3.0.24/source/smbd/posix_acls.c
---- samba-3.0.24.orig/source/smbd/posix_acls.c 2007-02-04 19:59:13.000000000 +0100
-+++ samba-3.0.24/source/smbd/posix_acls.c      2007-08-07 09:38:18.000000000 +0200
-@@ -655,6 +655,7 @@
-       }
-       return 0;
- }
-+
- /****************************************************************************
-  Function to create owner and group SIDs from a SMB_STRUCT_STAT.
- ****************************************************************************/
-@@ -666,6 +667,27 @@
- }
- /****************************************************************************
-+ Is the identity in two ACEs equal ? Check both SID and uid/gid.
-+****************************************************************************/
-+
-+static BOOL identity_in_ace_equal(canon_ace *ace1, canon_ace *ace2)
-+{
-+      if (sid_equal(&ace1->trustee, &ace2->trustee)) {
-+              return True;
-+      }
-+      if (ace1->owner_type == ace2->owner_type) {
-+              if (ace1->owner_type == UID_ACE &&
-+                              ace1->unix_ug.uid == ace2->unix_ug.uid) {
-+                      return True;
-+              } else if (ace1->owner_type == GID_ACE &&
-+                              ace1->unix_ug.gid == ace2->unix_ug.gid) {
-+                      return True;
-+              }
-+      }
-+      return False;
-+}
-+
-+/****************************************************************************
-  Merge aces with a common sid - if both are allow or deny, OR the permissions together and
-  delete the second one. If the first is deny, mask the permissions off and delete the allow
-  if the permissions become zero, delete the deny if the permissions are non zero.
-@@ -692,7 +714,7 @@
-                       curr_ace_next = curr_ace->next; /* Save the link in case of delete. */
--                      if (sid_equal(&curr_ace->trustee, &curr_ace_outer->trustee) &&
-+                      if (identity_in_ace_equal(curr_ace, curr_ace_outer) &&
-                               (curr_ace->attr == curr_ace_outer->attr)) {
-                               if( DEBUGLVL( 10 )) {
-@@ -732,7 +754,7 @@
-                        * we've put on the ACL, we know the deny must be the first one.
-                        */
--                      if (sid_equal(&curr_ace->trustee, &curr_ace_outer->trustee) &&
-+                      if (identity_in_ace_equal(curr_ace, curr_ace_outer) &&
-                               (curr_ace_outer->attr == DENY_ACE) && (curr_ace->attr == ALLOW_ACE)) {
-                               if( DEBUGLVL( 10 )) {
-diff -urN samba-3.0.24.orig/source/smbd/process.c samba-3.0.24/source/smbd/process.c
---- samba-3.0.24.orig/source/smbd/process.c    2007-02-04 19:59:13.000000000 +0100
-+++ samba-3.0.24/source/smbd/process.c 2007-07-17 13:19:05.000000000 +0200
-@@ -1008,7 +1008,9 @@
+       if (!parent_dirname_talloc(tmp_talloc_ctx(), fname, &parent_dir,
+--- a/source/smbd/process.c
++++ b/source/smbd/process.c
+@@ -1028,7 +1028,9 @@ static int construct_reply(char *inbuf,c
  
        chain_size = 0;
        file_chain_reset();
@@ -6471,32 +1041,31 @@ diff -urN samba-3.0.24.orig/source/smbd/process.c samba-3.0.24/source/smbd/proce
  
        if (msg_type != 0)
                return(reply_special(inbuf,outbuf));  
-@@ -1285,8 +1287,10 @@
-       if (t != -1)
-               select_timeout = MIN(select_timeout, t*1000);
+@@ -1268,9 +1270,11 @@ static int setup_select_timeout(void)
+       select_timeout = blocking_locks_timeout_ms(SMBD_SELECT_TIMEOUT*1000);
  
 +#ifndef AVM_NO_PRINTING
-       if (print_notify_messages_pending())
+       if (print_notify_messages_pending()) {
                select_timeout = MIN(select_timeout, 1000);
+       }
 +#endif
  
        return select_timeout;
  }
-@@ -1477,10 +1481,11 @@
+@@ -1461,9 +1465,10 @@ machine %s in domain %s.\n", global_myna
         */
-       process_blocking_lock_queue(t);
+       process_blocking_lock_queue();
  
 +#ifndef AVM_NO_PRINTING
        /* update printer queue caches if necessary */
 -  
        update_monitored_printq_cache();
--  
 +#endif
-+
+   
        /*
-        * Check to see if we have any change notifies 
-        * outstanding on the queue.
-@@ -1494,9 +1499,10 @@
+        * Now we are root, check if the log files need pruning.
+@@ -1472,9 +1477,10 @@ machine %s in domain %s.\n", global_myna
        force_check_log_size();
        check_log_size();
  
@@ -6508,12 +1077,11 @@ diff -urN samba-3.0.24.orig/source/smbd/process.c samba-3.0.24/source/smbd/proce
  
        /*
         * Modify the select timeout depending upon
-diff -urN samba-3.0.24.orig/source/smbd/reply.c samba-3.0.24/source/smbd/reply.c
---- samba-3.0.24.orig/source/smbd/reply.c      2007-02-04 20:09:01.000000000 +0100
-+++ samba-3.0.24/source/smbd/reply.c   2007-07-17 13:19:05.000000000 +0200
-@@ -3599,7 +3599,10 @@
-       int outsize = 0;
-       files_struct *fsp;
+--- a/source/smbd/reply.c
++++ b/source/smbd/reply.c
+@@ -3606,7 +3606,10 @@ int reply_printopen(connection_struct *c
+       NTSTATUS status;
+       
        START_PROFILE(SMBsplopen);
 -      
 +#ifdef AVM_NO_PRINTING
@@ -6523,7 +1091,7 @@ diff -urN samba-3.0.24.orig/source/smbd/reply.c samba-3.0.24/source/smbd/reply.c
        if (!CAN_PRINT(conn)) {
                END_PROFILE(SMBsplopen);
                return ERROR_DOS(ERRDOS,ERRnoaccess);
-@@ -3621,6 +3624,7 @@
+@@ -3628,6 +3631,7 @@ int reply_printopen(connection_struct *c
  
        END_PROFILE(SMBsplopen);
        return(outsize);
@@ -6531,7 +1099,7 @@ diff -urN samba-3.0.24.orig/source/smbd/reply.c samba-3.0.24/source/smbd/reply.c
  }
  
  /****************************************************************************
-@@ -3637,6 +3641,10 @@
+@@ -3644,6 +3648,10 @@ int reply_printclose(connection_struct *
  
        CHECK_FSP(fsp,conn);
  
@@ -6541,8 +1109,8 @@ diff -urN samba-3.0.24.orig/source/smbd/reply.c samba-3.0.24/source/smbd/reply.c
 +#else
        if (!CAN_PRINT(conn)) {
                END_PROFILE(SMBsplclose);
-               return ERROR_NT(NT_STATUS_UNSUCCESSFUL);
-@@ -3655,6 +3663,7 @@
+               return ERROR_NT(NT_STATUS_DOS(ERRSRV, ERRerror));
+@@ -3661,6 +3669,7 @@ int reply_printclose(connection_struct *
  
        END_PROFILE(SMBsplclose);
        return(outsize);
@@ -6550,7 +1118,7 @@ diff -urN samba-3.0.24.orig/source/smbd/reply.c samba-3.0.24/source/smbd/reply.c
  }
  
  /****************************************************************************
-@@ -3664,6 +3673,10 @@
+@@ -3670,6 +3679,10 @@ int reply_printclose(connection_struct *
  int reply_printqueue(connection_struct *conn,
                     char *inbuf,char *outbuf, int dum_size, int dum_buffsize)
  {
@@ -6561,7 +1129,7 @@ diff -urN samba-3.0.24.orig/source/smbd/reply.c samba-3.0.24/source/smbd/reply.c
        int outsize = set_message(outbuf,2,3,True);
        int max_count = SVAL(inbuf,smb_vwv0);
        int start_index = SVAL(inbuf,smb_vwv1);
-@@ -3726,6 +3739,7 @@
+@@ -3732,6 +3745,7 @@ int reply_printqueue(connection_struct *
    
        END_PROFILE(SMBsplretq);
        return(outsize);
@@ -6569,61 +1137,18 @@ diff -urN samba-3.0.24.orig/source/smbd/reply.c samba-3.0.24/source/smbd/reply.c
  }
  
  /****************************************************************************
-diff -urN samba-3.0.24.orig/source/smbd/server.c samba-3.0.24/source/smbd/server.c
---- samba-3.0.24.orig/source/smbd/server.c     2007-02-04 19:59:13.000000000 +0100
-+++ samba-3.0.24/source/smbd/server.c  2008-02-28 11:21:14.000000000 +0100
+--- a/source/smbd/server.c
++++ b/source/smbd/server.c
 @@ -22,7 +22,7 @@
  
  #include "includes.h"
  
 -static_decl_rpc;
-+/* AR7 ???? static_decl_rpc; */
++/* AVM ???? static_decl_rpc; */
  
  static int am_parent = 1;
  
-@@ -41,6 +41,41 @@
- extern int dcelogin_atmost_once;
- #endif /* WITH_DFS */
-+
-+
-+#ifdef SAMBA_DEBUG
-+void _fLog(char *fmt, ...)
-+{
-+      va_list va;
-+      FILE *fp = fopen("/var/tmp/smbd.log", "a");
-+      time_t t = time(0); /* LOG */
-+
-+      if (!fp) return;
-+
-+      fprintf(fp, " [%d] %02u:%02u  ", getpid(), (t / 60) % 60, t % 60);
-+      va_start(va, fmt);
-+      vfprintf(fp, fmt, va);
-+      va_end(va);
-+      fprintf(fp, "\n");
-+      fclose(fp);
-+}
-+
-+void _fDebug(char *fmt, ...)
-+{
-+      va_list va;
-+      FILE *fp = fopen("/var/tmp/smbd.log", "a");
-+      time_t t = time(0); /* LOG */
-+
-+      if (!fp) return;
-+
-+      fprintf(fp, " [%d] %02u:%02u ", getpid(), (t / 60) % 60, t % 60);
-+      va_start(va, fmt);
-+      vfprintf(fp, fmt, va);
-+      va_end(va);
-+      fclose(fp);
-+}
-+#endif
-+
- /* really we should have a top level context structure that has the
-    client file descriptor as an element. That would require a major rewrite :(
-@@ -523,6 +558,7 @@
+@@ -617,6 +617,7 @@ static BOOL open_sockets_smbd(BOOL is_da
  **************************************************************************/
  void reload_printers(void)
  {
@@ -6631,7 +1156,7 @@ diff -urN samba-3.0.24.orig/source/smbd/server.c samba-3.0.24/source/smbd/server
        int snum;
        int n_services = lp_numservices();
        int pnum = lp_servicenumber(PRINTERS_NAME);
-@@ -549,6 +585,7 @@
+@@ -643,6 +644,7 @@ void reload_printers(void)
        }
  
        load_printers();
@@ -6639,7 +1164,7 @@ diff -urN samba-3.0.24.orig/source/smbd/server.c samba-3.0.24/source/smbd/server
  }
  
  /****************************************************************************
-@@ -631,7 +668,9 @@
+@@ -725,7 +727,9 @@ static void exit_server_common(enum serv
  
        invalidate_all_vuids();
  
@@ -6649,7 +1174,7 @@ diff -urN samba-3.0.24.orig/source/smbd/server.c samba-3.0.24/source/smbd/server
  
        /* delete our entry in the connections database. */
        yield_connection(NULL,"");
-@@ -646,7 +685,9 @@
+@@ -739,7 +743,9 @@ static void exit_server_common(enum serv
  #endif
  
        locking_end();
@@ -6659,19 +1184,19 @@ diff -urN samba-3.0.24.orig/source/smbd/server.c samba-3.0.24/source/smbd/server
  
        if (how != SERVER_EXIT_NORMAL) {
                int oldlevel = DEBUGLEVEL;
-@@ -729,7 +770,9 @@
+@@ -820,7 +826,9 @@ static BOOL init_structs(void )
     mkproto.h.  Mixing $(builddir) and $(srcdir) source files in the current
     prototype generation system is too complicated. */
  
-+#if 0 /* AR7 */
- void build_options(BOOL screen);
++#if 0 /* AVM */
extern void build_options(BOOL screen);
 +#endif
  
   int main(int argc,const char *argv[])
  {
-@@ -741,6 +784,13 @@
-       static BOOL log_stdout = False;
+@@ -833,6 +841,13 @@ extern void build_options(BOOL screen);
        static char *ports = NULL;
+       static char *profile_level = NULL;
        int opt;
 +
 +#if 0 // AVM DEBUG
@@ -6683,21 +1208,21 @@ diff -urN samba-3.0.24.orig/source/smbd/server.c samba-3.0.24/source/smbd/server
        poptContext pc;
  
        struct poptOption long_options[] = {
-@@ -750,7 +800,9 @@
+@@ -842,7 +857,9 @@ extern void build_options(BOOL screen);
        {"foreground", 'F', POPT_ARG_VAL, &Fork, False, "Run daemon in foreground (for daemontools, etc.)" },
        {"no-process-group", '\0', POPT_ARG_VAL, &no_process_group, True, "Don't create a new process group" },
        {"log-stdout", 'S', POPT_ARG_VAL, &log_stdout, True, "Log to stdout" },
-+#if 0 /* AR7 */
++#if 0 /* AVM */
        {"build-options", 'b', POPT_ARG_NONE, NULL, 'b', "Print build options" },
 +#endif
        {"port", 'p', POPT_ARG_STRING, &ports, 0, "Listen on the specified ports"},
+       {"profiling-level", 'P', POPT_ARG_STRING, &profile_level, 0, "Set profiling level","PROFILE_LEVEL"},
        POPT_COMMON_SAMBA
-       POPT_COMMON_DYNCONFIG
-@@ -766,21 +818,31 @@
+@@ -861,21 +878,31 @@ extern void build_options(BOOL screen);
        pc = poptGetContext("smbd", argc, argv, long_options, 0);
        
        while((opt = poptGetNextOpt(pc)) != -1) {
-+#if 0 /* AR7 */
++#if 0 /* AVM */
                switch (opt)  {
                case 'b':
                        build_options(True); /* Display output to screen as well as debug */ 
@@ -6725,7 +1250,7 @@ diff -urN samba-3.0.24.orig/source/smbd/server.c samba-3.0.24/source/smbd/server
        sec_init();
  
        set_remote_machine_name("smbd", False);
-@@ -808,6 +870,16 @@
+@@ -903,6 +930,16 @@ extern void build_options(BOOL screen);
        /* make absolutely sure we run as root - to handle cases where people
           are crazy enough to have it setuid */
  
@@ -6742,18 +1267,18 @@ diff -urN samba-3.0.24.orig/source/smbd/server.c samba-3.0.24/source/smbd/server
        gain_root_privilege();
        gain_root_group_privilege();
  
-@@ -850,8 +922,10 @@
+@@ -945,8 +982,10 @@ extern void build_options(BOOL screen);
        DEBUG(2,("uid=%d gid=%d euid=%d egid=%d\n",
                 (int)getuid(),(int)getgid(),(int)geteuid(),(int)getegid()));
  
-+#if 0 /* AR7 */
++#if 0 /* AVM */
        /* Output the build options to the debug log */ 
        build_options(False);
 +#endif
  
        if (sizeof(uint16) < 2 || sizeof(uint32) < 4) {
                DEBUG(0,("ERROR: Samba is not configured correctly for the word size on your machine\n"));
-@@ -945,16 +1019,20 @@
+@@ -1042,16 +1081,20 @@ extern void build_options(BOOL screen);
  
        namecache_enable();
  
@@ -6774,7 +1299,7 @@ diff -urN samba-3.0.24.orig/source/smbd/server.c samba-3.0.24/source/smbd/server
  
        if (!init_guest_info()) {
                DEBUG(0,("ERROR: failed to setup guest info.\n"));
-@@ -971,14 +1049,18 @@
+@@ -1068,14 +1111,18 @@ extern void build_options(BOOL screen);
           smbd is launched via inetd and we fork a copy of 
           ourselves here */
  
@@ -6793,23 +1318,22 @@ diff -urN samba-3.0.24.orig/source/smbd/server.c samba-3.0.24/source/smbd/server
  
        if (!open_sockets_smbd(is_daemon, interactive, ports))
                exit(1);
-@@ -987,7 +1069,12 @@
+@@ -1084,7 +1131,12 @@ extern void build_options(BOOL screen);
         * everything after this point is run after the fork()
         */ 
  
-+#if 0 /* AR7 */
++#if 0 /* AVM */
        static_init_rpc;
 +#else
-+      rpc_wks_init();
++      rpc_wkssvc_init();
 +      rpc_srv_init();
 +#endif
  
        init_modules();
  
-diff -urN samba-3.0.24.orig/source/smbd/service.c samba-3.0.24/source/smbd/service.c
---- samba-3.0.24.orig/source/smbd/service.c    2007-02-04 19:59:13.000000000 +0100
-+++ samba-3.0.24/source/smbd/service.c 2007-07-17 13:19:05.000000000 +0200
-@@ -254,6 +254,7 @@
+--- a/source/smbd/service.c
++++ b/source/smbd/service.c
+@@ -288,6 +288,7 @@ int find_service(fstring service)
                iService = add_home_service(service,service /* 'username' */, phome_dir);
        }
  
@@ -6817,7 +1341,7 @@ diff -urN samba-3.0.24.orig/source/smbd/service.c samba-3.0.24/source/smbd/servi
        /* If we still don't have a service, attempt to add it as a printer. */
        if (iService < 0) {
                int iPrinterService;
-@@ -273,6 +274,7 @@
+@@ -307,6 +308,7 @@ int find_service(fstring service)
                        }
                }
        }
@@ -6825,7 +1349,7 @@ diff -urN samba-3.0.24.orig/source/smbd/service.c samba-3.0.24/source/smbd/servi
  
        /* Check for default vfs service?  Unsure whether to implement this */
        if (iService < 0) {
-@@ -1136,7 +1138,9 @@
+@@ -1225,7 +1227,9 @@ connection_struct *make_connection(const
  void close_cnum(connection_struct *conn, uint16 vuid)
  {
        if (IS_IPC(conn)) {
@@ -6835,28 +1359,13 @@ diff -urN samba-3.0.24.orig/source/smbd/service.c samba-3.0.24/source/smbd/servi
        } else {
                file_close_conn(conn);
                dptr_closecnum(conn);
-diff -urN samba-3.0.24.orig/source/smbd/sesssetup.c samba-3.0.24/source/smbd/sesssetup.c
---- samba-3.0.24.orig/source/smbd/sesssetup.c  2007-02-04 19:59:13.000000000 +0100
-+++ samba-3.0.24/source/smbd/sesssetup.c       2007-07-17 13:19:05.000000000 +0200
-@@ -1035,6 +1035,7 @@
-               map_username(sub_user);
-               add_session_user(sub_user);
-+              add_session_workgroup(domain);
-               /* Then force it to null for the benfit of the code below */
-               *user = 0;
-       }
-diff -urN samba-3.0.24.orig/source/smbd/trans2.c samba-3.0.24/source/smbd/trans2.c
---- samba-3.0.24.orig/source/smbd/trans2.c     2007-02-04 20:09:01.000000000 +0100
-+++ samba-3.0.24/source/smbd/trans2.c  2007-07-17 13:19:05.000000000 +0200
-@@ -2636,13 +2636,16 @@
-                               quotas.qflags = SVAL(pdata,40);
-               
+--- a/source/smbd/trans2.c
++++ b/source/smbd/trans2.c
+@@ -2878,11 +2878,14 @@ cap_low = 0x%x, cap_high = 0x%x\n",
                                /* unknown_2 6 NULL bytes follow*/
--              
-+
+               
                                /* now set the quotas */
-+#if 1 /* AR7 */
++#if 1 /* AVM */
 +                                      return ERROR_DOS(ERRSRV,ERRerror);
 +#else
                                if (vfs_set_ntquota(fsp, SMB_USER_FS_QUOTA_TYPE, NULL, &quotas)!=0) {
@@ -6864,134 +1373,28 @@ diff -urN samba-3.0.24.orig/source/smbd/trans2.c samba-3.0.24/source/smbd/trans2
                                        return ERROR_DOS(ERRSRV,ERRerror);
                                }
 -                      
-+#endif                        
++#endif
                                break;
                        }
                default:
-diff -urN samba-3.0.24.orig/source/smbd/uid.c samba-3.0.24/source/smbd/uid.c
---- samba-3.0.24.orig/source/smbd/uid.c        2006-04-20 04:29:19.000000000 +0200
-+++ samba-3.0.24/source/smbd/uid.c     2007-08-07 09:38:18.000000000 +0200
-@@ -151,7 +151,9 @@
-       char group_c;
-       BOOL must_free_token = False;
-       NT_USER_TOKEN *token = NULL;
--
-+      int num_groups = 0;
-+      gid_t *group_list = NULL;
-+      
-       if (!conn) {
-               DEBUG(2,("change_to_user: Connection not open\n"));
-               return(False);
-@@ -190,14 +192,14 @@
-       if (conn->force_user) /* security = share sets this too */ {
-               uid = conn->uid;
-               gid = conn->gid;
--              current_user.ut.groups = conn->groups;
--              current_user.ut.ngroups = conn->ngroups;
-+              group_list = conn->groups;
-+              num_groups = conn->ngroups;
-               token = conn->nt_user_token;
-       } else if (vuser) {
-               uid = conn->admin_user ? 0 : vuser->uid;
-               gid = vuser->gid;
--              current_user.ut.ngroups = vuser->n_groups;
--              current_user.ut.groups  = vuser->groups;
-+              num_groups = vuser->n_groups;
-+              group_list  = vuser->groups;
-               token = vuser->nt_user_token;
-       } else {
-               DEBUG(2,("change_to_user: Invalid vuid used %d in accessing "
-@@ -230,8 +232,8 @@
-                        */
-                       int i;
--                      for (i = 0; i < current_user.ut.ngroups; i++) {
--                              if (current_user.ut.groups[i] == conn->gid) {
-+                      for (i = 0; i < num_groups; i++) {
-+                              if (group_list[i] == conn->gid) {
-                                       gid = conn->gid;
-                                       gid_to_sid(&token->user_sids[1], gid);
-                                       break;
-@@ -243,6 +245,12 @@
-               }
-       }
-       
-+      /* Now set current_user since we will immediately also call
-+         set_sec_ctx() */
-+
-+      current_user.ut.ngroups = num_groups;
-+      current_user.ut.groups  = group_list;   
-+
-       set_sec_ctx(uid, gid, current_user.ut.ngroups, current_user.ut.groups,
-                   token);
-diff -urN samba-3.0.24.orig/source/smbd/vfs-wrap.c samba-3.0.24/source/smbd/vfs-wrap.c
---- samba-3.0.24.orig/source/smbd/vfs-wrap.c   2007-02-04 19:59:13.000000000 +0100
-+++ samba-3.0.24/source/smbd/vfs-wrap.c        2007-08-07 09:38:18.000000000 +0200
-@@ -694,6 +694,44 @@
-               return result;
-       }
-+#if 1 // AVM patch - don't growth the file  (too much time and RAM for copy of large files to USB1.1 FAT filesystem)
-+      { 
-+      SMB_BIG_UINT big_len = len;
-+
-+      result = SMB_VFS_FSTAT(fsp,fsp->fh->fd,&st);
-+      if (result == -1) {
-+              goto done;
-+      }
-+
-+      if (big_len == (SMB_BIG_UINT)st.st_size) {
-+              result = 0;
-+              goto done;
-+      }
-+
-+      if (big_len > (SMB_BIG_UINT)st.st_size) {
-+              SMB_BIG_UINT space_avail;
-+              SMB_BIG_UINT bsize,dfree,dsize;
-+              big_len -= st.st_size;
-+              big_len /= 1024; /* Len is now number of 1k blocks needed. */
-+              space_avail = SMB_VFS_DISK_FREE(fsp->conn ,fsp->fsp_name,False,&bsize,&dfree,&dsize);
-+              if (space_avail == (SMB_BIG_UINT)-1) {
-+                      result = -1;
-+                      goto done;
-+              }
-+
-+              if (big_len > space_avail) {
-+                      errno = ENOSPC;
-+                      result = -1;
-+                      goto done;
-+              }
-+
-+              // do nothing to be fast!
-+              result = 0;
-+              goto done;
-+      }
-+      } // block
-+#endif // AVM Patch
-+
-       /* we used to just check HAVE_FTRUNCATE_EXTEND and only use
-          sys_ftruncate if the system supports it. Then I discovered that
-          you can have some filesystems that support ftruncate
-diff -urN samba-3.0.24.orig/source/utils/avm_smbpasswd.c samba-3.0.24/source/utils/avm_smbpasswd.c
---- samba-3.0.24.orig/source/utils/avm_smbpasswd.c     1970-01-01 01:00:00.000000000 +0100
-+++ samba-3.0.24/source/utils/avm_smbpasswd.c  2007-10-23 12:27:13.000000000 +0200
-@@ -0,0 +1,213 @@
+--- /dev/null
++++ b/source/utils/avm_smbpasswd.c
+@@ -0,0 +1,212 @@
 +/*
-+ * Unix SMB/CIFS implementation. 
++ * Unix SMB/CIFS implementation.
 + * Copyright (C) Jeremy Allison 1995-1998
 + * Copyright (C) Tim Potter     2001
-+ * 
++ *
 + * 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 02139, USA.  */
@@ -7005,7 +1408,7 @@ diff -urN samba-3.0.24.orig/source/utils/avm_smbpasswd.c samba-3.0.24/source/uti
 +      smb_ucs2_t wpwd[129];
 +      int i;
 +
-+      
++
 +      /* Password must be converted to NT unicode - null terminated. */
 +      len = strlen(passwd);
 +#if 0
@@ -7020,7 +1423,7 @@ diff -urN samba-3.0.24.orig/source/utils/avm_smbpasswd.c samba-3.0.24/source/uti
 +      len = len /*strlen_w(wpwd)*/ * sizeof(int16);
 +
 +      mdfour(p16, (unsigned char *)wpwd, len);
-+      ZERO_STRUCT(wpwd);      
++      ZERO_STRUCT(wpwd);
 +}
 +
 +/**
@@ -7030,14 +1433,14 @@ diff -urN samba-3.0.24.orig/source/utils/avm_smbpasswd.c samba-3.0.24/source/uti
 + * @return False if password was > 14 characters, and therefore may be incorrect, otherwise True
 + * @note p16 is filled in regardless
 + */
-+ 
++
 +BOOL E_deshash(const char *passwd, uchar p16[16])
 +{
 +      BOOL ret = True;
 +      char dospwd[256+2];
 +      int i;
 +      int len;
-+      
++
 +      /* Password must be converted to DOS charset - null terminated, uppercase. */
 +//    push_ascii(dospwd, passwd, sizeof(dospwd), STR_UPPER|STR_TERMINATE);
 +      len = strlen(passwd);
@@ -7047,7 +1450,7 @@ diff -urN samba-3.0.24.orig/source/utils/avm_smbpasswd.c samba-3.0.24/source/uti
 +              dospwd[i] = c;
 +      }
 +      dospwd[i] = 0;
-+       
++
 +      /* Only the fisrt 14 chars are considered, password need not be null terminated. */
 +      E_P16((const unsigned char *)dospwd, p16);
 +
@@ -7056,7 +1459,7 @@ diff -urN samba-3.0.24.orig/source/utils/avm_smbpasswd.c samba-3.0.24/source/uti
 +      }
 +
 +      memset(dospwd, 0, sizeof(dospwd));
-+      // ZERO_STRUCT(dospwd); 
++      // ZERO_STRUCT(dospwd);
 +
 +      return ret;
 +}
@@ -7096,7 +1499,7 @@ diff -urN samba-3.0.24.orig/source/utils/avm_smbpasswd.c samba-3.0.24/source/uti
 + Start here.
 +**********************************************************/
 +int main(int argc, char **argv)
-+{     
++{
 +      char *passwd_filename = "/var/samba/private/smbpasswd";
 +      char *cleartext_filename = "/var/tmp/smbpasswd.cleartext";
 +
@@ -7134,7 +1537,7 @@ diff -urN samba-3.0.24.orig/source/utils/avm_smbpasswd.c samba-3.0.24/source/uti
 +              uchar new_nt_p16[NT_HASH_LEN];
 +              char ascii_p16[32+1];
 +              char *p;
-+                      
++
 +              line[sizeof(line)-1] = '\0';
 +              if (strlen(line)) {
 +                      p = &line[strlen(line)-1];
@@ -7189,79 +1592,62 @@ diff -urN samba-3.0.24.orig/source/utils/avm_smbpasswd.c samba-3.0.24/source/uti
 +fprintf(stderr, "%u samba users written to %s\n", nusers, passwd_filename);
 +      return 0;
 +}
-+
-diff -urN samba-3.0.24.orig/source/utils/ntlm_auth_proto.h samba-3.0.24/source/utils/ntlm_auth_proto.h
---- samba-3.0.24.orig/source/utils/ntlm_auth_proto.h   1970-01-01 01:00:00.000000000 +0100
-+++ samba-3.0.24/source/utils/ntlm_auth_proto.h        2007-07-17 13:19:05.000000000 +0200
-@@ -0,0 +1,28 @@
-+#ifndef _NTLM_AUTH_PROTO_H_
-+#define _NTLM_AUTH_PROTO_H_
-+
-+/* This file is automatically generated with "make proto". DO NOT EDIT */
-+
-+
-+/* The following definitions come from utils/ntlm_auth.c  */
-+
-+const char *get_winbind_domain(void);
-+const char *get_winbind_netbios_name(void);
-+DATA_BLOB get_challenge(void) ;
-+NTSTATUS contact_winbind_auth_crap(const char *username, 
-+                                 const char *domain, 
-+                                 const char *workstation,
-+                                 const DATA_BLOB *challenge, 
-+                                 const DATA_BLOB *lm_response, 
-+                                 const DATA_BLOB *nt_response, 
-+                                 uint32 flags, 
-+                                 uint8 lm_key[8], 
-+                                 uint8 user_session_key[16], 
-+                                 char **error_string, 
-+                                 char **unix_name) ;
-+
-+/* The following definitions come from utils/ntlm_auth_diagnostics.c  */
-+
-+BOOL diagnose_ntlm_auth(void);
-+
-+#endif /*  _NTLM_AUTH_PROTO_H_  */
-diff -urN samba-3.0.24/source/nmbd/nmbd.c samba-3.0.24.new/source/nmbd/nmbd.c
---- samba-3.0.24/source/nmbd/nmbd.c    2007-02-04 19:59:23.000000000 +0100
-+++ samba-3.0.24.new/source/nmbd/nmbd.c        2010-03-07 19:33:23.000000000 +0100
-@@ -23,6 +23,39 @@
- #include "includes.h"
+--- a/source/Makefile.in
++++ b/source/Makefile.in
+@@ -257,7 +257,7 @@ LIB_WITH_PROTO_OBJ = $(VERSION_OBJ) lib/
+         lib/adt_tree.o lib/gencache.o $(TDB_OBJ) \
+         lib/module.o lib/events.o lib/ldap_escape.o @CHARSET_STATIC@ \
+         lib/secdesc.o lib/util_seaccess.o lib/secace.o lib/secacl.o \
+-        libads/krb5_errs.o lib/system_smbd.o lib/audit.o
++        lib/system_smbd.o lib/audit.o
+ LIB_OBJ = $(LIB_WITHOUT_PROTO_OBJ) $(LIB_WITH_PROTO_OBJ)
+@@ -272,7 +272,7 @@ POPT_LIB_OBJ = lib/popt_common.o
+ PARAM_OBJ = dynconfig.o param/loadparm.o param/params.o lib/sharesec.o lib/ldap_debug_handler.o
+-KRBCLIENT_OBJ = libads/kerberos.o libads/ads_status.o
++KRBCLIENT_OBJ = libads/ads_status.o
+ LIBADDNS_OBJ0 = libaddns/dnsrecord.o libaddns/dnsutils.o  libaddns/dnssock.o \
+              libaddns/dnsgss.o libaddns/dnsmarshall.o
+@@ -282,14 +282,9 @@ LIBGPO_OBJ0 = libgpo/gpo_ldap.o libgpo/g
+             libgpo/gpo_fetch.o libgpo/gpo_filesync.o
+ LIBGPO_OBJ = $(LIBGPO_OBJ0)
+-LIBADS_OBJ = libads/ldap.o libads/ldap_printer.o libads/sasl.o \
+-           libads/krb5_setpw.o libads/ldap_user.o \
+-           libads/ads_struct.o libads/kerberos_keytab.o \
+-             libads/disp_sec.o libads/ads_utils.o libads/ldap_utils.o \
+-           libads/authdata.o libads/cldap.o libads/util.o
++LIBADS_OBJ =
+-LIBADS_SERVER_OBJ = libads/kerberos_verify.o \
+-                  libads/ldap_schema.o
++LIBADS_SERVER_OBJ =
+ SECRETS_OBJ = passdb/secrets.o passdb/machine_sid.o
+@@ -471,7 +466,7 @@ SMBD_OBJ_SRV = smbd/files.o smbd/chgpass
+              printing/printfsp.o lib/sysquotas.o lib/sysquotas_linux.o \
+              lib/sysquotas_xfs.o lib/sysquotas_4A.o \
+              smbd/change_trust_pw.o smbd/fake_file.o \
+-             smbd/quotas.o smbd/ntquotas.o $(AFS_OBJ) smbd/msdfs.o \
++             smbd/ntquotas.o $(AFS_OBJ) smbd/msdfs.o \
+              $(AFS_SETTOKEN_OBJ) smbd/aio.o smbd/statvfs.o \
+              smbd/dmapi.o $(MANGLE_OBJ) @VFS_STATIC@
+@@ -821,9 +816,9 @@ TDBDUMP_OBJ = tdb/tools/tdbdump.o $(TDBB
+ NTLM_AUTH_OBJ1 = utils/ntlm_auth.o utils/ntlm_auth_diagnostics.o
+ NTLM_AUTH_OBJ = ${NTLM_AUTH_OBJ1} $(LIBSAMBA_OBJ) $(POPT_LIB_OBJ) \
+-              libsmb/asn1.o libsmb/spnego.o libsmb/clikrb5.o libads/kerberos.o \
+-              libads/kerberos_verify.o $(SECRETS_OBJ) $(SERVER_MUTEX_OBJ) \
+-              libads/authdata.o $(RPC_PARSE_OBJ1) $(PASSDB_OBJ) $(GROUPDB_OBJ) \
++              libsmb/asn1.o libsmb/spnego.o libsmb/clikrb5.o \
++              $(SECRETS_OBJ) $(SERVER_MUTEX_OBJ) \
++              $(RPC_PARSE_OBJ1) $(PASSDB_OBJ) $(GROUPDB_OBJ) \
+               $(SMBLDAP_OBJ) $(DOSERR_OBJ) rpc_parse/parse_net.o $(LIBNMB_OBJ) \
+               $(LDB_OBJ) libsmb/errormap.o
  
-+#ifdef SAMBA_DEBUG
-+void _fLog(char *fmt, ...)
-+{
-+        va_list va;
-+        FILE *fp = fopen("/var/tmp/nmbd.log", "a");
-+        time_t t = time(0); /* LOG */
-+
-+        if (!fp) return;
-+
-+        fprintf(fp, " [%d] %02u:%02u  ", getpid(), (t / 60) % 60, t % 60);
-+        va_start(va, fmt);
-+        vfprintf(fp, fmt, va);
-+        va_end(va);
-+        fprintf(fp, "\n");
-+        fclose(fp);
-+}
-+
-+void _fDebug(char *fmt, ...)
-+{
-+        va_list va;
-+        FILE *fp = fopen("/var/tmp/nmbd.log", "a");
-+        time_t t = time(0); /* LOG */
-+
-+        if (!fp) return;
-+
-+        fprintf(fp, " [%d] %02u:%02u ", getpid(), (t / 60) % 60, t % 60);
-+        va_start(va, fmt);
-+        vfprintf(fp, fmt, va);
-+        va_end(va);
-+        fclose(fp);
-+}
-+#endif
-+
- int ClientNMB       = -1;
- int ClientDGRAM     = -1;
- int global_nmb_port = -1;
index 6b10c2f..a5f93a6 100644 (file)
@@ -1,55 +1,5 @@
-Index: samba-3.0.24/source/Makefile
-===================================================================
---- samba-3.0.24.orig/source/Makefile  2008-08-07 11:15:02.000000000 +0200
-+++ samba-3.0.24/source/Makefile       2008-08-07 11:18:28.000000000 +0200
-@@ -10,8 +10,6 @@
- SOURCEROOT=$(shell pwd)/../../../..
- SHAREDLIBS=$(SOURCEROOT)/sharedlibs
--include ${SHAREDLIBS}/ar7def.mk
--
- # AR7
- # prefix=/usr/local/samba
- prefix=/var/samba
-@@ -22,25 +20,27 @@
- LIBS= -lcrypt -ldl -lpthread
- # AR7
- # CC=gcc
--CC=${TARGET}-gcc
-+CC?=${TARGET}-gcc
- RANLIB = ${TARGET}-ranlib
- AR = ${TARGET}-ar
- SHLD=${CC} ${CFLAGS}
- # AR7
- # CFLAGS= -O -D_SAMBA_BUILD_
--CFLAGS= -Os -D_SAMBA_BUILD_ -DAVM_NO_PRINTING
--CFLAGS+= -DAVM_NO_POPT
-+CFLAPGS?=
-+CFLAGS+= -Os -D_SAMBA_BUILD_ -DAVM_NO_PRINTING
-+#CFLAGS+= -DAVM_NO_POPT
- CFLAGS+= -DAVM_SMALLER
--
-+#CFLAGS+= -DSAMBA_DEBUG
- # uncomment this to get debugs
- # CFLAGS += -DSAMBA_DEBUG
- # AR7
- # CPPFLAGS= -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE
--CPPFLAGS= -D_GNU_SOURCE
-+CPPFLAGS?= -D_GNU_SOURCE
-+CPPFLAGS+= -D_GNU_SOURCE
- EXEEXT=
--LDFLAGS=
-+LDFLAGS?=
- AR=ar
- LDSHFLAGS=-shared -Wl,-Bsymbolic 
- WINBIND_NSS_LDSHFLAGS=-shared -Wl,-Bsymbolic 
-
-Index: samba-3.0.24/source/popt/popt.c
-===================================================================
---- samba-3.0.24.orig/source/popt/popt.c       2008-08-07 11:15:00.000000000 +0200
-+++ samba-3.0.24/source/popt/popt.c    2008-08-07 11:15:02.000000000 +0200
+--- a/source/popt/popt.c
++++ b/source/popt/popt.c
 @@ -10,13 +10,14 @@
  
  #include "system.h"
@@ -67,7 +17,7 @@ Index: samba-3.0.24/source/popt/popt.c
  
  #ifdef        MYDEBUG
  /*@unchecked@*/
-@@ -384,7 +385,7 @@
+@@ -388,7 +389,7 @@ static int execCommand(poptContext con)
        sprintf(s, "%s/%s", con->execPath, item->argv[0]);
        argv[argc] = s;
      } else {
@@ -76,30 +26,19 @@ Index: samba-3.0.24/source/popt/popt.c
      }
      if (argv[argc++] == NULL) return POPT_ERROR_NOARG;
  
-@@ -1235,4 +1236,3 @@
+@@ -1246,4 +1247,3 @@ int poptStrippedArgv(poptContext con, in
      
      return numargs;
  }
 -/*@=boundswrite@*/
-Index: samba-3.0.24/source/smbd/server.c
-===================================================================
---- samba-3.0.24.orig/source/smbd/server.c     2008-08-07 11:15:02.000000000 +0200
-+++ samba-3.0.24/source/smbd/server.c  2008-08-07 11:15:02.000000000 +0200
-@@ -47,7 +47,7 @@
- void _fLog(char *fmt, ...)
- {
-       va_list va;
--      FILE *fp = fopen("/var/tmp/smbd.log", "a");
-+      FILE *fp = fopen("/var/log/smbd.log", "a");
-       time_t t = time(0); /* LOG */
+--- a/source/modules/vfs_default.c
++++ b/source/modules/vfs_default.c
+@@ -977,7 +977,7 @@ static int vfswrap_linux_setlease(vfs_ha
  
-       if (!fp) return;
-@@ -63,7 +63,7 @@
- void _fDebug(char *fmt, ...)
- {
-       va_list va;
--      FILE *fp = fopen("/var/tmp/smbd.log", "a");
-+      FILE *fp = fopen("/var/log/smbd.log", "a");
-       time_t t = time(0); /* LOG */
+       START_PROFILE(syscall_linux_setlease);
  
-       if (!fp) return;
+-#ifdef LINUX
++#if defined(LINUX) && defined(HAVE_KERNEL_OPLOCKS_LINUX)
+       /* first set the signal handler */
+       if(linux_set_lease_sighandler(fd) == -1)
+               return -1;
index 2cb2670..0d19f17 100644 (file)
@@ -1,57 +1,35 @@
-Index: samba-3.0.24/source/Makefile
-===================================================================
---- samba-3.0.24.orig/source/Makefile  2008-08-06 23:33:20.000000000 +0200
-+++ samba-3.0.24/source/Makefile       2008-08-06 23:34:48.000000000 +0200
-@@ -12,7 +12,7 @@
- # AR7
- # prefix=/usr/local/samba
--prefix=/var/samba
-+prefix=
- exec_prefix=${prefix}
- # AR7
-@@ -108,11 +108,11 @@
- # These can be overridden by command line switches (see smbd(8))
+--- a/source/Makefile.in
++++ b/source/Makefile.in
+@@ -92,7 +92,7 @@ INSTALLPERMS = 0755
  # or in smb.conf (see smb.conf(5))
- LOGFILEBASE = ${VARDIR}
--CONFIGFILE = $(CONFIGDIR)/smb.conf
+ LOGFILEBASE = @logfilebase@
+ CONFIGFILE = $(CONFIGDIR)/smb.conf
 -LMHOSTSFILE = $(CONFIGDIR)/lmhosts
-+CONFIGFILE = /etc/samba/smb.conf
 +LMHOSTSFILE = /etc/lmhosts
  
  # This is where smbpasswd et al go
--PRIVATEDIR = ${prefix}/private
-+PRIVATEDIR = /etc/samba/
- SMB_PASSWD_FILE = $(PRIVATEDIR)/smbpasswd
- PRIVATE_DIR = $(PRIVATEDIR)
-@@ -121,10 +121,10 @@
- SWATDIR = ${prefix}/swat
- # the directory where lock files go
--LOCKDIR = ${VARDIR}/locks
-+LOCKDIR = ${VARDIR}/lock
- # the directory where pid files go
--PIDDIR = ${VARDIR}/locks
-+PIDDIR = ${VARDIR}/lock
- LIBSMBCLIENT=bin/libsmbclient.a bin/libsmbclient.so
- LIBSMBCLIENT_MAJOR=0
-Index: samba-3.0.24/source/lib/util.c
-===================================================================
---- samba-3.0.24.orig/source/lib/util.c        2008-08-06 23:41:58.000000000 +0200
-+++ samba-3.0.24/source/lib/util.c     2008-08-06 23:42:10.000000000 +0200
-@@ -300,11 +300,7 @@
-       char *p;
-       if ((p = getenv("TMPDIR")))
-               return p;
--#if 1 /* AR7 */
--      return "/var/tmp";
--#else
-       return "/tmp";
--#endif
- }
- /****************************************************************************
+ PRIVATEDIR = @privatedir@
+--- a/source/configure
++++ b/source/configure
+@@ -1536,8 +1536,8 @@ Optional Packages:
+   --with-fhs              Use FHS-compliant paths (default=no)
+   --with-privatedir=DIR   Where to put smbpasswd ($ac_default_prefix/private)
+   --with-rootsbindir=DIR  Which directory to use for root sbin ($ac_default_prefix/sbin)
+-  --with-lockdir=DIR      Where to put lock files ($ac_default_prefix/var/locks)
+-  --with-piddir=DIR       Where to put pid files ($ac_default_prefix/var/locks)
++  --with-lockdir=DIR      Where to put lock files ($ac_default_prefix/var/lock)
++  --with-piddir=DIR       Where to put pid files ($ac_default_prefix/var/run)
+   --with-swatdir=DIR      Where to put SWAT files ($ac_default_prefix/swat)
+   --with-configdir=DIR    Where to put configuration files ($libdir)
+   --with-logfilebase=DIR  Where to put log files ($VARDIR)
+@@ -2295,8 +2295,8 @@ fi
+ rootsbindir="\${SBINDIR}"
+-lockdir="\${VARDIR}/locks"
+-piddir="\${VARDIR}/locks"
++lockdir="\${VARDIR}/lock"
++piddir="\${VARDIR}/run"
+ test "${mandir}" || mandir="\${prefix}/man"
+ logfilebase="\${VARDIR}"
+ privatedir="\${prefix}/private"
index 7670bd7..5c5333a 100644 (file)
@@ -1,23 +1,19 @@
-Index: samba-3.0.24/source/Makefile
-===================================================================
---- samba-3.0.24.orig/source/Makefile  2008-08-07 15:56:45.000000000 +0200
-+++ samba-3.0.24/source/Makefile       2008-08-07 15:56:45.000000000 +0200
-@@ -1015,9 +1015,9 @@
+--- a/source/Makefile.in
++++ b/source/Makefile.in
+@@ -538,10 +538,7 @@ TESTPARM_OBJ = utils/testparm.o \
  
MY_PASS_OBJ = libsmb/smbdes.o lib/md4.o lib/arc4.o
PASSWD_UTIL_OBJ = utils/passwd_util.o
  
--bin/smbpasswd: utils/avm_smbpasswd.o $(MY_PASS_OBJ)
-+bin/smbpasswd: utils/owrt_smbpasswd.o $(MY_PASS_OBJ)
-       @echo Linking $@
--      @$(CC) $(FLAGS)  -o $@ utils/avm_smbpasswd.o $(MY_PASS_OBJ) \
-+      @$(CC) $(FLAGS)  -o $@ utils/owrt_smbpasswd.o $(MY_PASS_OBJ) \
-               -L$(TARGETFS)/lib
+-SMBPASSWD_OBJ = utils/smbpasswd.o $(PASSWD_UTIL_OBJ) $(PASSCHANGE_OBJ) \
+-              $(PARAM_OBJ) $(SECRETS_OBJ) $(LIBSMB_OBJ) $(PASSDB_OBJ) \
+-              $(GROUPDB_OBJ) $(LIB_NONSMBD_OBJ) $(KRBCLIENT_OBJ) \
+-              $(POPT_LIB_OBJ) $(SMBLDAP_OBJ) $(RPC_PARSE_OBJ) $(LIBMSRPC_GEN_OBJ) $(LIBMSRPC_OBJ)
++SMBPASSWD_OBJ = utils/owrt_smbpasswd.o lib/md4.o
  
-  
-Index: samba-3.0.24/source/utils/owrt_smbpasswd.c
-===================================================================
---- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ samba-3.0.24/source/utils/owrt_smbpasswd.c 2008-08-07 15:58:25.000000000 +0200
+ PDBEDIT_OBJ = utils/pdbedit.o $(PASSWD_UTIL_OBJ) $(PARAM_OBJ) $(PASSDB_OBJ) \
+               $(LIBSAMBA_OBJ) $(LIB_NONSMBD_OBJ) $(GROUPDB_OBJ) \
+--- /dev/null
++++ b/source/utils/owrt_smbpasswd.c
 @@ -0,0 +1,195 @@
 +/*
 + * Copyright (C) John Crispin <blogic@openwrt.org>
diff --git a/net/samba3/patches/140-no_mmap.patch b/net/samba3/patches/140-no_mmap.patch
deleted file mode 100644 (file)
index 619cec6..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-Index: samba-3.0.24/source/include/config.h
-===================================================================
---- samba-3.0.24.orig/source/include/config.h  2008-08-08 17:43:08.000000000 +0200
-+++ samba-3.0.24/source/include/config.h       2008-08-08 17:44:02.000000000 +0200
-@@ -821,7 +821,7 @@
- #define HAVE_MKTIME 1
- /* Whether mmap works */
--#define HAVE_MMAP 1
-+/* #define HAVE_MMAP 1 */
- /* Define to 1 if you have the <mntent.h> header file. */
- #define HAVE_MNTENT_H 1
-Index: samba-3.0.24/source/tdb/Makefile
-===================================================================
---- samba-3.0.24.orig/source/tdb/Makefile      2008-08-08 17:42:47.000000000 +0200
-+++ samba-3.0.24/source/tdb/Makefile   2008-08-08 17:44:15.000000000 +0200
-@@ -2,7 +2,8 @@
- # Makefile for tdb directory
- #
--CFLAGS = -DSTANDALONE -DTDB_DEBUG -g -DHAVE_MMAP=1
-+CFLAGS = -DSTANDALONE -DTDB_DEBUG -g 
-+#-DHAVE_MMAP=1
- CC = gcc
- ADMINPROGS = tdbdump tdbbackup
index 10538d6..437d1b8 100644 (file)
@@ -1,8 +1,6 @@
-Index: samba-3.0.24/source/lib/ms_fnmatch.c
-===================================================================
---- samba-3.0.24.orig/source/lib/ms_fnmatch.c  2008-08-11 11:08:03.000000000 +0200
-+++ samba-3.0.24/source/lib/ms_fnmatch.c       2008-08-11 11:11:33.000000000 +0200
-@@ -153,6 +153,10 @@
+--- a/source/lib/ms_fnmatch.c
++++ b/source/lib/ms_fnmatch.c
+@@ -153,6 +153,10 @@ int ms_fnmatch(const char *pattern, cons
        int ret, count, i;
        struct max_n *max_n = NULL;
  
index 9396b4d..bc6b8c4 100644 (file)
@@ -1,8 +1,6 @@
-Index: samba-3.0.24/source/lib/popt_common.c
-===================================================================
---- samba-3.0.24.orig/source/lib/popt_common.c 2008-08-11 11:25:26.000000000 +0200
-+++ samba-3.0.24/source/lib/popt_common.c      2008-08-11 11:26:03.000000000 +0200
-@@ -54,7 +54,7 @@
+--- a/source/lib/popt_common.c
++++ b/source/lib/popt_common.c
+@@ -54,7 +54,7 @@ static void set_logfile(poptContext con,
        else 
                pname++;
  
index ae1d6c7..0dd18e3 100644 (file)
@@ -1,28 +1,21 @@
---- a/source/include/config.h
-+++ b/source/include/config.h
-@@ -986,13 +986,13 @@
- /* #undef HAVE_ROOT */
+
+--- a/source/configure
++++ b/source/configure
+@@ -22548,6 +22548,17 @@ rm -f conftest.err conftest.$ac_ext
+ { $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+ $as_echo "$ac_header_preproc" >&6; }
  
- /* Define to 1 if you have the <rpcsvc/nis.h> header file. */
--#define HAVE_RPCSVC_NIS_H 1
-+/* #define HAVE_RPCSVC_NIS_H 1 */
- /* Define to 1 if you have the <rpcsvc/ypclnt.h> header file. */
--#define HAVE_RPCSVC_YPCLNT_H 1
-+/* #define HAVE_RPCSVC_YPCLNT_H 1 */
- /* Define to 1 if you have the <rpcsvc/yp_prot.h> header file. */
--#define HAVE_RPCSVC_YP_PROT_H 1
-+/* #define HAVE_RPCSVC_YP_PROT_H 1 */
- /* Whether there is a conflicting AUTH_ERROR define in rpc/rpc.h */
- /* #undef HAVE_RPC_AUTH_ERROR_CONFLICT */
-@@ -1001,7 +1001,7 @@
- /* #undef HAVE_RPC_NETTYPE_H */
- /* Define to 1 if you have the <rpc/rpc.h> header file. */
--#define HAVE_RPC_RPC_H 1
-+/* #define HAVE_RPC_RPC_H 1 */
- /* Whether mkstemp is secure */
- #define HAVE_SECURE_MKSTEMP 1
++# Force disable RPC
++$as_echo "test=$ac_header" >&6
++if test "$ac_header" = "rpc/rpc.h"; then
++    if test "$ac_header_compiler" = "yes" -o "$ac_header_preproc" = "yes"; then
++        $as_echo "RPC support force disabled by OpenWRT patch" >&5
++        $as_echo "RPC support force disabled by OpenWRT patch" >&6
++    fi
++fi
++ac_header_compiler=no
++ac_header_preproc=no
++
+ # So?  What about this header?
+ case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+   yes:no: )
diff --git a/net/samba3/patches/180-fix_duplicate_define.patch b/net/samba3/patches/180-fix_duplicate_define.patch
deleted file mode 100644 (file)
index e436226..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
---- a/source/include/config.h
-+++ b/source/include/config.h
-@@ -1848,8 +1848,7 @@
- #define SIZEOF_LONG 4
- /* The size of the 'off_t' type */
--/* AR7 #define SIZEOF_OFF_T 8 */
--#define SIZEOF_OFF_T 4 /* AR7 */
-+/* #define SIZEOF_OFF_T 8 */
- /* The size of a `short', as computed by sizeof. */
- #define SIZEOF_SHORT 2
diff --git a/net/samba3/patches/200-fix-configure.patch b/net/samba3/patches/200-fix-configure.patch
new file mode 100644 (file)
index 0000000..2ab0d61
--- /dev/null
@@ -0,0 +1,12 @@
+Get rid of error due to cross compilation, as glibc version in OpenWRT is high enough
+--- a/source/configure
++++ b/source/configure
+@@ -37222,7 +37222,7 @@ rm -f core conftest.err conftest.$ac_obj
+ case "$host_os" in
+     *linux*)
+        # glibc <= 2.3.2 has a broken getgrouplist
+-       if test "$cross_compiling" = yes; then
++       if test "false" = yes; then
+   { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+ $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ { { $as_echo "$as_me:$LINENO: error: cannot run test program while cross compiling
diff --git a/net/samba3/patches/500-remove_avm_smaller.patch b/net/samba3/patches/500-remove_avm_smaller.patch
new file mode 100644 (file)
index 0000000..fdc07dd
--- /dev/null
@@ -0,0 +1,76 @@
+--- a/source/Makefile.in
++++ b/source/Makefile.in
+@@ -291,7 +291,7 @@ SECRETS_OBJ = passdb/secrets.o passdb/ma
+ LIBNMB_OBJ = libsmb/unexpected.o libsmb/namecache.o libsmb/nmblib.o \
+            libsmb/namequery.o libsmb/conncache.o libads/dns.o
+-LIBSAMBA_OBJ = libsmb/nterr.o libsmb/dcerpc_err.o libsmb/smbdes.o \
++LIBSAMBA_OBJ = libsmb/nterr.o $(if $(OWRT_SMALLER),,libsmb/dcerpc_err.o) libsmb/smbdes.o \
+              libsmb/smbencrypt.o libsmb/ntlm_check.o \
+              libsmb/ntlmssp.o libsmb/ntlmssp_parse.o libsmb/ntlmssp_sign.o
+@@ -323,35 +323,35 @@ REGISTRY_OBJ = registry/reg_frontend.o r
+                registry/reg_db.o registry/reg_eventlog.o registry/reg_shares.o \
+                registry/reg_util.o registry/reg_dynamic.o registry/reg_perfcount.o
+-RPC_LSA_OBJ = rpc_server/srv_lsa.o rpc_server/srv_lsa_nt.o
++RPC_LSA_OBJ = $(if $(OWRT_SMALLER),,rpc_server/srv_lsa.o rpc_server/srv_lsa_nt.o)
+-RPC_NETLOG_OBJ = rpc_server/srv_netlog.o rpc_server/srv_netlog_nt.o
++RPC_NETLOG_OBJ = $(if $(OWRT_SMALLER),,rpc_server/srv_netlog.o rpc_server/srv_netlog_nt.o)
+-RPC_SAMR_OBJ = rpc_server/srv_samr.o rpc_server/srv_samr_nt.o \
+-               rpc_server/srv_samr_util.o
++RPC_SAMR_OBJ = $(if $(OWRT_SMALLER),,rpc_server/srv_samr.o rpc_server/srv_samr_nt.o \
++               rpc_server/srv_samr_util.o)
+ REGFIO_OBJ = registry/regfio.o
+-RPC_REG_OBJ =  rpc_server/srv_reg.o rpc_server/srv_reg_nt.o $(REGFIO_OBJ)
++RPC_REG_OBJ = $(if $(OWRT_SMALLER),,rpc_server/srv_reg.o rpc_server/srv_reg_nt.o $(REGFIO_OBJ))
+-RPC_LSA_DS_OBJ =  rpc_server/srv_lsa_ds.o rpc_server/srv_lsa_ds_nt.o
++RPC_LSA_DS_OBJ = $(if $(OWRT_SMALLER),,rpc_server/srv_lsa_ds.o rpc_server/srv_lsa_ds_nt.o)
+ RPC_SVC_OBJ = rpc_server/srv_srvsvc.o rpc_server/srv_srvsvc_nt.o
+ RPC_WKS_OBJ =  librpc/gen_ndr/srv_wkssvc.o rpc_server/srv_wkssvc_nt.o
+-RPC_SVCCTL_OBJ =  rpc_server/srv_svcctl.o rpc_server/srv_svcctl_nt.o \
++RPC_SVCCTL_OBJ = $(if $(OWRT_SMALLER),, rpc_server/srv_svcctl.o) rpc_server/srv_svcctl_nt.o \
+                   services/svc_spoolss.o services/svc_rcinit.o services/services_db.o \
+                   services/svc_netlogon.o services/svc_winreg.o \
+                   services/svc_wins.o
+-RPC_NTSVCS_OBJ = rpc_server/srv_ntsvcs.o rpc_server/srv_ntsvcs_nt.o
++RPC_NTSVCS_OBJ = $(if $(OWRT_SMALLER),,rpc_server/srv_ntsvcs.o rpc_server/srv_ntsvcs_nt.o)
+-RPC_DFS_OBJ =  rpc_server/srv_dfs.o rpc_server/srv_dfs_nt.o
++RPC_DFS_OBJ =  $(if $(OWRT_SMALLER),,rpc_server/srv_dfs.o rpc_server/srv_dfs_nt.o)
+-RPC_SPOOLSS_OBJ = rpc_server/srv_spoolss.o rpc_server/srv_spoolss_nt.o
++RPC_SPOOLSS_OBJ = $(if $(OWRT_SMALLER),,rpc_server/srv_spoolss.o rpc_server/srv_spoolss_nt.o)
+-RPC_EVENTLOG_OBJ = rpc_server/srv_eventlog.o rpc_server/srv_eventlog_nt.o rpc_server/srv_eventlog_lib.o
++RPC_EVENTLOG_OBJ = $(if $(OWRT_SMALLER),,rpc_server/srv_eventlog.o rpc_server/srv_eventlog_nt.o rpc_server/srv_eventlog_lib.o)
+ RPC_PIPE_OBJ = rpc_server/srv_pipe_hnd.o \
+                rpc_server/srv_pipe.o rpc_server/srv_lsa_hnd.o
+@@ -431,7 +431,7 @@ PLAINTEXT_AUTH_OBJ = auth/pampass.o auth
+ SLCACHE_OBJ = libsmb/samlogon_cache.o
+-DCUTIL_OBJ  = libsmb/namequery_dc.o libsmb/trustdom_cache.o libsmb/trusts_util.o
++DCUTIL_OBJ  = libsmb/namequery_dc.o $(if $(OWRT_SMALLER),,libsmb/trustdom_cache.o libsmb/trusts_util.o)
+ AUTH_BUILTIN_OBJ = auth/auth_builtin.o
+ AUTH_DOMAIN_OBJ = auth/auth_domain.o
+@@ -468,7 +468,7 @@ SMBD_OBJ_SRV = smbd/files.o smbd/chgpass
+              smbd/change_trust_pw.o smbd/fake_file.o \
+              smbd/ntquotas.o $(AFS_OBJ) smbd/msdfs.o \
+              $(AFS_SETTOKEN_OBJ) smbd/aio.o smbd/statvfs.o \
+-             smbd/dmapi.o $(MANGLE_OBJ) @VFS_STATIC@
++             $(if $(OWRT_SMALLER),,smbd/dmapi.o) $(MANGLE_OBJ) @VFS_STATIC@
+ SMBD_OBJ_BASE = $(PARAM_OBJ) $(SMBD_OBJ_SRV) $(LIBSMB_OBJ) \
+               $(RPC_SERVER_OBJ) $(RPC_PARSE_OBJ) $(SECRETS_OBJ) \
diff --git a/net/samba3/patches/510-remove-printing.patch b/net/samba3/patches/510-remove-printing.patch
new file mode 100644 (file)
index 0000000..c9260d1
--- /dev/null
@@ -0,0 +1,47 @@
+--- a/source/Makefile.in
++++ b/source/Makefile.in
+@@ -319,7 +319,7 @@ LIBMSRPC_GEN_OBJ = librpc/gen_ndr/cli_wk
+ REGOBJS_OBJ = registry/reg_objects.o
+-REGISTRY_OBJ = registry/reg_frontend.o registry/reg_cachehook.o registry/reg_printing.o \
++REGISTRY_OBJ = registry/reg_frontend.o registry/reg_cachehook.o $(if $(OWRT_NO_PRINTING),,registry/reg_printing.o) \
+                registry/reg_db.o registry/reg_eventlog.o registry/reg_shares.o \
+                registry/reg_util.o registry/reg_dynamic.o registry/reg_perfcount.o
+@@ -349,7 +349,7 @@ RPC_NTSVCS_OBJ = $(if $(OWRT_SMALLER),,r
+ RPC_DFS_OBJ =  $(if $(OWRT_SMALLER),,rpc_server/srv_dfs.o rpc_server/srv_dfs_nt.o)
+-RPC_SPOOLSS_OBJ = $(if $(OWRT_SMALLER),,rpc_server/srv_spoolss.o rpc_server/srv_spoolss_nt.o)
++RPC_SPOOLSS_OBJ = $(if $(OWRT_NO_PRINTING),,rpc_server/srv_spoolss.o rpc_server/srv_spoolss_nt.o)
+ RPC_EVENTLOG_OBJ = $(if $(OWRT_SMALLER),,rpc_server/srv_eventlog.o rpc_server/srv_eventlog_nt.o rpc_server/srv_eventlog_lib.o)
+@@ -463,7 +463,7 @@ SMBD_OBJ_SRV = smbd/files.o smbd/chgpass
+              smbd/vfs.o smbd/statcache.o \
+                smbd/posix_acls.o lib/sysacls.o $(SERVER_MUTEX_OBJ) \
+              smbd/process.o smbd/service.o smbd/error.o \
+-             printing/printfsp.o lib/sysquotas.o lib/sysquotas_linux.o \
++             $(if $(OWRT_NO_PRINTING),,printing/printfsp.o) lib/sysquotas.o lib/sysquotas_linux.o \
+              lib/sysquotas_xfs.o lib/sysquotas_4A.o \
+              smbd/change_trust_pw.o smbd/fake_file.o \
+              smbd/ntquotas.o $(AFS_OBJ) smbd/msdfs.o \
+@@ -480,13 +480,13 @@ SMBD_OBJ_BASE = $(PARAM_OBJ) $(SMBD_OBJ_
+               $(REGISTRY_OBJ) $(POPT_LIB_OBJ) \
+               $(BUILDOPT_OBJ) $(SMBLDAP_OBJ)
+-PRINTING_OBJ = printing/pcap.o printing/print_svid.o printing/print_aix.o \
++PRINTING_OBJ = $(if $(OWRT_NO_PRINTING),,printing/pcap.o printing/print_svid.o printing/print_aix.o \
+                printing/print_cups.o printing/print_generic.o \
+                printing/lpq_parse.o printing/load.o \
+-               printing/print_iprint.o printing/print_test.o
++               printing/print_iprint.o printing/print_test.o)
+-PRINTBASE_OBJ = printing/notify.o printing/printing_db.o
+-PRINTBACKEND_OBJ = printing/printing.o printing/nt_printing.o $(PRINTBASE_OBJ)
++PRINTBASE_OBJ = $(if $(OWRT_NO_PRINTING),,printing/notify.o printing/printing_db.o)
++PRINTBACKEND_OBJ = $(if $(OWRT_NO_PRINTING),,printing/printing.o printing/nt_printing.o $(PRINTBASE_OBJ))
+ SMBD_OBJ = $(SMBD_OBJ_BASE) $(SMBD_OBJ_MAIN)
+ NMBD_OBJ1 = nmbd/asyncdns.o nmbd/nmbd.o nmbd/nmbd_become_dmb.o \
diff --git a/net/samba3/patches/600-CVE-2012-1182.patch b/net/samba3/patches/600-CVE-2012-1182.patch
new file mode 100644 (file)
index 0000000..b0f50a1
--- /dev/null
@@ -0,0 +1,41 @@
+--- a/source/librpc/gen_ndr/ndr_wkssvc.c
++++ b/source/librpc/gen_ndr/ndr_wkssvc.c
+@@ -1385,10 +1385,10 @@ NTSTATUS ndr_pull_USER_INFO_0_CONTAINER(
+                       NDR_PULL_ALLOC_N(ndr, r->user0, ndr_get_array_size(ndr, &r->user0));
+                       _mem_save_user0_1 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->user0, 0);
+-                      for (cntr_user0_1 = 0; cntr_user0_1 < r->entries_read; cntr_user0_1++) {
++                      for (cntr_user0_1 = 0; cntr_user0_1 < ndr_get_array_size(ndr, &r->user0); cntr_user0_1++) {
+                               NDR_CHECK(ndr_pull_USER_INFO_0(ndr, NDR_SCALARS, &r->user0[cntr_user0_1]));
+                       }
+-                      for (cntr_user0_1 = 0; cntr_user0_1 < r->entries_read; cntr_user0_1++) {
++                      for (cntr_user0_1 = 0; cntr_user0_1 < ndr_get_array_size(ndr, &r->user0); cntr_user0_1++) {
+                               NDR_CHECK(ndr_pull_USER_INFO_0(ndr, NDR_BUFFERS, &r->user0[cntr_user0_1]));
+                       }
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user0_1, 0);
+@@ -1631,10 +1631,10 @@ NTSTATUS ndr_pull_USER_INFO_1_CONTAINER(
+                       NDR_PULL_ALLOC_N(ndr, r->user1, ndr_get_array_size(ndr, &r->user1));
+                       _mem_save_user1_1 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->user1, 0);
+-                      for (cntr_user1_1 = 0; cntr_user1_1 < r->entries_read; cntr_user1_1++) {
++                      for (cntr_user1_1 = 0; cntr_user1_1 < ndr_get_array_size(ndr, &r->user1); cntr_user1_1++) {
+                               NDR_CHECK(ndr_pull_USER_INFO_1(ndr, NDR_SCALARS, &r->user1[cntr_user1_1]));
+                       }
+-                      for (cntr_user1_1 = 0; cntr_user1_1 < r->entries_read; cntr_user1_1++) {
++                      for (cntr_user1_1 = 0; cntr_user1_1 < ndr_get_array_size(ndr, &r->user1); cntr_user1_1++) {
+                               NDR_CHECK(ndr_pull_USER_INFO_1(ndr, NDR_BUFFERS, &r->user1[cntr_user1_1]));
+                       }
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user1_1, 0);
+@@ -1953,10 +1953,10 @@ NTSTATUS ndr_pull_wkssvc_NetWkstaTranspo
+                       NDR_PULL_ALLOC_N(ndr, r->array, ndr_get_array_size(ndr, &r->array));
+                       _mem_save_array_1 = NDR_PULL_GET_MEM_CTX(ndr);
+                       NDR_PULL_SET_MEM_CTX(ndr, r->array, 0);
+-                      for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
++                      for (cntr_array_1 = 0; cntr_array_1 < ndr_get_array_size(ndr, &r->array); cntr_array_1++) {
+                               NDR_CHECK(ndr_pull_wkssvc_NetWkstaTransportInfo0(ndr, NDR_SCALARS, &r->array[cntr_array_1]));
+                       }
+-                      for (cntr_array_1 = 0; cntr_array_1 < r->count; cntr_array_1++) {
++                      for (cntr_array_1 = 0; cntr_array_1 < ndr_get_array_size(ndr, &r->array); cntr_array_1++) {
+                               NDR_CHECK(ndr_pull_wkssvc_NetWkstaTransportInfo0(ndr, NDR_BUFFERS, &r->array[cntr_array_1]));
+                       }
+                       NDR_PULL_SET_MEM_CTX(ndr, _mem_save_array_1, 0);