summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--source/include/proto.h3
-rw-r--r--source/lib/doscalls.c17
-rw-r--r--source/lib/genrand.c4
-rw-r--r--source/lib/util.c3
-rw-r--r--source/locking/locking_slow.c4
-rw-r--r--source/smbd/dir.c4
6 files changed, 25 insertions, 10 deletions
diff --git a/source/include/proto.h b/source/include/proto.h
index 8cfaea58663..4848c5e70fb 100644
--- a/source/include/proto.h
+++ b/source/include/proto.h
@@ -62,6 +62,7 @@ BOOL dbghdr( int level, char *file, char *func, int line );
int dos_unlink(char *fname);
int dos_open(char *fname,int flags,mode_t mode);
DIR *dos_opendir(char *dname);
+char *dos_readdirname(DIR *p);
int dos_stat(char *fname,SMB_STRUCT_STAT *sbuf);
int dos_lstat(char *fname,SMB_STRUCT_STAT *sbuf);
int dos_mkdir(char *dname,mode_t mode);
@@ -275,7 +276,7 @@ char *uidtoname(uid_t uid);
char *gidtoname(gid_t gid);
uid_t nametouid(const char *name);
void smb_panic(char *why);
-char *readdirname(void *p);
+char *readdirname(DIR *p);
BOOL is_in_path(char *name, name_compare_entry *namelist);
void set_namearray(name_compare_entry **ppname_array, char *namelist);
void free_namearray(name_compare_entry *name_array);
diff --git a/source/lib/doscalls.c b/source/lib/doscalls.c
index 27e6877c5a7..031effcf520 100644
--- a/source/lib/doscalls.c
+++ b/source/lib/doscalls.c
@@ -57,7 +57,22 @@ int dos_open(char *fname,int flags,mode_t mode)
DIR *dos_opendir(char *dname)
{
- return(opendir(dos_to_unix(dname,False)));
+ return(opendir(dos_to_unix(dname,False)));
+}
+
+/*******************************************************************
+ Readdirname() wrapper that calls unix_to_dos.
+********************************************************************/
+
+char *dos_readdirname(DIR *p)
+{
+ char *dname = readdirname(p);
+
+ if (!dname)
+ return(NULL);
+
+ unix_to_dos(dname, True);
+ return(dname);
}
/*******************************************************************
diff --git a/source/lib/genrand.c b/source/lib/genrand.c
index 8b05b02f943..90e4a3194e1 100644
--- a/source/lib/genrand.c
+++ b/source/lib/genrand.c
@@ -56,7 +56,7 @@ static void do_filehash(char *fname, unsigned char *hash)
static void do_dirrand(char *name, unsigned char *buf, int buf_len)
{
- void *dp = dos_opendir(name);
+ DIR *dp = opendir(name);
pstring fullname;
int len_left;
int fullname_len;
@@ -86,7 +86,7 @@ static void do_dirrand(char *name, unsigned char *buf, int buf_len)
if(strlen(p) <= len_left)
pstrcpy(pos, p);
- if(dos_stat(fullname,&st) == 0) {
+ if(sys_stat(fullname,&st) == 0) {
SIVAL(buf, ((counter * 4)%(buf_len-4)),
IVAL(buf,((counter * 4)%(buf_len-4))) ^ st.st_atime);
counter++;
diff --git a/source/lib/util.c b/source/lib/util.c
index fbd2fc34910..b4ee318570c 100644
--- a/source/lib/util.c
+++ b/source/lib/util.c
@@ -2347,7 +2347,7 @@ void smb_panic(char *why)
/*******************************************************************
a readdir wrapper which just returns the file name
********************************************************************/
-char *readdirname(void *p)
+char *readdirname(DIR *p)
{
struct dirent *ptr;
char *dname;
@@ -2371,7 +2371,6 @@ char *readdirname(void *p)
{
static pstring buf;
memcpy(buf, dname, NAMLEN(ptr)+1);
- unix_to_dos(buf, True);
dname = buf;
}
diff --git a/source/locking/locking_slow.c b/source/locking/locking_slow.c
index 7c273552242..58f17e3a928 100644
--- a/source/locking/locking_slow.c
+++ b/source/locking/locking_slow.c
@@ -968,12 +968,12 @@ mode file %s (%s)\n", fname, strerror(errno)));
/*******************************************************************
call the specified function on each entry under management by the
-share ode system
+share mode system
********************************************************************/
static int slow_share_forall(void (*fn)(share_mode_entry *, char *))
{
int i, count=0;
- void *dir;
+ DIR *dir;
char *s;
share_mode_entry e;
diff --git a/source/smbd/dir.c b/source/smbd/dir.c
index db2de23f6de..dcf1d158b4c 100644
--- a/source/smbd/dir.c
+++ b/source/smbd/dir.c
@@ -518,7 +518,7 @@ void *OpenDir(connection_struct *conn, char *name, BOOL use_veto)
{
Dir *dirp;
char *n;
- void *p = dos_opendir(name);
+ DIR *p = dos_opendir(name);
int used=0;
if (!p) return(NULL);
@@ -530,7 +530,7 @@ void *OpenDir(connection_struct *conn, char *name, BOOL use_veto)
dirp->pos = dirp->numentries = dirp->mallocsize = 0;
dirp->data = dirp->current = NULL;
- while ((n = readdirname(p)))
+ while ((n = dos_readdirname(p)))
{
int l = strlen(n)+1;