When attempting to run any foxpro 2.6 for DOS application (or foxpro itself) from the Samba 3.0.12 and upper shared drive the error "Cannot locate the desired version of FoxPro" occuried. Client is Windows 98. This bug present in 3.0.14pre1-SVN-build-6092. Making all files on UNIX side UPPERCASE elliminates this error, i.e. FoxPro apps start normaly.
Created attachment 1123 [details] Ethereal sniff attempting to run FoxPro from 3.0.14pre1-SVN-build-6092 Samba 3.0.14pre1-SVN-build-6092, files on UNIX side are lowercase, client is Windows 98 SE Result: "Cannot locate desired version of FoxPro"
Created attachment 1124 [details] Ethereal sniff attempting to run FoxPro from Samba 3.0.10 Samba 3.0.10, files on UNIX side are lowercase, client is Windows 98 SE. Result: successful run of FoxPro
Ok, I'll take a look at this and try and get a fix asap. Thanks, Jeremy.
Ok, the trace you're showing me show that the SMBsearch reply is still being done in lowercase. The changed code in lib/util.c is now : /* 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); So this means the client must be negotiating NT1 protocol. Can you send me the trace showing the negprot ? I thought the code we had here was correct as if I do SMBsearch requests against a W2K3 server with NT1 protocol it doesn't uppercase the names, but I'll re-check. I can easily fix this by making the "STR_UPPER" flag forced, but I'd prefer to understand the problem. Jeremy.
Created attachment 1125 [details] Proposed patch.
Ok, I think I have this - it's the incoming FLAGS2 bit "FLAGS2_LONG_PATH_COMPONENTS" that determines if the reply is uppercase - not the protocol level at all. Make the server comply with this. Please test this, I've checked it into SVN. I think it will fix the bug. Jeremy.
On Samba 3.0.14pre1-SVN-build-6106 FoxPro apps can be runned from Windows 98 successfully. This bug seems to be fixed. Thank you!
sorry for the same, cleaning up the database to prevent unecessary reopens of bugs.