fenlason ea54ad0
diff -uBbrN --exclude-from=/misc/src/samba-cvs/diff.excludes samba-3.0.20-orig/examples/VFS/skel_opaque.c samba-3.0.20-new/examples/VFS/skel_opaque.c
fenlason ea54ad0
--- samba-3.0.20-orig/examples/VFS/skel_opaque.c	2005-07-28 08:19:54.000000000 -0500
fenlason ea54ad0
+++ samba-3.0.20-new/examples/VFS/skel_opaque.c	2005-08-26 09:42:08.000000000 -0500
fenlason ea54ad0
@@ -71,27 +71,27 @@
fenlason ea54ad0
 	return vfswrap_get_shadow_copy_data(NULL, fsp, shadow_copy_data, labels);
fenlason ea54ad0
 }
fenlason ea54ad0
 
fenlason ea54ad0
-static DIR *skel_opendir(vfs_handle_struct *handle, connection_struct *conn, const char *fname, const char *mask, uint32 attr)
fenlason ea54ad0
+static SMB_STRUCT_DIR *skel_opendir(vfs_handle_struct *handle, connection_struct *conn, const char *fname, const char *mask, uint32 attr)
fenlason ea54ad0
 {
fenlason ea54ad0
 	return vfswrap_opendir(NULL, conn, fname, mask, attr);
fenlason ea54ad0
 }
fenlason ea54ad0
 
fenlason ea54ad0
-static SMB_STRUCT_DIRENT *skel_readdir(vfs_handle_struct *handle, connection_struct *conn, DIR *dirp)
fenlason ea54ad0
+static SMB_STRUCT_DIRENT *skel_readdir(vfs_handle_struct *handle, connection_struct *conn, SMB_STRUCT_DIR *dirp)
fenlason ea54ad0
 {
fenlason ea54ad0
 	return vfswrap_readdir(NULL, conn, dirp);
fenlason ea54ad0
 }
fenlason ea54ad0
 
fenlason ea54ad0
-static void skel_seekdir(vfs_handle_struct *handle, connection_struct *conn, DIR *dirp, long offset)
fenlason ea54ad0
+static void skel_seekdir(vfs_handle_struct *handle, connection_struct *conn, SMB_STRUCT_DIR *dirp, long offset)
fenlason ea54ad0
 {
fenlason ea54ad0
 	return vfswrap_seekdir(NULL, conn, dirp, offset);
fenlason ea54ad0
 }
fenlason ea54ad0
 
fenlason ea54ad0
-static long skel_telldir(vfs_handle_struct *handle, connection_struct *conn, DIR *dirp)
fenlason ea54ad0
+static long skel_telldir(vfs_handle_struct *handle, connection_struct *conn, SMB_STRUCT_DIR *dirp)
fenlason ea54ad0
 {
fenlason ea54ad0
 	return vfswrap_telldir(NULL, conn, dirp);
fenlason ea54ad0
 }
fenlason ea54ad0
 
fenlason ea54ad0
-static void skel_rewinddir(vfs_handle_struct *handle, connection_struct *conn, DIR *dirp)
fenlason ea54ad0
+static void skel_rewinddir(vfs_handle_struct *handle, connection_struct *conn, SMB_STRUCT_DIR *dirp)
fenlason ea54ad0
 {
fenlason ea54ad0
 	return vfswrap_rewinddir(NULL, conn, dirp);
fenlason ea54ad0
 }
fenlason ea54ad0
@@ -106,7 +106,7 @@
fenlason ea54ad0
 	return vfswrap_rmdir(NULL, conn, path);
fenlason ea54ad0
 }
fenlason ea54ad0
 
fenlason ea54ad0
-static int skel_closedir(vfs_handle_struct *handle, connection_struct *conn, DIR *dir)
fenlason ea54ad0
+static int skel_closedir(vfs_handle_struct *handle, connection_struct *conn, SMB_STRUCT_DIR *dir)
fenlason ea54ad0
 {
fenlason ea54ad0
 	return vfswrap_closedir(NULL, conn, dir);
fenlason ea54ad0
 }
fenlason ea54ad0
diff -uBbrN --exclude-from=/misc/src/samba-cvs/diff.excludes samba-3.0.20-orig/examples/VFS/skel_transparent.c samba-3.0.20-new/examples/VFS/skel_transparent.c
fenlason ea54ad0
--- samba-3.0.20-orig/examples/VFS/skel_transparent.c	2005-07-28 08:19:54.000000000 -0500
fenlason ea54ad0
+++ samba-3.0.20-new/examples/VFS/skel_transparent.c	2005-08-26 09:42:08.000000000 -0500
fenlason ea54ad0
@@ -70,27 +70,27 @@
fenlason ea54ad0
 	return SMB_VFS_NEXT_GET_SHADOW_COPY_DATA(handle, fsp, shadow_copy_data, labels);
fenlason ea54ad0
 }
fenlason ea54ad0
 
fenlason ea54ad0
-static DIR *skel_opendir(vfs_handle_struct *handle, connection_struct *conn, const char *fname, const char *mask, uint32 attr)
fenlason ea54ad0
+static SMB_STRUCT_DIR *skel_opendir(vfs_handle_struct *handle, connection_struct *conn, const char *fname, const char *mask, uint32 attr)
fenlason ea54ad0
 {
fenlason ea54ad0
 	return SMB_VFS_NEXT_OPENDIR(handle, conn, fname, mask, attr);
fenlason ea54ad0
 }
fenlason ea54ad0
 
fenlason ea54ad0
-static SMB_STRUCT_DIRENT *skel_readdir(vfs_handle_struct *handle, connection_struct *conn, DIR *dirp)
fenlason ea54ad0
+static SMB_STRUCT_DIRENT *skel_readdir(vfs_handle_struct *handle, connection_struct *conn, SMB_STRUCT_DIR *dirp)
fenlason ea54ad0
 {
fenlason ea54ad0
 	return SMB_VFS_NEXT_READDIR(handle, conn, dirp);
fenlason ea54ad0
 }
fenlason ea54ad0
 
fenlason ea54ad0
-static void skel_seekdir(vfs_handle_struct *handle, connection_struct *conn, DIR *dirp, long offset)
fenlason ea54ad0
+static void skel_seekdir(vfs_handle_struct *handle, connection_struct *conn, SMB_STRUCT_DIR *dirp, long offset)
fenlason ea54ad0
 {
fenlason ea54ad0
 	return SMB_VFS_NEXT_SEEKDIR(handle, conn, dirp, offset);
fenlason ea54ad0
 }
fenlason ea54ad0
 
fenlason ea54ad0
-static long skel_telldir(vfs_handle_struct *handle, connection_struct *conn, DIR *dirp)
fenlason ea54ad0
+static long skel_telldir(vfs_handle_struct *handle, connection_struct *conn, SMB_STRUCT_DIR *dirp)
fenlason ea54ad0
 {
fenlason ea54ad0
 	return SMB_VFS_NEXT_TELLDIR(handle, conn, dirp);
fenlason ea54ad0
 }
fenlason ea54ad0
 
fenlason ea54ad0
-static void skel_rewinddir(vfs_handle_struct *handle, connection_struct *conn, DIR *dirp)
fenlason ea54ad0
+static void skel_rewinddir(vfs_handle_struct *handle, connection_struct *conn, SMB_STRUCT_DIR *dirp)
fenlason ea54ad0
 {
fenlason ea54ad0
 	return SMB_VFS_NEXT_REWINDDIR(handle, conn, dirp);
fenlason ea54ad0
 }
fenlason ea54ad0
@@ -105,7 +105,7 @@
fenlason ea54ad0
 	return SMB_VFS_NEXT_RMDIR(handle, conn, path);
fenlason ea54ad0
 }
fenlason ea54ad0
 
fenlason ea54ad0
-static int skel_closedir(vfs_handle_struct *handle, connection_struct *conn, DIR *dir)
fenlason ea54ad0
+static int skel_closedir(vfs_handle_struct *handle, connection_struct *conn, SMB_STRUCT_DIR *dir)
fenlason ea54ad0
 {
fenlason ea54ad0
 	return SMB_VFS_NEXT_CLOSEDIR(handle, conn, dir);
fenlason ea54ad0
 }
fenlason ea54ad0
diff -uBbrN --exclude-from=/misc/src/samba-cvs/diff.excludes samba-3.0.20-orig/source/client/client.c samba-3.0.20-new/source/client/client.c
fenlason ea54ad0
--- samba-3.0.20-orig/source/client/client.c	2005-07-28 08:19:53.000000000 -0500
fenlason ea54ad0
+++ samba-3.0.20-new/source/client/client.c	2005-08-26 09:42:08.000000000 -0500
fenlason ea54ad0
@@ -1379,7 +1379,7 @@
fenlason ea54ad0
 static int file_find(struct file_list **list, const char *directory, 
fenlason ea54ad0
 		      const char *expression, BOOL match)
fenlason ea54ad0
 {
fenlason ea54ad0
-	DIR *dir;
fenlason ea54ad0
+	SMB_STRUCT_DIR *dir;
fenlason ea54ad0
 	struct file_list *entry;
fenlason ea54ad0
         struct stat statbuf;
fenlason ea54ad0
         int ret;
fenlason ea54ad0
@@ -1387,7 +1387,7 @@
fenlason ea54ad0
 	BOOL isdir;
fenlason ea54ad0
 	const char *dname;
fenlason ea54ad0
 
fenlason ea54ad0
-        dir = opendir(directory);
fenlason ea54ad0
+        dir = sys_opendir(directory);
fenlason ea54ad0
 	if (!dir)
fenlason ea54ad0
 		return -1;
fenlason ea54ad0
 	
fenlason ea54ad0
@@ -1416,14 +1416,14 @@
fenlason ea54ad0
 				
fenlason ea54ad0
 				if (ret == -1) {
fenlason ea54ad0
 					SAFE_FREE(path);
fenlason ea54ad0
-					closedir(dir);
fenlason ea54ad0
+					sys_closedir(dir);
fenlason ea54ad0
 					return -1;
fenlason ea54ad0
 				}
fenlason ea54ad0
 			}
fenlason ea54ad0
 			entry = SMB_MALLOC_P(struct file_list);
fenlason ea54ad0
 			if (!entry) {
fenlason ea54ad0
 				d_printf("Out of memory in file_find\n");
fenlason ea54ad0
-				closedir(dir);
fenlason ea54ad0
+				sys_closedir(dir);
fenlason ea54ad0
 				return -1;
fenlason ea54ad0
 			}
fenlason ea54ad0
 			entry->file_path = path;
fenlason ea54ad0
@@ -1434,7 +1434,7 @@
fenlason ea54ad0
 		}
fenlason ea54ad0
         }
fenlason ea54ad0
 
fenlason ea54ad0
-	closedir(dir);
fenlason ea54ad0
+	sys_closedir(dir);
fenlason ea54ad0
 	return 0;
fenlason ea54ad0
 }
fenlason ea54ad0
 
fenlason ea54ad0
diff -uBbrN --exclude-from=/misc/src/samba-cvs/diff.excludes samba-3.0.20-orig/source/client/smbspool.c samba-3.0.20-new/source/client/smbspool.c
fenlason ea54ad0
--- samba-3.0.20-orig/source/client/smbspool.c	2005-07-28 08:19:53.000000000 -0500
fenlason ea54ad0
+++ samba-3.0.20-new/source/client/smbspool.c	2005-08-26 09:42:08.000000000 -0500
fenlason ea54ad0
@@ -288,7 +288,7 @@
fenlason ea54ad0
 static
fenlason ea54ad0
 char * get_ticket_cache( uid_t uid )
fenlason ea54ad0
 {
fenlason ea54ad0
-  DIR *tcdir;                  /* directory where ticket caches are stored */
fenlason ea54ad0
+  SMB_STRUCT_DIR *tcdir;                  /* directory where ticket caches are stored */
fenlason ea54ad0
   SMB_STRUCT_DIRENT *dirent;   /* directory entry */
fenlason ea54ad0
   char *filename = NULL;       /* holds file names on the tmp directory */
fenlason ea54ad0
   SMB_STRUCT_STAT buf;        
fenlason ea54ad0
@@ -298,7 +298,7 @@
fenlason ea54ad0
   time_t t = 0;
fenlason ea54ad0
   
fenlason ea54ad0
   snprintf(user_cache_prefix, CC_MAX_FILE_LEN, "%s%d", CC_PREFIX, uid );
fenlason ea54ad0
-  tcdir = opendir( TICKET_CC_DIR );
fenlason ea54ad0
+  tcdir = sys_opendir( TICKET_CC_DIR );
fenlason ea54ad0
   if ( tcdir == NULL ) 
fenlason ea54ad0
     return NULL; 
fenlason ea54ad0
   
fenlason ea54ad0
@@ -331,6 +331,8 @@
fenlason ea54ad0
     }
fenlason ea54ad0
   }
fenlason ea54ad0
 
fenlason ea54ad0
+  sys_closedir(tcdir);
fenlason ea54ad0
+
fenlason ea54ad0
   if ( ticket_file == NULL )
fenlason ea54ad0
   {
fenlason ea54ad0
     /* no ticket cache found */
fenlason ea54ad0
diff -uBbrN --exclude-from=/misc/src/samba-cvs/diff.excludes samba-3.0.20-orig/source/configure.in samba-3.0.20-new/source/configure.in
fenlason ea54ad0
--- samba-3.0.20-orig/source/configure.in	2005-08-19 12:16:29.000000000 -0500
fenlason ea54ad0
+++ samba-3.0.20-new/source/configure.in	2005-08-26 09:42:08.000000000 -0500
fenlason ea54ad0
@@ -1089,8 +1089,9 @@
fenlason ea54ad0
 AC_CHECK_FUNCS(strftime sigprocmask sigblock sigaction sigset innetgr setnetgrent getnetgrent endnetgrent)
fenlason ea54ad0
 AC_CHECK_FUNCS(initgroups select poll rdchk getgrnam getgrent pathconf realpath)
fenlason ea54ad0
 AC_CHECK_FUNCS(setpriv setgidx setuidx setgroups sysconf mktime rename ftruncate chsize stat64 fstat64)
fenlason ea54ad0
-AC_CHECK_FUNCS(lstat64 fopen64 atexit grantpt dup2 lseek64 ftruncate64 readdir64)
fenlason ea54ad0
+AC_CHECK_FUNCS(lstat64 fopen64 atexit grantpt dup2 lseek64 ftruncate64)
fenlason ea54ad0
 AC_CHECK_FUNCS(fseek64 fseeko64 ftell64 ftello64 setluid getpwanam setlinebuf)
fenlason ea54ad0
+AC_CHECK_FUNCS(opendir64 readdir64 seekdir64 telldir64 rewinddir64 closedir64)
fenlason ea54ad0
 AC_CHECK_FUNCS(srandom random srand rand setenv usleep strcasecmp fcvt fcvtl symlink readlink)
fenlason ea54ad0
 AC_CHECK_FUNCS(syslog vsyslog timegm)
fenlason ea54ad0
 AC_CHECK_FUNCS(setlocale nl_langinfo)
fenlason ea54ad0
@@ -1594,6 +1595,19 @@
fenlason ea54ad0
     AC_DEFINE(HAVE_DEV64_T,1,[Whether the 'dev64_t' type is available])
fenlason ea54ad0
 fi
fenlason ea54ad0
 
fenlason ea54ad0
+AC_CACHE_CHECK([for struct dirent64],samba_cv_HAVE_STRUCT_DIR64,[
fenlason ea54ad0
+AC_TRY_COMPILE([
fenlason ea54ad0
+#if defined(HAVE_UNISTD_H)
fenlason ea54ad0
+#include <unistd.h>
fenlason ea54ad0
+#endif
fenlason ea54ad0
+#include <sys/types.h>
fenlason ea54ad0
+#include <dirent.h>],
fenlason ea54ad0
+[DIR64 de;],
fenlason ea54ad0
+samba_cv_HAVE_STRUCT_DIR64=yes,samba_cv_HAVE_STRUCT_DIR64=no)])
fenlason ea54ad0
+if test x"$samba_cv_HAVE_STRUCT_DIR64" = x"yes" && test x"$ac_cv_func_readdir64" = x"yes"; then
fenlason ea54ad0
+    AC_DEFINE(HAVE_STRUCT_DIR64,1,[Whether the 'DIR64' abstract data type is available])
fenlason ea54ad0
+fi
fenlason ea54ad0
+
fenlason ea54ad0
 AC_CACHE_CHECK([for struct dirent64],samba_cv_HAVE_STRUCT_DIRENT64,[
fenlason ea54ad0
 AC_TRY_COMPILE([
fenlason ea54ad0
 #if defined(HAVE_UNISTD_H)
fenlason ea54ad0
diff -uBbrN --exclude-from=/misc/src/samba-cvs/diff.excludes samba-3.0.20-orig/source/include/includes.h samba-3.0.20-new/source/include/includes.h
fenlason ea54ad0
--- samba-3.0.20-orig/source/include/includes.h	2005-07-28 08:19:49.000000000 -0500
fenlason ea54ad0
+++ samba-3.0.20-new/source/include/includes.h	2005-08-26 09:42:08.000000000 -0500
fenlason ea54ad0
@@ -744,6 +744,18 @@
fenlason ea54ad0
 #endif
fenlason ea54ad0
 
fenlason ea54ad0
 /*
fenlason ea54ad0
+ * Type for DIR structure.
fenlason ea54ad0
+ */
fenlason ea54ad0
+
fenlason ea54ad0
+#ifndef SMB_STRUCT_DIR
fenlason ea54ad0
+#  if defined(HAVE_EXPLICIT_LARGEFILE_SUPPORT) && defined(HAVE_STRUCT_DIR64)
fenlason ea54ad0
+#    define SMB_STRUCT_DIR DIR64
fenlason ea54ad0
+#  else
fenlason ea54ad0
+#    define SMB_STRUCT_DIR DIR
fenlason ea54ad0
+#  endif
fenlason ea54ad0
+#endif
fenlason ea54ad0
+
fenlason ea54ad0
+/*
fenlason ea54ad0
  * Defines for 64 bit fcntl locks.
fenlason ea54ad0
  */
fenlason ea54ad0
 
fenlason ea54ad0
diff -uBbrN --exclude-from=/misc/src/samba-cvs/diff.excludes samba-3.0.20-orig/source/include/vfs.h samba-3.0.20-new/source/include/vfs.h
fenlason ea54ad0
--- samba-3.0.20-orig/source/include/vfs.h	2005-08-07 18:09:56.000000000 -0500
fenlason ea54ad0
+++ samba-3.0.20-new/source/include/vfs.h	2005-08-26 09:42:08.000000000 -0500
fenlason ea54ad0
@@ -59,7 +59,8 @@
fenlason ea54ad0
 /* Changed to version 12 to add mask and attributes to opendir(). JRA 
fenlason ea54ad0
    Also include aio calls. JRA. */
fenlason ea54ad0
 /* Changed to version 13 as the internal structure of files_struct has changed. JRA */
fenlason ea54ad0
-#define SMB_VFS_INTERFACE_VERSION 13
fenlason ea54ad0
+/* Changed to version 14 as the we had to change DIR to SMB_STRUCT_DIR. JRA */
fenlason ea54ad0
+#define SMB_VFS_INTERFACE_VERSION 14
fenlason ea54ad0
 
fenlason ea54ad0
 
fenlason ea54ad0
 /* to bug old modules which are trying to compile with the old functions */
fenlason ea54ad0
@@ -224,14 +225,14 @@
fenlason ea54ad0
 		
fenlason ea54ad0
 		/* Directory operations */
fenlason ea54ad0
 		
fenlason ea54ad0
-		DIR *(*opendir)(struct vfs_handle_struct *handle, struct connection_struct *conn, const char *fname, const char *mask, uint32 attributes);
fenlason ea54ad0
-		SMB_STRUCT_DIRENT *(*readdir)(struct vfs_handle_struct *handle, struct connection_struct *conn, DIR *dirp);
fenlason ea54ad0
-		void (*seekdir)(struct vfs_handle_struct *handle, struct connection_struct *conn, DIR *dirp, long offset);
fenlason ea54ad0
-		long (*telldir)(struct vfs_handle_struct *handle, struct connection_struct *conn, DIR *dirp);
fenlason ea54ad0
-		void (*rewind_dir)(struct vfs_handle_struct *handle, struct connection_struct *conn, DIR *dirp);
fenlason ea54ad0
+		SMB_STRUCT_DIR *(*opendir)(struct vfs_handle_struct *handle, struct connection_struct *conn, const char *fname, const char *mask, uint32 attributes);
fenlason ea54ad0
+		SMB_STRUCT_DIRENT *(*readdir)(struct vfs_handle_struct *handle, struct connection_struct *conn, SMB_STRUCT_DIR *dirp);
fenlason ea54ad0
+		void (*seekdir)(struct vfs_handle_struct *handle, struct connection_struct *conn, SMB_STRUCT_DIR *dirp, long offset);
fenlason ea54ad0
+		long (*telldir)(struct vfs_handle_struct *handle, struct connection_struct *conn, SMB_STRUCT_DIR *dirp);
fenlason ea54ad0
+		void (*rewind_dir)(struct vfs_handle_struct *handle, struct connection_struct *conn, SMB_STRUCT_DIR *dirp);
fenlason ea54ad0
 		int (*mkdir)(struct vfs_handle_struct *handle, struct connection_struct *conn, const char *path, mode_t mode);
fenlason ea54ad0
 		int (*rmdir)(struct vfs_handle_struct *handle, struct connection_struct *conn, const char *path);
fenlason ea54ad0
-		int (*closedir)(struct vfs_handle_struct *handle, struct connection_struct *conn, DIR *dir);
fenlason ea54ad0
+		int (*closedir)(struct vfs_handle_struct *handle, struct connection_struct *conn, SMB_STRUCT_DIR *dir);
fenlason ea54ad0
 		
fenlason ea54ad0
 		/* File operations */
fenlason ea54ad0
 		
fenlason ea54ad0
diff -uBbrN --exclude-from=/misc/src/samba-cvs/diff.excludes samba-3.0.20-orig/source/lib/system.c samba-3.0.20-new/source/lib/system.c
fenlason ea54ad0
--- samba-3.0.20-orig/source/lib/system.c	2005-07-28 08:19:45.000000000 -0500
fenlason ea54ad0
+++ samba-3.0.20-new/source/lib/system.c	2005-08-26 09:42:08.000000000 -0500
fenlason ea54ad0
@@ -366,7 +366,7 @@
fenlason ea54ad0
  An opendir wrapper that will deal with 64 bit filesizes.
fenlason ea54ad0
 ********************************************************************/
fenlason ea54ad0
 
fenlason ea54ad0
-DIR *sys_opendir(const char *name)
fenlason ea54ad0
+SMB_STRUCT_DIR *sys_opendir(const char *name)
fenlason ea54ad0
 {
fenlason ea54ad0
 #if defined(HAVE_EXPLICIT_LARGEFILE_SUPPORT) && defined(HAVE_OPENDIR64)
fenlason ea54ad0
 	return opendir64(name);
fenlason ea54ad0
@@ -379,7 +379,7 @@
fenlason ea54ad0
  A readdir wrapper that will deal with 64 bit filesizes.
fenlason ea54ad0
 ********************************************************************/
fenlason ea54ad0
 
fenlason ea54ad0
-SMB_STRUCT_DIRENT *sys_readdir(DIR *dirp)
fenlason ea54ad0
+SMB_STRUCT_DIRENT *sys_readdir(SMB_STRUCT_DIR *dirp)
fenlason ea54ad0
 {
fenlason ea54ad0
 #if defined(HAVE_EXPLICIT_LARGEFILE_SUPPORT) && defined(HAVE_READDIR64)
fenlason ea54ad0
 	return readdir64(dirp);
fenlason ea54ad0
@@ -392,7 +392,7 @@
fenlason ea54ad0
  A seekdir wrapper that will deal with 64 bit filesizes.
fenlason ea54ad0
 ********************************************************************/
fenlason ea54ad0
 
fenlason ea54ad0
-void sys_seekdir(DIR *dirp, long offset)
fenlason ea54ad0
+void sys_seekdir(SMB_STRUCT_DIR *dirp, long offset)
fenlason ea54ad0
 {
fenlason ea54ad0
 #if defined(HAVE_EXPLICIT_LARGEFILE_SUPPORT) && defined(HAVE_SEEKDIR64)
fenlason ea54ad0
 	seekdir64(dirp, offset);
fenlason ea54ad0
@@ -405,7 +405,7 @@
fenlason ea54ad0
  A telldir wrapper that will deal with 64 bit filesizes.
fenlason ea54ad0
 ********************************************************************/
fenlason ea54ad0
 
fenlason ea54ad0
-long sys_telldir(DIR *dirp)
fenlason ea54ad0
+long sys_telldir(SMB_STRUCT_DIR *dirp)
fenlason ea54ad0
 {
fenlason ea54ad0
 #if defined(HAVE_EXPLICIT_LARGEFILE_SUPPORT) && defined(HAVE_TELLDIR64)
fenlason ea54ad0
 	return (long)telldir64(dirp);
fenlason ea54ad0
@@ -418,7 +418,7 @@
fenlason ea54ad0
  A rewinddir wrapper that will deal with 64 bit filesizes.
fenlason ea54ad0
 ********************************************************************/
fenlason ea54ad0
 
fenlason ea54ad0
-void sys_rewinddir(DIR *dirp)
fenlason ea54ad0
+void sys_rewinddir(SMB_STRUCT_DIR *dirp)
fenlason ea54ad0
 {
fenlason ea54ad0
 #if defined(HAVE_EXPLICIT_LARGEFILE_SUPPORT) && defined(HAVE_REWINDDIR64)
fenlason ea54ad0
 	rewinddir64(dirp);
fenlason ea54ad0
@@ -431,7 +431,7 @@
fenlason ea54ad0
  A close wrapper that will deal with 64 bit filesizes.
fenlason ea54ad0
 ********************************************************************/
fenlason ea54ad0
 
fenlason ea54ad0
-int sys_closedir(DIR *dirp)
fenlason ea54ad0
+int sys_closedir(SMB_STRUCT_DIR *dirp)
fenlason ea54ad0
 {
fenlason ea54ad0
 #if defined(HAVE_EXPLICIT_LARGEFILE_SUPPORT) && defined(HAVE_CLOSEDIR64)
fenlason ea54ad0
 	return closedir64(dirp);
fenlason ea54ad0
@@ -960,7 +960,7 @@
fenlason ea54ad0
  Wide opendir. Just narrow and call sys_xxx.
fenlason ea54ad0
 ****************************************************************************/
fenlason ea54ad0
 
fenlason ea54ad0
-DIR *wsys_opendir(const smb_ucs2_t *wfname)
fenlason ea54ad0
+SMB_STRUCT_DIR *wsys_opendir(const smb_ucs2_t *wfname)
fenlason ea54ad0
 {
fenlason ea54ad0
 	pstring fname;
fenlason ea54ad0
 	return opendir(unicode_to_unix(fname,wfname,sizeof(fname)));
fenlason ea54ad0
@@ -970,7 +970,7 @@
fenlason ea54ad0
  Wide readdir. Return a structure pointer containing a wide filename.
fenlason ea54ad0
 ****************************************************************************/
fenlason ea54ad0
 
fenlason ea54ad0
-SMB_STRUCT_WDIRENT *wsys_readdir(DIR *dirp)
fenlason ea54ad0
+SMB_STRUCT_WDIRENT *wsys_readdir(SMB_STRUCT_DIR *dirp)
fenlason ea54ad0
 {
fenlason ea54ad0
 	static SMB_STRUCT_WDIRENT retval;
fenlason ea54ad0
 	SMB_STRUCT_DIRENT *dirval = sys_readdir(dirp);
fenlason ea54ad0
diff -uBbrN --exclude-from=/misc/src/samba-cvs/diff.excludes samba-3.0.20-orig/source/modules/vfs_audit.c samba-3.0.20-new/source/modules/vfs_audit.c
fenlason ea54ad0
--- samba-3.0.20-orig/source/modules/vfs_audit.c	2005-07-28 08:19:46.000000000 -0500
fenlason ea54ad0
+++ samba-3.0.20-new/source/modules/vfs_audit.c	2005-08-26 09:42:08.000000000 -0500
fenlason ea54ad0
@@ -31,7 +31,7 @@
fenlason ea54ad0
 
fenlason ea54ad0
 static int audit_connect(vfs_handle_struct *handle, connection_struct *conn, const char *svc, const char *user);
fenlason ea54ad0
 static void audit_disconnect(vfs_handle_struct *handle, connection_struct *conn);
fenlason ea54ad0
-static DIR *audit_opendir(vfs_handle_struct *handle, connection_struct *conn, const char *fname, const char *mask, uint32 attr);
fenlason ea54ad0
+static SMB_STRUCT_DIR *audit_opendir(vfs_handle_struct *handle, connection_struct *conn, const char *fname, const char *mask, uint32 attr);
fenlason ea54ad0
 static int audit_mkdir(vfs_handle_struct *handle, connection_struct *conn, const char *path, mode_t mode);
fenlason ea54ad0
 static int audit_rmdir(vfs_handle_struct *handle, connection_struct *conn, const char *path);
fenlason ea54ad0
 static int audit_open(vfs_handle_struct *handle, connection_struct *conn, const char *fname, int flags, mode_t mode);
fenlason ea54ad0
@@ -119,9 +119,9 @@
fenlason ea54ad0
 	return;
fenlason ea54ad0
 }
fenlason ea54ad0
 
fenlason ea54ad0
-static DIR *audit_opendir(vfs_handle_struct *handle, connection_struct *conn, const char *fname, const char *mask, uint32 attr)
fenlason ea54ad0
+static SMB_STRUCT_DIR *audit_opendir(vfs_handle_struct *handle, connection_struct *conn, const char *fname, const char *mask, uint32 attr)
fenlason ea54ad0
 {
fenlason ea54ad0
-	DIR *result;
fenlason ea54ad0
+	SMB_STRUCT_DIR *result;
fenlason ea54ad0
 	
fenlason ea54ad0
 	result = SMB_VFS_NEXT_OPENDIR(handle, conn, fname, mask, attr);
fenlason ea54ad0
 
fenlason ea54ad0
diff -uBbrN --exclude-from=/misc/src/samba-cvs/diff.excludes samba-3.0.20-orig/source/modules/vfs_cap.c samba-3.0.20-new/source/modules/vfs_cap.c
fenlason ea54ad0
--- samba-3.0.20-orig/source/modules/vfs_cap.c	2005-07-28 08:19:46.000000000 -0500
fenlason ea54ad0
+++ samba-3.0.20-new/source/modules/vfs_cap.c	2005-08-26 09:42:08.000000000 -0500
fenlason ea54ad0
@@ -38,14 +38,14 @@
fenlason ea54ad0
 					 dfree, dsize);
fenlason ea54ad0
 }
fenlason ea54ad0
 
fenlason ea54ad0
-static DIR *cap_opendir(vfs_handle_struct *handle, connection_struct *conn, const char *fname, const char *mask, uint32 attr)
fenlason ea54ad0
+static SMB_STRUCT_DIR *cap_opendir(vfs_handle_struct *handle, connection_struct *conn, const char *fname, const char *mask, uint32 attr)
fenlason ea54ad0
 {
fenlason ea54ad0
         pstring capname;
fenlason ea54ad0
         capencode(capname, fname);
fenlason ea54ad0
 	return SMB_VFS_NEXT_OPENDIR(handle, conn, capname, mask, attr);
fenlason ea54ad0
 }
fenlason ea54ad0
 
fenlason ea54ad0
-static SMB_STRUCT_DIRENT *cap_readdir(vfs_handle_struct *handle, connection_struct *conn, DIR *dirp)
fenlason ea54ad0
+static SMB_STRUCT_DIRENT *cap_readdir(vfs_handle_struct *handle, connection_struct *conn, SMB_STRUCT_DIR *dirp)
fenlason ea54ad0
 {
fenlason ea54ad0
         SMB_STRUCT_DIRENT *result;
fenlason ea54ad0
 	DEBUG(3,("cap: cap_readdir\n"));
fenlason ea54ad0
diff -uBbrN --exclude-from=/misc/src/samba-cvs/diff.excludes samba-3.0.20-orig/source/modules/vfs_catia.c samba-3.0.20-new/source/modules/vfs_catia.c
fenlason ea54ad0
--- samba-3.0.20-orig/source/modules/vfs_catia.c	2005-07-28 08:19:45.000000000 -0500
fenlason ea54ad0
+++ samba-3.0.20-new/source/modules/vfs_catia.c	2005-08-26 09:42:08.000000000 -0500
fenlason ea54ad0
@@ -71,7 +71,7 @@
fenlason ea54ad0
         catia_string_replace(s, '\xb1', ' ');
fenlason ea54ad0
 }
fenlason ea54ad0
 
fenlason ea54ad0
-static DIR *catia_opendir(vfs_handle_struct *handle, connection_struct 
fenlason ea54ad0
+static SMB_STRUCT_DIR *catia_opendir(vfs_handle_struct *handle, connection_struct 
fenlason ea54ad0
 			  *conn, const char *fname, const char *mask, uint32 attr)
fenlason ea54ad0
 {
fenlason ea54ad0
         pstring name;
fenlason ea54ad0
@@ -82,7 +82,7 @@
fenlason ea54ad0
 }
fenlason ea54ad0
 
fenlason ea54ad0
 static SMB_STRUCT_DIRENT *catia_readdir(vfs_handle_struct *handle, 
fenlason ea54ad0
-					connection_struct *conn, DIR *dirp)
fenlason ea54ad0
+					connection_struct *conn, SMB_STRUCT_DIR *dirp)
fenlason ea54ad0
 {
fenlason ea54ad0
         SMB_STRUCT_DIRENT *result = SMB_VFS_NEXT_READDIR(handle, conn, dirp);
fenlason ea54ad0
 
fenlason ea54ad0
diff -uBbrN --exclude-from=/misc/src/samba-cvs/diff.excludes samba-3.0.20-orig/source/modules/vfs_extd_audit.c samba-3.0.20-new/source/modules/vfs_extd_audit.c
fenlason ea54ad0
--- samba-3.0.20-orig/source/modules/vfs_extd_audit.c	2005-07-28 08:19:46.000000000 -0500
fenlason ea54ad0
+++ samba-3.0.20-new/source/modules/vfs_extd_audit.c	2005-08-26 09:42:08.000000000 -0500
fenlason ea54ad0
@@ -34,7 +34,7 @@
fenlason ea54ad0
 
fenlason ea54ad0
 static int audit_connect(vfs_handle_struct *handle, connection_struct *conn, const char *svc, const char *user);
fenlason ea54ad0
 static void audit_disconnect(vfs_handle_struct *handle, connection_struct *conn);
fenlason ea54ad0
-static DIR *audit_opendir(vfs_handle_struct *handle, connection_struct *conn, const char *fname, const char *mask, uint32 attr);
fenlason ea54ad0
+static SMB_STRUCT_DIR *audit_opendir(vfs_handle_struct *handle, connection_struct *conn, const char *fname, const char *mask, uint32 attr);
fenlason ea54ad0
 static int audit_mkdir(vfs_handle_struct *handle, connection_struct *conn, const char *path, mode_t mode);
fenlason ea54ad0
 static int audit_rmdir(vfs_handle_struct *handle, connection_struct *conn, const char *path);
fenlason ea54ad0
 static int audit_open(vfs_handle_struct *handle, connection_struct *conn, const char *fname, int flags, mode_t mode);
fenlason ea54ad0
@@ -125,9 +125,9 @@
fenlason ea54ad0
 	return;
fenlason ea54ad0
 }
fenlason ea54ad0
 
fenlason ea54ad0
-static DIR *audit_opendir(vfs_handle_struct *handle, connection_struct *conn, const char *fname, const char *mask, uint32 attr)
fenlason ea54ad0
+static SMB_STRUCT_DIR *audit_opendir(vfs_handle_struct *handle, connection_struct *conn, const char *fname, const char *mask, uint32 attr)
fenlason ea54ad0
 {
fenlason ea54ad0
-	DIR *result;
fenlason ea54ad0
+	SMB_STRUCT_DIR *result;
fenlason ea54ad0
 
fenlason ea54ad0
 	result = SMB_VFS_NEXT_OPENDIR(handle, conn, fname, mask, attr);
fenlason ea54ad0
 
fenlason ea54ad0
diff -uBbrN --exclude-from=/misc/src/samba-cvs/diff.excludes samba-3.0.20-orig/source/modules/vfs_full_audit.c samba-3.0.20-new/source/modules/vfs_full_audit.c
fenlason ea54ad0
--- samba-3.0.20-orig/source/modules/vfs_full_audit.c	2005-07-28 08:19:45.000000000 -0500
fenlason ea54ad0
+++ samba-3.0.20-new/source/modules/vfs_full_audit.c	2005-08-26 09:42:08.000000000 -0500
fenlason ea54ad0
@@ -86,22 +86,22 @@
fenlason ea54ad0
                                 struct files_struct *fsp,
fenlason ea54ad0
                                 SHADOW_COPY_DATA *shadow_copy_data, BOOL labels);
fenlason ea54ad0
 
fenlason ea54ad0
-static DIR *smb_full_audit_opendir(vfs_handle_struct *handle, connection_struct *conn,
fenlason ea54ad0
+static SMB_STRUCT_DIR *smb_full_audit_opendir(vfs_handle_struct *handle, connection_struct *conn,
fenlason ea54ad0
 			  const char *fname, const char *mask, uint32 attr);
fenlason ea54ad0
 static SMB_STRUCT_DIRENT *smb_full_audit_readdir(vfs_handle_struct *handle,
fenlason ea54ad0
-				    connection_struct *conn, DIR *dirp);
fenlason ea54ad0
+				    connection_struct *conn, SMB_STRUCT_DIR *dirp);
fenlason ea54ad0
 static void smb_full_audit_seekdir(vfs_handle_struct *handle, connection_struct *conn,
fenlason ea54ad0
-			DIR *dirp, long offset);
fenlason ea54ad0
+			SMB_STRUCT_DIR *dirp, long offset);
fenlason ea54ad0
 static long smb_full_audit_telldir(vfs_handle_struct *handle, connection_struct *conn,
fenlason ea54ad0
-			DIR *dirp);
fenlason ea54ad0
+			SMB_STRUCT_DIR *dirp);
fenlason ea54ad0
 static void smb_full_audit_rewinddir(vfs_handle_struct *handle, connection_struct *conn,
fenlason ea54ad0
-			DIR *dirp);
fenlason ea54ad0
+			SMB_STRUCT_DIR *dirp);
fenlason ea54ad0
 static int smb_full_audit_mkdir(vfs_handle_struct *handle, connection_struct *conn,
fenlason ea54ad0
 		       const char *path, mode_t mode);
fenlason ea54ad0
 static int smb_full_audit_rmdir(vfs_handle_struct *handle, connection_struct *conn,
fenlason ea54ad0
 		       const char *path);
fenlason ea54ad0
 static int smb_full_audit_closedir(vfs_handle_struct *handle, connection_struct *conn,
fenlason ea54ad0
-			  DIR *dirp);
fenlason ea54ad0
+			  SMB_STRUCT_DIR *dirp);
fenlason ea54ad0
 static int smb_full_audit_open(vfs_handle_struct *handle, connection_struct *conn,
fenlason ea54ad0
 		      const char *fname, int flags, mode_t mode);
fenlason ea54ad0
 static int smb_full_audit_close(vfs_handle_struct *handle, files_struct *fsp, int fd);
fenlason ea54ad0
@@ -845,10 +845,10 @@
fenlason ea54ad0
 	return result;
fenlason ea54ad0
 }
fenlason ea54ad0
 
fenlason ea54ad0
-static DIR *smb_full_audit_opendir(vfs_handle_struct *handle, connection_struct *conn,
fenlason ea54ad0
+static SMB_STRUCT_DIR *smb_full_audit_opendir(vfs_handle_struct *handle, connection_struct *conn,
fenlason ea54ad0
 			  const char *fname, const char *mask, uint32 attr)
fenlason ea54ad0
 {
fenlason ea54ad0
-	DIR *result;
fenlason ea54ad0
+	SMB_STRUCT_DIR *result;
fenlason ea54ad0
 
fenlason ea54ad0
 	result = SMB_VFS_NEXT_OPENDIR(handle, conn, fname, mask, attr);
fenlason ea54ad0
 
fenlason ea54ad0
@@ -858,7 +858,7 @@
fenlason ea54ad0
 }
fenlason ea54ad0
 
fenlason ea54ad0
 static SMB_STRUCT_DIRENT *smb_full_audit_readdir(vfs_handle_struct *handle,
fenlason ea54ad0
-				    connection_struct *conn, DIR *dirp)
fenlason ea54ad0
+				    connection_struct *conn, SMB_STRUCT_DIR *dirp)
fenlason ea54ad0
 {
fenlason ea54ad0
 	SMB_STRUCT_DIRENT *result;
fenlason ea54ad0
 
fenlason ea54ad0
@@ -873,7 +873,7 @@
fenlason ea54ad0
 }
fenlason ea54ad0
 
fenlason ea54ad0
 static void smb_full_audit_seekdir(vfs_handle_struct *handle, connection_struct *conn,
fenlason ea54ad0
-			DIR *dirp, long offset)
fenlason ea54ad0
+			SMB_STRUCT_DIR *dirp, long offset)
fenlason ea54ad0
 {
fenlason ea54ad0
 	SMB_VFS_NEXT_SEEKDIR(handle, conn, dirp, offset);
fenlason ea54ad0
 
fenlason ea54ad0
@@ -882,7 +882,7 @@
fenlason ea54ad0
 }
fenlason ea54ad0
 
fenlason ea54ad0
 static long smb_full_audit_telldir(vfs_handle_struct *handle, connection_struct *conn,
fenlason ea54ad0
-			DIR *dirp)
fenlason ea54ad0
+			SMB_STRUCT_DIR *dirp)
fenlason ea54ad0
 {
fenlason ea54ad0
 	long result;
fenlason ea54ad0
 
fenlason ea54ad0
@@ -894,7 +894,7 @@
fenlason ea54ad0
 }
fenlason ea54ad0
 
fenlason ea54ad0
 static void smb_full_audit_rewinddir(vfs_handle_struct *handle, connection_struct *conn,
fenlason ea54ad0
-			DIR *dirp)
fenlason ea54ad0
+			SMB_STRUCT_DIR *dirp)
fenlason ea54ad0
 {
fenlason ea54ad0
 	SMB_VFS_NEXT_REWINDDIR(handle, conn, dirp);
fenlason ea54ad0
 
fenlason ea54ad0
@@ -927,7 +927,7 @@
fenlason ea54ad0
 }
fenlason ea54ad0
 
fenlason ea54ad0
 static int smb_full_audit_closedir(vfs_handle_struct *handle, connection_struct *conn,
fenlason ea54ad0
-			  DIR *dirp)
fenlason ea54ad0
+			  SMB_STRUCT_DIR *dirp)
fenlason ea54ad0
 {
fenlason ea54ad0
 	int result;
fenlason ea54ad0
 
fenlason ea54ad0
diff -uBbrN --exclude-from=/misc/src/samba-cvs/diff.excludes samba-3.0.20-orig/source/modules/vfs_netatalk.c samba-3.0.20-new/source/modules/vfs_netatalk.c
fenlason ea54ad0
--- samba-3.0.20-orig/source/modules/vfs_netatalk.c	2005-07-28 08:19:46.000000000 -0500
fenlason ea54ad0
+++ samba-3.0.20-new/source/modules/vfs_netatalk.c	2005-08-26 09:42:08.000000000 -0500
fenlason ea54ad0
@@ -148,11 +148,11 @@
fenlason ea54ad0
 {
fenlason ea54ad0
 	char *dpath;
fenlason ea54ad0
 	SMB_STRUCT_DIRENT *dent = 0;
fenlason ea54ad0
-	DIR *dir;
fenlason ea54ad0
+	SMB_STRUCT_DIR *dir;
fenlason ea54ad0
 
fenlason ea54ad0
 	if (!path) return;
fenlason ea54ad0
 
fenlason ea54ad0
-	dir = opendir(path);
fenlason ea54ad0
+	dir = sys_opendir(path);
fenlason ea54ad0
 	if (!dir) return;
fenlason ea54ad0
 
fenlason ea54ad0
 	while (NULL != (dent = sys_readdir(dir))) {
fenlason ea54ad0
@@ -165,16 +165,16 @@
fenlason ea54ad0
 		atalk_unlink_file(dpath);
fenlason ea54ad0
 	}
fenlason ea54ad0
 
fenlason ea54ad0
-	closedir(dir);
fenlason ea54ad0
+	sys_closedir(dir);
fenlason ea54ad0
 }
fenlason ea54ad0
 
fenlason ea54ad0
 /* Disk operations */
fenlason ea54ad0
 
fenlason ea54ad0
 /* Directory operations */
fenlason ea54ad0
 
fenlason ea54ad0
-DIR *atalk_opendir(struct vfs_handle_struct *handle, struct connection_struct *conn, const char *fname, const char *mask, uint32 attr)
fenlason ea54ad0
+SMB_STRUCT_DIR *atalk_opendir(struct vfs_handle_struct *handle, struct connection_struct *conn, const char *fname, const char *mask, uint32 attr)
fenlason ea54ad0
 {
fenlason ea54ad0
-	DIR *ret = 0;
fenlason ea54ad0
+	SMB_STRUCT_DIR *ret = 0;
fenlason ea54ad0
 
fenlason ea54ad0
 	ret = SMB_VFS_NEXT_OPENDIR(handle, conn, fname, mask, attr);
fenlason ea54ad0
 
fenlason ea54ad0
diff -uBbrN --exclude-from=/misc/src/samba-cvs/diff.excludes samba-3.0.20-orig/source/modules/vfs_shadow_copy.c samba-3.0.20-new/source/modules/vfs_shadow_copy.c
fenlason ea54ad0
--- samba-3.0.20-orig/source/modules/vfs_shadow_copy.c	2005-07-28 08:19:46.000000000 -0500
fenlason ea54ad0
+++ samba-3.0.20-new/source/modules/vfs_shadow_copy.c	2005-08-26 09:42:08.000000000 -0500
fenlason ea54ad0
@@ -72,10 +72,10 @@
fenlason ea54ad0
 	return False;
fenlason ea54ad0
 }
fenlason ea54ad0
 
fenlason ea54ad0
-static DIR *shadow_copy_opendir(vfs_handle_struct *handle, connection_struct *conn, const char *fname, const char *mask, uint32 attr)
fenlason ea54ad0
+static SMB_STRUCT_DIR *shadow_copy_opendir(vfs_handle_struct *handle, connection_struct *conn, const char *fname, const char *mask, uint32 attr)
fenlason ea54ad0
 {
fenlason ea54ad0
 	shadow_copy_Dir *dirp;
fenlason ea54ad0
-	DIR *p = SMB_VFS_NEXT_OPENDIR(handle,conn,fname,mask,attr);
fenlason ea54ad0
+	SMB_STRUCT_DIR *p = SMB_VFS_NEXT_OPENDIR(handle,conn,fname,mask,attr);
fenlason ea54ad0
 
fenlason ea54ad0
 	if (!p) {
fenlason ea54ad0
 		DEBUG(0,("shadow_copy_opendir: SMB_VFS_NEXT_OPENDIR() failed for [%s]\n",fname));
fenlason ea54ad0
@@ -119,10 +119,10 @@
fenlason ea54ad0
 	}
fenlason ea54ad0
 
fenlason ea54ad0
 	SMB_VFS_NEXT_CLOSEDIR(handle,conn,p);
fenlason ea54ad0
-	return((DIR *)dirp);
fenlason ea54ad0
+	return((SMB_STRUCT_DIR *)dirp);
fenlason ea54ad0
 }
fenlason ea54ad0
 
fenlason ea54ad0
-SMB_STRUCT_DIRENT *shadow_copy_readdir(vfs_handle_struct *handle, connection_struct *conn, DIR *_dirp)
fenlason ea54ad0
+SMB_STRUCT_DIRENT *shadow_copy_readdir(vfs_handle_struct *handle, connection_struct *conn, SMB_STRUCT_DIR *_dirp)
fenlason ea54ad0
 {
fenlason ea54ad0
 	shadow_copy_Dir *dirp = (shadow_copy_Dir *)_dirp;
fenlason ea54ad0
 
fenlason ea54ad0
@@ -133,7 +133,7 @@
fenlason ea54ad0
 	return NULL;
fenlason ea54ad0
 }
fenlason ea54ad0
 
fenlason ea54ad0
-static void shadow_copy_seekdir(struct vfs_handle_struct *handle, struct connection_struct *conn, DIR *_dirp, long offset)
fenlason ea54ad0
+static void shadow_copy_seekdir(struct vfs_handle_struct *handle, struct connection_struct *conn, SMB_STRUCT_DIR *_dirp, long offset)
fenlason ea54ad0
 {
fenlason ea54ad0
 	shadow_copy_Dir *dirp = (shadow_copy_Dir *)_dirp;
fenlason ea54ad0
 
fenlason ea54ad0
@@ -142,19 +142,19 @@
fenlason ea54ad0
 	}
fenlason ea54ad0
 }
fenlason ea54ad0
 
fenlason ea54ad0
-static long shadow_copy_telldir(struct vfs_handle_struct *handle, struct connection_struct *conn, DIR *_dirp)
fenlason ea54ad0
+static long shadow_copy_telldir(struct vfs_handle_struct *handle, struct connection_struct *conn, SMB_STRUCT_DIR *_dirp)
fenlason ea54ad0
 {
fenlason ea54ad0
 	shadow_copy_Dir *dirp = (shadow_copy_Dir *)_dirp;
fenlason ea54ad0
 	return( dirp->pos ) ;
fenlason ea54ad0
 }
fenlason ea54ad0
 
fenlason ea54ad0
-static void shadow_copy_rewinddir(struct vfs_handle_struct *handle, struct connection_struct *conn, DIR *_dirp)
fenlason ea54ad0
+static void shadow_copy_rewinddir(struct vfs_handle_struct *handle, struct connection_struct *conn, SMB_STRUCT_DIR *_dirp)
fenlason ea54ad0
 {
fenlason ea54ad0
 	shadow_copy_Dir *dirp = (shadow_copy_Dir *)_dirp;
fenlason ea54ad0
 	dirp->pos = 0 ;
fenlason ea54ad0
 }
fenlason ea54ad0
 
fenlason ea54ad0
-int shadow_copy_closedir(vfs_handle_struct *handle, connection_struct *conn, DIR *_dirp)
fenlason ea54ad0
+int shadow_copy_closedir(vfs_handle_struct *handle, connection_struct *conn, SMB_STRUCT_DIR *_dirp)
fenlason ea54ad0
 {
fenlason ea54ad0
 	shadow_copy_Dir *dirp = (shadow_copy_Dir *)_dirp;
fenlason ea54ad0
 
fenlason ea54ad0
@@ -166,7 +166,7 @@
fenlason ea54ad0
 
fenlason ea54ad0
 static int shadow_copy_get_shadow_copy_data(vfs_handle_struct *handle, files_struct *fsp, SHADOW_COPY_DATA *shadow_copy_data, BOOL labels)
fenlason ea54ad0
 {
fenlason ea54ad0
-	DIR *p = SMB_VFS_NEXT_OPENDIR(handle,fsp->conn,fsp->conn->connectpath,NULL,0);
fenlason ea54ad0
+	SMB_STRUCT_DIR *p = SMB_VFS_NEXT_OPENDIR(handle,fsp->conn,fsp->conn->connectpath,NULL,0);
fenlason ea54ad0
 
fenlason ea54ad0
 	shadow_copy_data->num_volumes = 0;
fenlason ea54ad0
 	shadow_copy_data->labels = NULL;
fenlason ea54ad0
diff -uBbrN --exclude-from=/misc/src/samba-cvs/diff.excludes samba-3.0.20-orig/source/script/mkproto.awk samba-3.0.20-new/source/script/mkproto.awk
fenlason ea54ad0
--- samba-3.0.20-orig/source/script/mkproto.awk	2005-07-28 08:19:52.000000000 -0500
fenlason ea54ad0
+++ samba-3.0.20-new/source/script/mkproto.awk	2005-08-26 09:42:08.000000000 -0500
fenlason ea54ad0
@@ -136,7 +136,7 @@
fenlason ea54ad0
     gotstart = 1;
fenlason ea54ad0
   }
fenlason ea54ad0
 
fenlason ea54ad0
-  if( $0 ~ /^NODE_STATUS_STRUCT/ ) {
fenlason ea54ad0
+  if( $0 ~ /^NODE_STATUS_STRUCT|SMB_STRUCT_DIR/ ) {
fenlason ea54ad0
     gotstart = 1;
fenlason ea54ad0
   }
fenlason ea54ad0
 
fenlason ea54ad0
diff -uBbrN --exclude-from=/misc/src/samba-cvs/diff.excludes samba-3.0.20-orig/source/smbd/chgpasswd.c samba-3.0.20-new/source/smbd/chgpasswd.c
fenlason ea54ad0
--- samba-3.0.20-orig/source/smbd/chgpasswd.c	2005-07-28 08:19:42.000000000 -0500
fenlason ea54ad0
+++ samba-3.0.20-new/source/smbd/chgpasswd.c	2005-08-26 09:42:08.000000000 -0500
fenlason ea54ad0
@@ -64,7 +64,7 @@
fenlason ea54ad0
 {
fenlason ea54ad0
 	int master;
fenlason ea54ad0
 	static fstring line;
fenlason ea54ad0
-	DIR *dirp;
fenlason ea54ad0
+	SMB_STRUCT_DIR *dirp;
fenlason ea54ad0
 	const char *dpname;
fenlason ea54ad0
 
fenlason ea54ad0
 #if defined(HAVE_GRANTPT)
fenlason ea54ad0
@@ -93,7 +93,7 @@
fenlason ea54ad0
 
fenlason ea54ad0
 	fstrcpy(line, "/dev/ptyXX");
fenlason ea54ad0
 
fenlason ea54ad0
-	dirp = opendir("/dev");
fenlason ea54ad0
+	dirp = sys_opendir("/dev");
fenlason ea54ad0
 	if (!dirp)
fenlason ea54ad0
 		return (-1);
fenlason ea54ad0
 	while ((dpname = readdirname(dirp)) != NULL)
fenlason ea54ad0
@@ -110,12 +110,12 @@
fenlason ea54ad0
 				DEBUG(3, ("pty: opened %s\n", line));
fenlason ea54ad0
 				line[5] = 't';
fenlason ea54ad0
 				*slave = line;
fenlason ea54ad0
-				closedir(dirp);
fenlason ea54ad0
+				sys_closedir(dirp);
fenlason ea54ad0
 				return (master);
fenlason ea54ad0
 			}
fenlason ea54ad0
 		}
fenlason ea54ad0
 	}
fenlason ea54ad0
-	closedir(dirp);
fenlason ea54ad0
+	sys_closedir(dirp);
fenlason ea54ad0
 	return (-1);
fenlason ea54ad0
 }
fenlason ea54ad0
 
fenlason ea54ad0
diff -uBbrN --exclude-from=/misc/src/samba-cvs/diff.excludes samba-3.0.20-orig/source/smbd/dir.c samba-3.0.20-new/source/smbd/dir.c
fenlason ea54ad0
--- samba-3.0.20-orig/source/smbd/dir.c	2005-07-28 08:19:43.000000000 -0500
fenlason ea54ad0
+++ samba-3.0.20-new/source/smbd/dir.c	2005-08-26 09:42:08.000000000 -0500
fenlason ea54ad0
@@ -42,7 +42,7 @@
fenlason ea54ad0
 
fenlason ea54ad0
 struct smb_Dir {
fenlason ea54ad0
 	connection_struct *conn;
fenlason ea54ad0
-	DIR *dir;
fenlason ea54ad0
+	SMB_STRUCT_DIR *dir;
fenlason ea54ad0
 	long offset;
fenlason ea54ad0
 	char *dir_path;
fenlason ea54ad0
 	struct name_cache_entry *name_cache;
fenlason ea54ad0
@@ -1098,6 +1098,9 @@
fenlason ea54ad0
 		}
fenlason ea54ad0
 		dirp->file_number++;
fenlason ea54ad0
 		return n;
fenlason ea54ad0
+	} else if (*poffset == END_OF_DIRECTORY_OFFSET) {
fenlason ea54ad0
+		*poffset = dirp->offset = END_OF_DIRECTORY_OFFSET;
fenlason ea54ad0
+		return NULL;
fenlason ea54ad0
 	} else {
fenlason ea54ad0
 		/* A real offset, seek to it. */
fenlason ea54ad0
 		SeekDir(dirp, *poffset);
fenlason ea54ad0
@@ -1120,7 +1123,7 @@
fenlason ea54ad0
 		dirp->file_number++;
fenlason ea54ad0
 		return e->name;
fenlason ea54ad0
 	}
fenlason ea54ad0
-	dirp->offset = END_OF_DIRECTORY_OFFSET;
fenlason ea54ad0
+	*poffset = dirp->offset = END_OF_DIRECTORY_OFFSET;
fenlason ea54ad0
 	return NULL;
fenlason ea54ad0
 }
fenlason ea54ad0
 
fenlason ea54ad0
@@ -1145,6 +1148,8 @@
fenlason ea54ad0
 	if (offset != dirp->offset) {
fenlason ea54ad0
 		if (offset == START_OF_DIRECTORY_OFFSET || offset == DOT_DOT_DIRECTORY_OFFSET) {
fenlason ea54ad0
 			RewindDir(dirp, &offset);
fenlason ea54ad0
+		} else if (offset == END_OF_DIRECTORY_OFFSET) {
fenlason ea54ad0
+			; /* Don't seek in this case. */
fenlason ea54ad0
 		} else {
fenlason ea54ad0
 			SMB_VFS_SEEKDIR(dirp->conn, dirp->dir, offset);
fenlason ea54ad0
 		}
fenlason ea54ad0
diff -uBbrN --exclude-from=/misc/src/samba-cvs/diff.excludes samba-3.0.20-orig/source/smbd/msdfs.c samba-3.0.20-new/source/smbd/msdfs.c
fenlason ea54ad0
--- samba-3.0.20-orig/source/smbd/msdfs.c	2005-08-07 18:09:53.000000000 -0500
fenlason ea54ad0
+++ samba-3.0.20-new/source/smbd/msdfs.c	2005-08-26 09:42:08.000000000 -0500
fenlason ea54ad0
@@ -1010,7 +1010,7 @@
fenlason ea54ad0
 static int form_junctions(TALLOC_CTX *ctx, int snum, struct junction_map *jucn, int jn_remain)
fenlason ea54ad0
 {
fenlason ea54ad0
 	int cnt = 0;
fenlason ea54ad0
-	DIR *dirp;
fenlason ea54ad0
+	SMB_STRUCT_DIR *dirp;
fenlason ea54ad0
 	char* dname;
fenlason ea54ad0
 	pstring connect_path;
fenlason ea54ad0
 	char* service_name = lp_servicename(snum);
fenlason ea54ad0
diff -uBbrN --exclude-from=/misc/src/samba-cvs/diff.excludes samba-3.0.20-orig/source/smbd/vfs-wrap.c samba-3.0.20-new/source/smbd/vfs-wrap.c
fenlason ea54ad0
--- samba-3.0.20-orig/source/smbd/vfs-wrap.c	2005-07-28 08:19:43.000000000 -0500
fenlason ea54ad0
+++ samba-3.0.20-new/source/smbd/vfs-wrap.c	2005-08-26 09:42:08.000000000 -0500
fenlason ea54ad0
@@ -88,9 +88,9 @@
fenlason ea54ad0
     
fenlason ea54ad0
 /* Directory operations */
fenlason ea54ad0
 
fenlason ea54ad0
-DIR *vfswrap_opendir(vfs_handle_struct *handle, connection_struct *conn, const char *fname, const char *mask, uint32 attr)
fenlason ea54ad0
+SMB_STRUCT_DIR *vfswrap_opendir(vfs_handle_struct *handle, connection_struct *conn, const char *fname, const char *mask, uint32 attr)
fenlason ea54ad0
 {
fenlason ea54ad0
-	DIR *result;
fenlason ea54ad0
+	SMB_STRUCT_DIR *result;
fenlason ea54ad0
 
fenlason ea54ad0
 	START_PROFILE(syscall_opendir);
fenlason ea54ad0
 	result = sys_opendir(fname);
fenlason ea54ad0
@@ -98,7 +98,7 @@
fenlason ea54ad0
 	return result;
fenlason ea54ad0
 }
fenlason ea54ad0
 
fenlason ea54ad0
-SMB_STRUCT_DIRENT *vfswrap_readdir(vfs_handle_struct *handle, connection_struct *conn, DIR *dirp)
fenlason ea54ad0
+SMB_STRUCT_DIRENT *vfswrap_readdir(vfs_handle_struct *handle, connection_struct *conn, SMB_STRUCT_DIR *dirp)
fenlason ea54ad0
 {
fenlason ea54ad0
 	SMB_STRUCT_DIRENT *result;
fenlason ea54ad0
 
fenlason ea54ad0
@@ -108,14 +108,14 @@
fenlason ea54ad0
 	return result;
fenlason ea54ad0
 }
fenlason ea54ad0
 
fenlason ea54ad0
-void vfswrap_seekdir(vfs_handle_struct *handle, connection_struct *conn, DIR *dirp, long offset)
fenlason ea54ad0
+void vfswrap_seekdir(vfs_handle_struct *handle, connection_struct *conn, SMB_STRUCT_DIR *dirp, long offset)
fenlason ea54ad0
 {
fenlason ea54ad0
 	START_PROFILE(syscall_seekdir);
fenlason ea54ad0
 	sys_seekdir(dirp, offset);
fenlason ea54ad0
 	END_PROFILE(syscall_seekdir);
fenlason ea54ad0
 }
fenlason ea54ad0
 
fenlason ea54ad0
-long vfswrap_telldir(vfs_handle_struct *handle, connection_struct *conn, DIR *dirp)
fenlason ea54ad0
+long vfswrap_telldir(vfs_handle_struct *handle, connection_struct *conn, SMB_STRUCT_DIR *dirp)
fenlason ea54ad0
 {
fenlason ea54ad0
 	long result;
fenlason ea54ad0
 	START_PROFILE(syscall_telldir);
fenlason ea54ad0
@@ -124,7 +124,7 @@
fenlason ea54ad0
 	return result;
fenlason ea54ad0
 }
fenlason ea54ad0
 
fenlason ea54ad0
-void vfswrap_rewinddir(vfs_handle_struct *handle, connection_struct *conn, DIR *dirp)
fenlason ea54ad0
+void vfswrap_rewinddir(vfs_handle_struct *handle, connection_struct *conn, SMB_STRUCT_DIR *dirp)
fenlason ea54ad0
 {
fenlason ea54ad0
 	START_PROFILE(syscall_rewinddir);
fenlason ea54ad0
 	sys_rewinddir(dirp);
fenlason ea54ad0
@@ -170,7 +170,7 @@
fenlason ea54ad0
 	return result;
fenlason ea54ad0
 }
fenlason ea54ad0
 
fenlason ea54ad0
-int vfswrap_closedir(vfs_handle_struct *handle, connection_struct *conn, DIR *dirp)
fenlason ea54ad0
+int vfswrap_closedir(vfs_handle_struct *handle, connection_struct *conn, SMB_STRUCT_DIR *dirp)
fenlason ea54ad0
 {
fenlason ea54ad0
 	int result;
fenlason ea54ad0