From 8839603f03b624e80f86395261d513bc7eb79189 Mon Sep 17 00:00:00 2001 From: Samba Release Account Date: Mon, 10 Feb 1997 13:54:29 +0000 Subject: JHT ===> William Yost patches integrated to fix leading path on 8.3 filename problem. Problem conditions: case sensitive = no default case = lower mangle case = yes preserve case = yes short preserve case = yes Problem: Win95 still writes upper case file names. Patches supplied have been incorporated into mangle.c and server.c but needs YOSTW to be defined for it to take effect. Action: ======= If we are happy with the patch, delete old code in mangle.c, then remove all YOSTW #ifdefs. (This used to be commit 84fc674c89e8999f284b59888dfa2cdc47438e88) --- source3/smbd/server.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'source3/smbd/server.c') diff --git a/source3/smbd/server.c b/source3/smbd/server.c index 5ff60c6c6c..6f4da9b779 100644 --- a/source3/smbd/server.c +++ b/source3/smbd/server.c @@ -389,6 +389,9 @@ BOOL unix_convert(char *name,int cnum,pstring saved_last_component) struct stat st; char *start, *end; pstring dirpath; +#ifdef YOSTW + char szName[132], *p; +#endif *dirpath = 0; if(saved_last_component) @@ -398,6 +401,23 @@ BOOL unix_convert(char *name,int cnum,pstring saved_last_component) unix_format(name); unix_clean_name(name); +#ifdef YOSTW + /* Remove leading path specifications to check for 8_3 name */ + if ( strncmp( name, "./",2) == 0 ) { + strcpy( szName, name+2 ); + } + else { + strcpy( szName, name ); + } + p = strrchr( szName, '/' ); + if ( p != NULL ) { + p++; + } + else { + p = szName; + } +#endif + if (!case_sensitive && (!case_preserve || (is_8_3(name) && !short_case_preserve))) strnorm(name); -- cgit