pardon my ignorance but, is the host the Model T or is it the other way
around?


On Sat, 27 Mar 2021 at 07:00, Brian K. White <[email protected]> wrote:

> On 3/5/21 2:26 AM, Brian K. White wrote:
> > On 3/4/21 7:23 PM, Peter Vollan wrote:
> >> When using dlplus in Linux, you must make sure that all of the files
> >> in the desklink directory are in all CAPITAL letters. If not, then
> >> files will appear to transfer but those files will actually be mostly
> >> null characters. So "file.do" is unacceptable, it must be FILE.DO.
> >> Just one file that does not follow this rule could screw up all of
> >> your downloads. It took me years of tearing my hair out and a half
> >> dozen serial to USB convertors before I deduced this.
> >
> > Just a day or so ago I changed the default behavior not to mess with the
> > filenames.
> >
> > Originally it was converting names to uppercase by default, but I think
> > not doing the job fully, so it just made things worse when something
> > didn't work and you're trying to figure out why not.
> >
> > It was screwing me up while trying to work with REXCPM.
> >
> > I reversed the default behavior so now it's "what you see is what you
> get".
>
>
> I think I just fixed that uppercase option in dlplus.
>
> Originally there was code in there to try to be case-insensitive and
> display all uppercase to the client by default, and there was a "-f"
> commandline flag to disable that. But as we discovered, the uppercase
> conversion wasn't actually working.
>
> So a few weeks ago I reversed the logic to disable the case-insensitive
> uppercase by default, and use a "-u" option to enable it, then actually
> hid that -u from the help output since it wasn't actually working.
>
> Now I found the original problem, but am leaving the new default
> behavior and -u option to get the uppercase behavior.
>
> So now, by default, it's case-sensitive on the host, and displays the
> true filenames to the client. And the -u option makes it
> case-insensitive on the host, and displays all uppercase to the client.
> (which should probably go back to being default as long as it works, but
> I'm not going to do that yet)
>
> The reason it used to produce zero-byte files was that, the host would
> display a fictitious all uppercase filename to the client, and when the
> user asks to load a file, TS-DOS would immediately create the empty file
> on the client when the user hits the F1-Load button and answers Y,
> before actually getting any data from the server.
>
> Then the server would try to open() the requested filename, which is the
> uppercase version of the filename, which doesn't exists, so the server
> sends back an error response to the client, and TS-DOS reports that as a
> communication error and aborts the operation, but leaves behind the
> empty new file it already created.
>
> The fix in the code was easy. The work of scanning all the files and
> doing the case-insensitive match and remembering both the fake and real
> filenames was already in there done by John I think. Merely in the
> routine that opens a file, it was using the variable that holds the
> filename as it came from the client, rather than the struct element that
> holds the matching real filename.
>
> So, for bootstrapping REXCPM, or anything else where you get files with
> mixed case on the host but things on the 100 expect them to all be
> uppercase, you can use "dl -u" without having to rename all the files on
> the host.
>
> --
> bkw
>

Reply via email to