summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2005-03-24 02:23:32 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 10:56:16 -0500
commit143bf1202c924f53db811d1d076580eea4acdb7e (patch)
treed7fbf74d8502f4791b9b7e16d6b1a3e2feace0d1 /source3
parent5415480d7eea3ddd319625087e6ed902cd6e04c6 (diff)
downloadsamba-143bf1202c924f53db811d1d076580eea4acdb7e.tar.gz
samba-143bf1202c924f53db811d1d076580eea4acdb7e.tar.bz2
samba-143bf1202c924f53db811d1d076580eea4acdb7e.zip
r6022: Fix for bug #2533. Incorrect dir listings from OS/2 clients.
Jeremy. (This used to be commit cf8949f684ee9adcd35d56d923b2f5733efc05ac)
Diffstat (limited to 'source3')
-rw-r--r--source3/lib/util.c4
-rw-r--r--source3/smbd/dir.c7
2 files changed, 3 insertions, 8 deletions
diff --git a/source3/lib/util.c b/source3/lib/util.c
index 8db7bb38ab..cd30ef9814 100644
--- a/source3/lib/util.c
+++ b/source3/lib/util.c
@@ -641,7 +641,9 @@ void make_dir_struct(char *buf, const char *mask, const char *fname,SMB_OFF_T si
put_dos_date(buf,22,date);
SSVAL(buf,26,size & 0xFFFF);
SSVAL(buf,28,(size >> 16)&0xFFFF);
- push_ascii(buf+30,fname,12,0);
+ /* We only uppercase if the protocol is downrev.
+ Strange, but verified on W2K3. Needed for OS/2. JRA. */
+ push_ascii(buf+30,fname,12,Protocol < PROTOCOL_NT1 ? STR_UPPER : 0);
DEBUG(8,("put name [%s] from [%s] into dir struct\n",buf+30, fname));
}
diff --git a/source3/smbd/dir.c b/source3/smbd/dir.c
index 1ec35d839c..6ecdcec461 100644
--- a/source3/smbd/dir.c
+++ b/source3/smbd/dir.c
@@ -713,16 +713,11 @@ BOOL get_dir_entry(connection_struct *conn,char *mask,int dirtype, pstring fname
SMB_STRUCT_STAT sbuf;
pstring path;
pstring pathreal;
- BOOL isrootdir;
pstring filename;
BOOL needslash;
*path = *pathreal = *filename = 0;
- isrootdir = (strequal(conn->dirpath,"./") ||
- strequal(conn->dirpath,".") ||
- strequal(conn->dirpath,"/"));
-
needslash = ( conn->dirpath[strlen(conn->dirpath) -1] != '/');
if (!conn->dirptr)
@@ -747,8 +742,6 @@ BOOL get_dir_entry(connection_struct *conn,char *mask,int dirtype, pstring fname
if ((strcmp(mask,"*.*") == 0) ||
mask_match(filename,mask,False) ||
mangle_mask_match(conn,filename,mask)) {
- if (isrootdir && (strequal(filename,"..") || strequal(filename,".")))
- continue;
if (!mangle_is_8_3(filename, False))
mangle_map(filename,True,False,SNUM(conn));